Разработка сайта химчистки на 1С-Битрикс
Посетитель заходит на сайт химчистки, видит красивые фото, но не может быстро рассчитать стоимость чистки пуховика. В итоге — уходит на другой сайт. Решение: живой калькулятор, интегрированный с CRM, и заявка в один клик. Мы реализуем это на 1С-Битрикс за 4–8 недель. Оцениваем проект бесплатно — свяжитесь с нами.
Сайт химчистки решает конкретную задачу: клиент должен понять, сколько стоит обработка его вещи, и оставить заявку — желательно за одно посещение, без звонков и уточнений. На 1С-Битрикс это реализуется через связку инфоблоков, HL-блоков с ценовой матрицей и формы заказа с привязкой к CRM. Опыт более 5 лет в разработке на Битриксе гарантирует надёжность и производительность.
Структура каталога услуг на инфоблоках
Услуги химчистки группируются по категориям: одежда, ковры и ковролин, шторы и текстиль, кожа и замша, свадебные платья, мягкая мебель. Каждая категория — раздел инфоблока Services. Элементы внутри — конкретные услуги: «Химчистка пуховика», «Чистка ковра 2×3 м», «Реставрация кожаной куртки».
Свойства элемента инфоблока:
- PROPERTY_MATERIAL — тип материала (множественное, справочник)
- PROPERTY_MIN_PRICE — стоимость от (для отображения в каталоге)
- PROPERTY_DURATION — срок выполнения в рабочих днях
- PROPERTY_COMPLEXITY — сложность обработки (стандарт / повышенная / премиум)
- PROPERTY_PHOTO_BEFORE_AFTER — галерея «до/после» (множественный файл)
Для вывода используется компонент bitrix:catalog.section.list с кастомным шаблоном. Карточка услуги показывает фото, диапазон цен, срок и кнопку «Рассчитать стоимость», которая открывает калькулятор с предзаполненной категорией.
Как устроен калькулятор на Битрикс?
Калькулятор — ключевой элемент сайта, и его архитектура заслуживает подробного разбора. Он основан на трёхмерной матрице цен, хранящейся в Highload-блоке CleaningPrices. Цена зависит от трёх параметров: тип изделия, материал и степень загрязнения.
Ценовая матрица
Хранится в HL-блоке CleaningPrices:
| Поле HL-блока | Тип | Пример значения |
|---|---|---|
| UF_ITEM_TYPE | Привязка к справочнику | Пуховик |
| UF_MATERIAL | Привязка к справочнику | Полиэстер |
| UF_CONTAMINATION | Список | light / medium / heavy |
| UF_BASE_PRICE | Число | базовая цена |
| UF_EXPRESS_COEFF | Число | 1.5 |
| UF_EXTRA_SERVICES | JSON | {"waterproofing": 500, "deodorization": 300} |
Справочники ItemTypes и Materials — отдельные HL-блоки. Это позволяет менеджеру добавлять новые типы изделий и материалов без разработчика. Привязки между ними задают допустимые комбинации: кожа применима к куртке, но не к постельному белью.
Логика работы на фронтенде
Калькулятор реализуется как пошаговая форма (wizard):
- Шаг 1 — Тип изделия. Визуальный выбор иконками: куртка, платье, ковёр, шторы. При выборе AJAX-запрос подгружает доступные материалы для этого типа
- Шаг 2 — Материал. Список фильтруется по типу изделия. Для неопытных пользователей — подсказки с фото текстур
- Шаг 3 — Степень загрязнения. Три варианта с визуальными примерами: лёгкое (пыль, поверхностные пятна), среднее (застарелые пятна, запах), сильное (масло, краска, плесень)
- Шаг 4 — Дополнительные услуги. Чекбоксы: водоотталкивающая пропитка, дезодорация, антимоль, упаковка. Стоимость подтягивается из поля
UF_EXTRA_SERVICES - Результат. Итоговая стоимость с разбивкой: базовая цена + доп. услуги. Опционально — стоимость экспресс-обработки (×UF_EXPRESS_COEFF)
Серверная часть
AJAX-контроллер CleaningCalculator наследуется от Bitrix\Main\Engine\Controller. Метод calculateAction() принимает ID типа, материала, уровень загрязнения и массив доп. услуг. Делает выборку из HL-блока через D7 ORM:
CleaningPricesTable::getList([
'filter' => [
'UF_ITEM_TYPE' => $itemTypeId,
'UF_MATERIAL' => $materialId,
'UF_CONTAMINATION' => $contamination
]
])
Если точное совпадение не найдено (клиент выбрал редкий материал), берётся цена по умолчанию для типа изделия с пометкой «точная стоимость после осмотра».
Подробнее: официальная документация D7 ORM
Кэширование матрицы
При первом запросе вся матрица цен загружается в Bitrix\Main\Data\Cache с тегом cleaning_prices. При изменении любого элемента HL-блока тег сбрасывается через обработчик OnAfterUpdate. Это исключает запросы к базе при каждом расчёте — страницы загружаются в 2-3 раза быстрее.
Как организовать онлайн-заявку с вызовом курьера?
После расчёта стоимости клиент заполняет форму заказа:
- Контактные данные (телефон, имя)
- Адрес забора (с подсказками через DaData API)
- Дата и временной слот забора (выбор из доступных — агент ежедневно генерирует слоты на 7 дней вперёд)
- Комментарий (описание загрязнений, особые пожелания)
Заявка создаёт лид в CRM-модуле Битрикс24 через REST API. В карточке лида уже заполнены: услуга, расчётная стоимость, адрес, слот забора. Менеджеру остаётся подтвердить заказ и назначить курьера.
Для SMS-уведомлений подключается провайдер через модуль messageservice. Клиент получает SMS на каждом этапе: «Курьер выехал», «Вещи приняты», «Заказ готов», «Курьер доставит сегодня с 14 до 16».
Отслеживание заказа
На сайте размещается форма «Проверить статус заказа». Клиент вводит номер заказа и последние 4 цифры телефона. Система ищет элемент в инфоблоке Orders и отображает текущий статус с таймлайном:
| Этап | Статус | Дата |
|---|---|---|
| Заявка принята | Выполнено | 12.03 |
| Курьер забрал вещи | Выполнено | 13.03 |
| Осмотр и оценка | Выполнено | 13.03 |
| Химчистка | В процессе | — |
| Контроль качества | Ожидание | — |
| Доставка клиенту | Ожидание | — |
Статус обновляется оператором в админке или автоматически через webhook из учётной системы химчистки (1С:Предприятие, StoryClean, собственная ERP).
Накопительная программа лояльности
Для постоянных клиентов реализуется накопительная система. Используется модуль sale с внутренними счетами пользователей. При оплате заказа начисляются бонусные баллы (процент от суммы настраивается в HL-блоке LoyaltySettings).
Механика:
- Регистрация по номеру телефона (авторизация через SMS-код, модуль
mainс кастомным обработчиком) - Личный кабинет: история заказов, баланс бонусов, избранные адреса
- Списание бонусов при следующем заказе (ограничение — не более 30% от суммы)
- Referral-программа: клиент делится ссылкой, при заказе нового клиента оба получают бонусы
Баланс бонусов хранится в UF-поле пользователя UF_BONUS_BALANCE. Начисление и списание логируются в отдельном HL-блоке BonusTransactions для прозрачности и возможности аудита.
SEO-оптимизация для локального поиска
Химчистка — локальный бизнес. Основные запросы содержат географию: «химчистка пуховиков Минск», «чистка ковров Фрунзенский район».
Настраивается:
- Микроразметка Schema.org
DryCleaningOrLaundryс адресом, графиком работы, зоной обслуживания - Посадочные страницы под районы — через инфоблок
GeoPagesс привязкой к координатам - Автогенерация title и description по шаблону: «Химчистка {тип_изделия} в {район} — от {мин_цена} руб.»
- Страницы «до/после» с alt-тегами по типу загрязнения — работают на поиск по картинкам
- Модуль SEO Битрикс для управления robots.txt, sitemap.xml, каноническими URL
Компонентное кэширование настраивается с учётом гео: для каждого города/района — свой вариант кэша через CACHE_GROUPS.
Что входит в работу над сайтом химчистки
| Этап | Описание |
|---|---|
| Аналитика и прототипирование | Структура каталога, матрица цен, пользовательские сценарии |
| Дизайн-концепция | Адаптивный интерфейс, визуальные калькуляторы, галереи «до/после» |
| Разработка на 1С-Битрикс | Инфоблоки, HL-блоки, компонент калькулятора, интеграция с CRM |
| Интеграции | 1С, СДЭК, SMS-шлюзы, DaData, платежные системы |
| Наполнение контентом | До 30 услуг, фото, описания, мета-теги |
| Тестирование и запуск | Нагрузочное тестирование, SEO-аудит, мониторинг |
| Обучение сотрудников | Работа с админкой, заказами, бонусами |
| Гарантия и поддержка | 30 дней бесплатной техподдержки после запуска |
Мы имеем 10+ лет опыта с 1С-Битрикс и Битрикс24, реализовали более 50 проектов. Получите консультацию инженера по вашему проекту — оценка бесплатна.







