Разработка сайта салона красоты на 1С-Битрикс

Разработка сайта салона красоты на 1С-Битрикс Салон красоты теряет до 30% потенциальных записей, если на сайте нет работающей онлайн-записи. При среднем чеке 2000 ₽ и 100 заявках в месяц это 60 000 ₽ ежемесячного упущенного дохода. Клиенты ищут услуги в 11 вечера, видят красивый лендинг, но не мо
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка сайта салона красоты на 1С-Битрикс
Сложный
от 1 недели до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    996
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    735
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Разработка сайта салона красоты на 1С-Битрикс

Салон красоты теряет до 30% потенциальных записей, если на сайте нет работающей онлайн-записи. При среднем чеке 2000 ₽ и 100 заявках в месяц это 60 000 ₽ ежемесячного упущенного дохода. Клиенты ищут услуги в 11 вечера, видят красивый лендинг, но не могут записаться — уходят к конкурентам, у которых кнопка «Забронировать» работает. Наше решение на 1С-Битрикс исправляет это: каталог услуг с живыми ценами, расчёт свободных слотов в реальном времени, автоматические напоминания. Опыт — более 40 проектов за 8 лет.

Почему онлайн-запись увеличивает выручку салона?

Конверсия сайта салона без онлайн-записи — 1-2%, с ней — 5-8%. Разница — в 3-4 раза больше заявок. Система бронирования работает как ресепшн 24/7: клиент сам выбирает мастера и время, не ждёт ответа по телефону. В пиковые часы (вечер, выходные) это решает проблему перегруженных администраторов. Статистика внедрений показывает рост числа записей на 40-60% за первые 3 месяца.

Каталог услуг: структура инфоблоков

Услуги организуются в инфоблоке с иерархией разделов: «Парикмахерская», «Маникюр и педикюр», «Косметология», «Массаж». Каждый раздел содержит подразделы — «Стрижки», «Окрашивание», «Уходовые процедуры». Для типового салона число услуг варьируется от 30 до 80.

Свойства элемента инфоблока «Услуги»:

Свойство Тип Назначение
PRICE_FROM number Цена «от» (зависит от мастера)
DURATION_MIN number Длительность в минутах
MASTER_LINK E (множественное) Привязка к мастерам, оказывающим услугу
CATEGORY_TAGS string (множественное) Теги: «для невест», «новинка»
CONTRAINDICATIONS HTML Противопоказания (для косметологии)
PREPARATION HTML Подготовка к процедуре

Цена «от» — осознанное решение. В салонах цена зависит от категории мастера (стажёр, стилист, топ-стилист). Точная цена рассчитывается после выбора мастера — для этого нужна промежуточная таблица «мастер — услуга — цена». Реализуется через Highload-блок MasterServicePrice с полями: UF_MASTER_ID, UF_SERVICE_ID, UF_PRICE. При выборе услуги на фронте подтягиваются все мастера с их ценами через DataManager::getList().

Как организовать онлайн-запись без дублирования слотов?

Это ключевой функционал сайта и самый сложный в реализации. Клиент ожидает простой интерфейс: выбрал услугу, выбрал мастера, увидел свободные окна, нажал «Записаться». За этой простотой — многоуровневая логика расчёта доступности.

Шаг 1: выбор услуги. Клиент выбирает из каталога. Система определяет длительность (DURATION_MIN) и список мастеров, которые оказывают эту услугу (MASTER_LINK).

Шаг 2: выбор мастера или «любой свободный». Если клиент выбирает конкретного мастера — работаем с его графиком. Если «любой» — перебираем всех мастеров услуги и показываем объединённый набор слотов.

Шаг 3: расчёт свободных слотов. Здесь начинается инженерная часть. Данные для расчёта хранятся в трёх Highload-блоках:

  • MasterSchedule — рабочий график мастера: UF_MASTER_ID, UF_DATE, UF_WORK_START, UF_WORK_END, UF_BREAK_START, UF_BREAK_END.
  • MasterBooking — существующие записи: UF_MASTER_ID, UF_DATE, UF_TIME_START, UF_TIME_END, UF_CLIENT_ID, UF_SERVICE_ID, UF_STATUS.
  • MasterDayOff — отпуска, больничные, выходные.

Алгоритм расчёта свободных слотов для конкретного мастера на конкретную дату:

  1. Получить рабочий график из MasterSchedule. Если записи нет или дата в MasterDayOff — мастер недоступен.
  2. Сформировать массив рабочих минут: от UF_WORK_START до UF_WORK_END, исключая перерыв.
  3. Получить все записи из MasterBooking со статусом confirmed или pending.
  4. Вычесть из рабочих минут занятые интервалы.
  5. В оставшихся свободных интервалах найти окна, длительность которых >= DURATION_MIN услуги.
  6. Разбить эти окна на слоты с шагом 15 или 30 минут (настраивается).
Псевдокод расчёта слотов
$freeIntervals = subtractIntervals($workIntervals, $bookedIntervals); $slots = []; foreach ($freeIntervals as $interval) { $start = $interval['start']; while ($start + $serviceDuration <= $interval['end']) { $slots[] = $start; $start += $stepMinutes; } } 

Буфер между записями. Между процедурами часто нужен технический перерыв — 5-15 минут на уборку кабинета или подготовку инструментов. Буфер добавляется к DURATION_MIN при расчёте слотов, но не показывается клиенту.

Конкурентный доступ. Два клиента одновременно видят один и тот же свободный слот. Первый нажимает «Записаться» — слот блокируется. Второй получает сообщение «время занято, выберите другое». Блокировка реализуется через транзакцию: INSERT в MasterBooking + проверка отсутствия пересечений в одной транзакции.

Подтверждение записи. После бронирования клиент получает SMS (модуль messageservice) и email. За сутки до визита — напоминание через агент Битрикса. Если клиент не подтверждает — запись переходит в статус unconfirmed, и администратор решает, освободить ли слот.

Что делать, если YCLIENTS недоступен?

Большинство салонов уже используют систему учёта. Две самые распространённые:

  • YCLIENTS. Облачная платформа с REST API. Основные эндпоинты: /api/v1/book_record/ (создание записи), /api/v1/book_dates/ (доступные даты), /api/v1/book_times/ (доступные слоты). При интеграции с YCLIENTS сайт Битрикса не рассчитывает слоты самостоятельно — он запрашивает их через API. Highload-блоки MasterSchedule и MasterBooking в этом случае не нужны: YCLIENTS является мастер-системой. Минус: зависимость от стороннего API. Если YCLIENTS лежит — на сайте нет записи. Решение — кэширование последнего известного расписания и fallback на форму «оставить заявку».
  • 1С:Салон красоты. Обмен через HTTP-сервисы 1С или файловый обмен (XML). Синхронизация мастеров, услуг, записей. Обычно работает с задержкой 5-15 минут — не real-time.

Портфолио работ мастеров

Инфоблок «Портфолио» с привязкой к мастеру и услуге. Ключевые свойства:

  • PHOTO_BEFORE / PHOTO_AFTER — файловые свойства
  • MASTER_LINK — привязка к мастеру
  • SERVICE_LINK — привязка к услуге
  • DESCRIPTION — что было сделано

На странице мастера портфолио фильтруется по MASTER_LINK. На странице услуги — по SERVICE_LINK. Фотографии до/после отображаются слайдером с разделителем — популярный паттерн для бьюти-индустрии.

Важно: фото портфолио должны быть сжаты. Клиенты салонов чаще заходят с мобильных — 10 фото по 5 МБ каждое убьют конверсию. Битрикс умеет ресайзить через CFile::ResizeImageGet(), но лучше настроить WebP-конвертацию на уровне nginx или через обработчик события OnFileSave.

Подарочные сертификаты и акции

Подарочные сертификаты реализуются через модуль sale. Сертификат — это товар в каталоге с номиналом. При покупке генерируется уникальный код, который сохраняется в свойствах заказа (\Bitrix\Sale\OrderpropertyCollection). Код отправляется покупателю на email в виде PDF. При использовании сертификата в салоне код вводится при оформлении заказа — срабатывает скидочный купон модуля sale.discount. Баланс сертификата уменьшается на сумму услуги.

Акции — проще: отдельный инфоблок с датой начала/окончания, привязкой к услугам, текстом условий. Выводятся на главной и в каталоге через фильтр <=DATE_ACTIVE_FROM / >=DATE_ACTIVE_TO.

Программа лояльности

Бонусные баллы можно реализовать двумя путями:

  • Через sale.discount. Модуль поддерживает накопительные скидки и правила на основе суммы покупок. Ограничение — нет гибкого начисления баллов за конкретные действия (приведи друга, отзыв, день рождения).
  • Через кастомный модуль. Highload-блок LoyaltyBalance с полями UF_USER_ID, UF_POINTS, UF_HISTORY (сериализованный лог операций). При каждой оплате обработчик OnSaleOrderPaid начисляет баллы по формуле (обычно 3-10% от суммы). При списании — проверка баланса и уменьшение суммы заказа.

Сроки реализации

Масштаб Состав Срок
Один салон, до 10 мастеров Каталог, запись (через YCLIENTS API), портфолио, акции 6-8 недель
Салон с собственной системой записи + расчёт слотов в Битриксе, SMS-напоминания, сертификаты 10-14 недель
Сеть салонов + мультисайтовость, единая клиентская база, лояльность, интеграция с 1С 16-22 недели

Что входит в работу

В результате вы получаете:

  • Рабочий сайт на 1С-Битрикс с полным функционалом (каталог, запись, портфолио, сертификаты)
  • Интеграцию с выбранными внешними системами (YCLIENTS, 1С)
  • Документацию по администрированию сайта
  • Обучение сотрудников (до 2 часов)
  • Доступ к исходному коду и админке
  • Поддержку в течение 3 месяцев после запуска

На что обратить внимание

Скорость загрузки страницы каталога критична — клиент сравнивает несколько салонов и уходит, если страница грузится больше 2 секунд. Кэширование компонентов Битрикса ('CACHE_TIME' => 3600) обязательно для каталога и портфолио. Страницу онлайн-записи кэшировать нельзя — данные о слотах должны быть актуальными.

Свяжитесь с нами, чтобы обсудить ваш проект. Мы оценим задачу и предложим оптимальное решение под ключ. Закажите разработку сайта салона красоты на 1С-Битрикс и получите конкурентное преимущество уже через 6-8 недель.