Розробка сайту хімчистки на 1С-Бітрікс
Відвідувач заходить на сайт хімчистки, бачить гарні фото, але не може швидко розрахувати вартість чистки пуховика. У підсумку — йде на інший сайт. Рішення: живий калькулятор, інтегрований з CRM, та заявка в один клік. Ми реалізуємо це на 1С-Бітрікс за 4–8 тижнів. Оцінюємо проєкт безкоштовно — зв'яжіться з нами.
Сайт хімчистки вирішує конкретне завдання: клієнт має зрозуміти, скільки коштує обробка його речі, та залишити заявку — бажано за одне відвідування, без дзвінків та уточнень. На 1С-Бітрікс це реалізується через зв'язку інфоблоків, HL-блоків з ціновою матрицею та форми замовлення з прив'язкою до CRM. Досвід понад 10 років у розробці на Бітрікс гарантує надійність та продуктивність.
Структура каталогу послуг на інфоблоках
Послуги хімчистки групуються за категоріями: одяг, килими та килимове покриття, штори та текстиль, шкіра та замша, весільні сукні, м'які меблі. Кожна категорія — розділ інфоблоку 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 проєктів. Отримайте консультацію інженера по вашому проєкту — оцінка безкоштовна.







