Розробка сайту кінотеатру на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка сайту кінотеатру на 1С-Бітрікс
Складна
від 1 тижня до 3 місяців
Часті питання

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

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка сайту кінотеатру на 1С-Бітрікс

Сайт кінотеатру вирішує одне завдання — продати квиток на конкретний сеанс. Все інше (гарні постери, опис фільмів, трейлери) працює на цю мету. Технічна складність — у розкладі, який оновлюється щотижня, та в схемах кількох залів з різною конфігурацією місць. На 1С-Бітрікс це збирається з модулів iblock та sale з інтеграцією зовнішніх API.

Розклад сеансів: структура даних та TMDB

Розклад кінотеатру — це тривимірна матриця: фільм × зал × час. Зберігання організується в двох інфоблоках.

Інфоблок Films. Карточка фільму:

  • PROPERTY_TMDB_ID — ідентифікатор у The Movie Database
  • PROPERTY_TITLE_ORIGINAL — оригінальна назва
  • PROPERTY_GENRES — жанри (множинний довідник)
  • PROPERTY_DURATION — хронометраж у хвилинах
  • PROPERTY_AGE_RATING — віковий рейтинг (0+, 6+, 12+, 16+, 18+)
  • PROPERTY_FORMAT — формати показу (2D, 3D, IMAX, Dolby Atmos — множинний)
  • PROPERTY_RELEASE_DATE — дата початку прокату
  • PROPERTY_TRAILER_URL — посилання на трейлер (YouTube)
  • PROPERTY_POSTER — постер (файл)
  • PROPERTY_BACKDROP — фонове зображення для шапки сторінки

Ключовий момент — автоматичне заповнення карточки з TMDB API. Менеджер вводить тільки TMDB_ID, агент Бітрікс (запуск через CAgent::AddAgent) при створенні елемента виконує GET-запит до api.themoviedb.org/3/movie/{id} й заповнює: опис, жанри, хронометраж, постер, backdrop, акторський склад. Постер та backdrop завантажуються з image.tmdb.org та зберігаються локально — залежність від зовнішнього CDN виключається.

Оновлення даних запускається агентом раз на добу: перевіряються зміни рейтингів, описів, додані трейлери. Запити до TMDB кешуються в Bitrix\Main\Data\Cache з TTL 86400 секунд.

Інфоблок Sessions. Кожен сеанс — окремий елемент:

Властивість Тип Опис
PROPERTY_FILM_ID Привязка Фільм із Films
PROPERTY_HALL_ID Привязка Зал із Halls
PROPERTY_DATETIME Дата/час Початок сеансу
PROPERTY_FORMAT Список 2D / 3D / IMAX
PROPERTY_LANGUAGE Список Оригінал / Дубляж / Субтитри
PROPERTY_PRICES JSON Ціни по зонах: {"zone_a": 12, "zone_b": 10, "zone_c": 8}
PROPERTY_STATUS Список Продаж / Мало місць / Розпродано / Скасовано

Розклад на тиждень завантажується пакетно. Менеджер заповнює Excel-шаблон (фільм, зал, дата, час, формат), завантажує через кастомний адміністративний інтерфейс. Парсер на PhpSpreadsheet створює елементи інфоблоку, валідуючи кожну строку: існує фільм у базі, чи не перетинаються сеанси в одному залі (перевірка за хронометражем + 30 хвилин на прибирання).

Відображення розкладу. На головній сторінці — сітка «фільми × час» на сьогодні та завтра. Компонент bitrix:news.list з групуванням за фільмами, всередину — кнопки сеансів з ціною та форматом. Фільтр за датою, жанром та форматом — через AJAX без перезавантаження сторінки.

На сторінці фільму — повний розклад на поточний та наступний тиждень у форматі таблиці за днями. На сторінці залу — розклад усіх сеансів у цьому залі.

Продаж квитків: кілька залів, різні схеми, зональні ціни

Кожен зал кінотеатру — окрема SVG-схема. Мультиплекс на 5–8 залів означає 5–8 різних SVG-файлів з різною кількістю рядів, місць та конфігурацією (звичайні крісла, VIP-дивани, місця для інвалідів, love seats).

Структура SVG. Місця групуються по зонах через атрибут data-zone:

  • zone_a — центральні ряди (оптимальний огляд)
  • zone_b — бічні та задні ряди
  • zone_c — перші ряди (ближче до екрану)
  • zone_vip — VIP-секція (збільшені крісла, столики)

Ціна прив'язана до зони, а не до місця. Це спрощує адміністрування: замість задання ціни для кожного з 200 місць — 4 зональні ціни на сеанс. Ціни зберігаються у JSON-властивості сеансу PROPERTY_PRICES.

Інтерактивна схема. Технічна реалізація аналогічна театральній, але з нюансами:

  • Місця різних типів відображаються різними іконками (звичайне крісло, VIP-диван, місце для колясок)
  • Екран відрисовується в SVG як орієнтир — користувач розуміє, де буде сидіти відносно екрану
  • Підсвітка зон при наведенні — вся зона підсвічується при hover, показуючи ціну категорії
  • Мобільна версія: схема масштабується, при тапі на область — зум на секцію з показом окремих місць

Блокування та оплата. Вибрані місця блокуються в Redis на 8 хвилин (стандарт для кінотеатрів — покупка швидше, ніж у театрі). При оформленні замовлення:

  1. Валідація місць (не продані, не заблоковані іншим)
  2. Створення замовлення в sale з позиціями: фільм + сеанс + місце
  3. Онлайн-оплата через ЮKassa / CloudPayments / СБП
  4. Генерація електронного квитка з QR-кодом
  5. Відправлення на email та опціонально push через Telegram Bot API

QR містить зашифровану строку з ID замовлення, номером місця та контрольною сумою. Термінал при вході в зал сканує QR та помічає квиток як використаний. При спробі повторного проходу — відмова.

Інтеграція з кінотеатральними системами

Більшість мереж кінотеатрів працюють з автоматизованими системами управління. Сайт підключається до них для синхронізації розкладу та продажів.

Система Протокол Можливості
Киноплан REST API Розклад, продаж, бронь, фіскалізація
Vista Cinema SOAP / REST Сеанси, зали, ціни, статус місць, транзакції
КСЕА (Кінотеатральна система єдиного абонемента) XML-RPC Абонементи, подарункові карти, бонуси
Ticketon REST API Віджет продажу, webhook статусів

При інтеграції з Киноплан сайт Бітрікс виступає як фронтенд, а бекенд продажу — на стороні Киноплану. Агент синхронізації запускається щораз 5 хвилин: забирає актуальний розклад, статуси місць, нові фільми. При покупці через сайт замовлення передається в API Киноплану, звідти повертається ID транзакції для фіскального чека.

Для незалежних кінотеатрів без зовнішної системи вся логіка продажу працює всередину Бітрікс. У цьому випадку фіскалізація чека виконується через модуль онлайн-каси — інтеграція з АТОЛ, OrangeData або хмарною касою платіжного провайдера.

Бар-меню з передзаказом до сеансу

Додаткова виручка кінотеатру — продаж їжі та напоїв. На етапі покупки квитка додається крок «Додати до замовлення»:

  • Попкорн (малий / середній / великий)
  • Напитки (кола, сік, вода)
  • Комбо-набори (попкорн + напиток зі скидкою)
  • Начос, гарячі доги, снеки

Позиції бар-меню зберігаються в інфоблоці BarMenu з цінами та фотографіями. При додаванні до замовлення — додаткові позиції в кошику sale. Після оплати бар отримує замовлення через внутрішній webhook: номер замовлення, склад, час сеансу. До приходу глядача замовлення зібрано.

Товарні залишки синхронізуються з 1С:Управління торгівлею через стандартний модуль обміну. Якщо попкорн закінчився — позиція деактивується на сайті автоматично.

Бонусна карта

Програма лояльності кінотеатру реалізується через внутрішні рахунки модуля sale:

  • Нарахування бонусів після відвідування (5–10% від суми чека)
  • Списання бонусів при наступній покупці (до 50% вартості квитка)
  • День народження — подвійні бонуси на тиждень (обробник перевіряє UF-поле UF_BIRTHDAY)
  • Накопичувальні рівні: Глядач → Кінолюб → Кінокритик (пороги задаються в HL-блоці LoyaltyLevels)

Ідентифікація — за номером телефону. Фізична пластикова карта не потрібна: при покупці клієнт вводить телефон, система знаходить акаунт і показує баланс. Авторизація в особистому кабінеті — через SMS-код (модуль main з кастомним обробником авторизації через messageservice-провайдер).

Технічні графіки робіт

Етап Графік
Проектування та прототип 2 тижні
Дизайн (адаптив, схеми залів) 3–4 тижні
Верстка 2–3 тижні
Розробка (інфоблоки, розклад, TMDB) 3–4 тижні
SVG-схеми залів та продаж місць 2–3 тижні
Інтеграція (платіжна система, каса, Киноплан) 2–4 тижні
Бар-меню та бонусна система 1–2 тижні
Тестування та наповнення 2 тижні
Разом 17–24 тижні

При інтеграції з існуючою кінотеатральною системою (Киноплан, Vista) етапи розкладу та продажу місць частково перетинаються, що скорочує загальний термін на 2–3 тижні.