Разработка сайта автомойки на 1С-Битрикс
Сайт автомойки решает одну конкретную задачу — загрузить боксы на максимум. Клиент должен за 40 секунд найти нужную услугу, увидеть стоимость для своего класса авто и записаться на свободное время. Всё остальное — вторично.
На 1С-Битрикс эта задача закрывается связкой инфоблоков каталога услуг, Highload-блоков расписания и модуля sale для абонементов. Разберём архитектуру подробно.
Каталог услуг с ценообразованием по классу авто
Услуги автомойки — не плоский список. Мойка кузова седана и мойка кузова внедорожника стоят по-разному. Поэтому стандартный инфоблок с единственным свойством «Цена» не работает.
Структура инфоблока «Услуги»:
- Название — мойка кузова, химчистка салона, полировка, детейлинг, нанокерамика
- Категория — экспресс, стандарт, премиум (свойство-справочник)
- Длительность — время выполнения в минутах (числовое свойство)
- Описание процесса — что именно входит, какие материалы используются
Ценообразование реализуется через торговые предложения (SKU). Каждое предложение — класс авто: малый (седан B-класса), средний (кроссовер), крупный (внедорожник/микроавтобус). У каждого SKU своя цена. Клиент на сайте выбирает класс авто один раз — фильтр запоминается в сессии и подставляет нужные цены по всему каталогу.
Для комплексных услуг (детейлинг, предпродажная подготовка) добавляется свойство «Состав» — привязка к другим элементам инфоблока типа E. Это позволяет показать, что детейлинг-пакет включает полировку кузова, химчистку салона и обработку пластика, с автоматическим расчётом общей длительности.
Онлайн-запись: расписание боксов через Highload-блоки
Это ядро сайта автомойки. Реализация через стандартные инфоблоки слишком медленная — при 6 боксах и 30-минутных слотах за день накапливается ~180 записей. За месяц — больше 5000. Highload-блок справляется с этим объёмом без деградации.
Highload-блок «Расписание»:
| Поле | Тип | Назначение |
|---|---|---|
| UF_BOX_ID | Целое число | ID бокса (1-6) |
| UF_DATE | Дата | Дата записи |
| UF_TIME_START | Строка | Начало слота (08:00, 08:30...) |
| UF_TIME_END | Строка | Конец слота |
| UF_SERVICE_ID | Целое число | Привязка к элементу инфоблока услуг |
| UF_STATUS | Список | free / booked / in_progress / done |
| UF_CLIENT_PHONE | Строка | Телефон клиента |
| UF_CAR_CLASS | Список | Класс авто |
| UF_ORDER_ID | Целое число | Привязка к заказу sale (для абонементов) |
Логика формирования сетки. При открытии страницы записи компонент получает текущую дату, делает выборку из Highload-блока по UF_DATE и UF_BOX_ID, строит сетку «бокс × время». Свободные слоты — кликабельны, занятые — серые. Длительность услуги определяет, сколько последовательных слотов блокируется: если полировка занимает 90 минут, при выборе слота 10:00 автоматически резервируются 10:00, 10:30 и 11:00.
Генерация слотов происходит cron-агентом (CAgent), который каждую ночь создаёт слоты на 14 дней вперёд. Агент учитывает график работы мойки (свойства инфоблока «Настройки») и исключает выходные/праздники.
Защита от двойного бронирования — при подтверждении записи проверяется UF_STATUS выбранных слотов в транзакции. Если между моментом отображения сетки и нажатием «Записаться» слот заняли — клиент получает сообщение и актуальную сетку.
После успешной записи срабатывает обработчик события, который отправляет SMS через messageservice и добавляет сделку в CRM Битрикс24 (если настроена интеграция).
Абонементы и программа лояльности
Абонементы реализуются через модуль sale как товары с типом «услуга». Абонемент на 5 моек кузова — товар с дополнительным свойством UF_REMAINING (остаток посещений) в Highload-блоке «Абонементы клиентов».
При каждой записи с использованием абонемента значение UF_REMAINING уменьшается на 1. Когда остаток достигает 2 — клиенту уходит напоминание о продлении.
Программа лояльности строится на встроенных накопительных скидках модуля sale. Группы пользователей (Серебро, Золото, Платина) назначаются автоматически по сумме заказов через обработчик OnSaleOrderSaved. Скидка применяется при оформлении следующей записи.
Технические моменты
- Адаптивность — 70%+ клиентов записываются с телефона, стоя в пробке. Сетка расписания на мобильном отображается горизонтальным свайпом по боксам
- Скорость — композитный кеш включён для каталога, расписание загружается AJAX-запросом к контроллеру (не кешируется)
- Уведомления — SMS при записи, напоминание за 2 часа, запрос отзыва через 1 час после визита







