Розробка сайту квест-кімнати на 1С-Бітрікс
Квест-кімната продає враження. Сайт повинен передати атмосферу ще до відвідування — і при цьому забезпечити швидке бронювання без дзвінків. На практиці 60% броней приходять вечором, коли адміністратор вже не відповідає. Автоматична система бронювання зі слотами і онлайн-оплатою — не опція, а необхідність.
На 1С-Бітрікс такий сайт будується на інфоблоках каталогу квестів, Highload-блоці розписання, модулі sale для оплати та CRM-інтеграції для обробки заявок.
Каталог квестів: структура інфоблоку
Кожен квест — елемент інфоблоку з розгорнутим набором властивостей. Стандартного «назва + опис + картинка» недостатньо — відвідувач вибирає квест за конкретними параметрами.
Властивості інфоблоку «Квести»:
- Жанр — хоррор, детектив, пригода, фентезі, sci-fi (властивість-довідник, множинне — квест може поєднувати жанри)
- Складність — від 1 до 5 (числова, відображається іконками замків)
- Кол-во гравців — min і max (два числові властивості)
- Вікове обмеження — 6+, 12+, 16+, 18+ (список)
- Тривалість — у хвилинах (числова)
- Тизер-відео — посилання на YouTube/VK Video (рядок)
-
Фотогалерея — множинне властивість «Файл» з включеним watermark через обробник
OnBeforeIBlockElementUpdate - Відсоток проходження — статистика, оновлюється агентом на основі даних з HL-блоку бронювань
- Статус — активен, тимчасово закрито, новинка (список, впливає на сортування і бейджи в каталозі)
На сторінці каталогу працює smart-фільтр (CIBlockSmartFilter) за жанром, кількістю гравців і складністю. Результати фільтрації кешуються в фасетному індексі — навіть при 30+ квестах (мережа локацій) відклик миттєвий.
Детальна сторінка квеста будується за кінематографічним принципом: повноекранний hero-блок з тизер-відео на фоні, параметри в компактних карточках, галерея з lightbox, блок відгуків і CTA бронювання, зафіксований в viewport.
Бронювання зі слотами і динамічним ціноутворенням
Це найбільш технічно насичена частина проекту. Бронювання квеста — це не просто «вибрав дату і оплатив». Потрібно врахувати: доступність конкретного квеста в конкретний час, підготовку приміщення між сеансами, різницю в цінах за днями тижня і часом доби, а також групові скидки.
Highload-блок «Слоти бронювання»:
| Поле | Тип | Призначення |
|---|---|---|
| UF_QUEST_ID | Ціле число | Прив'язка до квеста |
| UF_DATE | Дата | Дата сеансу |
| UF_TIME | Рядок | Час початку (10:00, 11:30...) |
| UF_STATUS | Список | available / reserved / paid / completed / cancelled |
| UF_PRICE | Число | Розраховна ціна для цього слота |
| UF_PLAYERS | Ціле число | Фактичне кол-во гравців |
| UF_ORDER_ID | Ціле число | Прив'язка до замовлення sale |
| UF_PROMO | Рядок | Застосований промокод |
| UF_SOURCE | Список | website / phone / aggregator |
Генерація слотів. Агент (CAgent) запускається щодня о 01:00 і створює слоти на 21 день вперед. Інтервал між слотами = тривалість квеста + 20 хвилин на підготовку (скидання кімнати). Для квеста на 60 хвилин при роботі з 10:00 до 22:00 вийде 9 слотів на день. Агент берує тривалість і час підготовки з властивостей інфоблоку квеста — якщо параметри змінилися, нові слоти генеруються за актуальними даними.
Динамічне ціноутворення реалізується через окремий Highload-блок «Правила цін»:
| Поле | Тип | Приклад |
|---|---|---|
| UF_QUEST_ID | Ціле число | 5 |
| UF_DAY_TYPE | Список | weekday / weekend / holiday |
| UF_TIME_FROM | Рядок | 10:00 |
| UF_TIME_TO | Рядок | 16:00 |
| UF_BASE_PRICE | Число | 80 BYN |
| UF_PLAYER_PRICE | Число | 0 (фіксована) або 15 (за людину) |
| UF_MIN_PRICE | Число | 60 BYN (поріг для малої групи) |
При генерації слотів агент визначає UF_DAY_TYPE за днем тижня (вихідні і святки — з окремого довідника), знаходить підходящого правило і записує UF_PRICE. Якщо модель ціноутворення «за людину» — на сайті відображається діапазон «від X до Y BYN», а фінальна ціна розраховується після указання кількості гравців.
Алгоритм бронювання на клієнті:
- Відвідувач вибирає квест — підгружається календар з доступними датами (AJAX-запит до контролера, фільтр по
UF_STATUS = availableіUF_DATE >= сьогодні) - Вибирає дату — з'являються доступні слоти з цінами
- Указує кількість гравців — ціна пересчитивається, якщо модель «за людину»
- Вводить промокод (опціонально) — скидка застосовується через правила кошика модуля
sale - Заповнює контактні дані — ім'я, телефон, email
- Оплачує онлайн — платіжна система через
sale.paysystem(ЕРИП, карти)
Резервування слота відбувається на кроці 5: статус змінюється на reserved, запускається таймер 15 хвилин. Якщо оплата не поступила — агент повертає статус available. Це запобігає ситуації, коли слот «завис» через незавершену оплату.
Після успішної оплати:
- Статус слота →
paid - Клієнту уходит email з деталями і SMS з адресою/часом
- В CRM Бітрікс24 створюється угода (через REST API або модуль
crm) - За 3 години до сеансу — автоматичне SMS-напоминание через
messageservice
Корпоративні пропозиції
Окремий розділ сайту з формою заявки на корпоративне мероприятие. Форма створюється через iblock-компонент зворотного зв'язку і включає поля: компанія, кількість учасників, переважні дати, бюджет (діапазон), побажання. Заявка потрапляє в CRM як ліД з джерелом «корпоратив» — окрема воронка з етапами «узгодження → передоплата → проведення → відгук».
Для корпоративних клієнтів передбачена експлюзивна оренда — бронювання всіх квестів на визначений проміжок часу. Реалізується через масову зміну статусів слотів з позначкою UF_SOURCE = corporate.
Відгуки та подарункові сертифікати
Відгуки зберігаються в інфоблоці з премодерацією. Властивості: прив'язка до квеста (E), оцінка (1-5), текст, фото, дата проходження. Після проходження квеста клієнту приходит email з посиланням на форму відгуку — авторизація не потрібна, ідентифікація за токеном з замовлення.
Подарункові сертифікати — товари модуля sale з генерацією унікального коду. При покупці сертифіката створюється запис в HL-блоці «Сертифікати» з полями: код, номіналь, строк дії, залишок. Сертифікат застосовується як купон при бронюванні. PDF-сертифікат генерується автоматично через бібліотеку TCPDF і відправляється на email покупця.
Технічні рішення
-
SEO — ЧПУ по схемі
/quests/horror/назва-квеста/, автогенерація meta через шаблон з властивостей інфоблоку - Швидкість — композитний кеш для каталогу і детальних сторінок, розписання грузиться через AJAX без кешу
-
Аналітика — eventi
dataLayerпри кожному кроці бронювання для воронки в Google Analytics / Яндекс.Метриці - Мобільна версія — календар бронювання адаптований під тач-інтерфейс, слоти відображаються вертикальним списком замість сітки
- Мультимовність — при роботі на туристичному ринку підключається модуль багатосайтовості з англомовною версією каталогу







