Сайт кінотеатру вирішує одне завдання — продати квиток на сеанс. Постери, трейлери, описи фільмів — усе це обслуговує конверсію з перегляду в покупку. Технічна складність не в контенті (його можна забрати з TMDB автоматично), а в розкладі, який перебудовується щотижня, і в схемах залів мультиплексу, де в кожного залу своя конфігурація місць, зон і цінових категорій. Ми розробляємо сайти кінотеатрів на 1С-Бітрікс, які справляються з цими завданнями без постійної участі розробника.
На 1С-Бітрікс проєкт будується на двох інфоблоках (фільми та сеанси), модулі sale для продажу, інтеграції з TMDB для автозаповнення карток і зв'язці з кінотеатральною системою керування. Вартість проєкту розраховується індивідуально.
Чому для розробки сайту кінотеатру на 1С-Бітрікс обирають два інфоблоки?
Розклад кінотеатру — тривимірна матриця: фільм × зал × час. Спроба впхнути все в один інфоблок закінчується кашею на другому місяці експлуатації. Два інфоблоки — єдиний робочий варіант.
Інфоблок 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_ID. Агент Бітрікс (CAgent::AddAgent) при створенні елемента робить GET-запит до api.themoviedb.org/3/movie/{id}?language=uk-UA і заповнює: опис, жанри, хронометраж, постер, backdrop, акторський склад. Постер і backdrop завантажуються з image.tmdb.org і зберігаються локально — жодної залежності від зовнішнього CDN у рантаймі. Інфоблоки v2.0 забезпечують зберігання неструктурованих даних із високою продуктивністю.
Оновлення даних — раз на добу агентом: перевіряються зміни рейтингів, нові трейлери. Кешування запитів до TMDB через Bitrix\Main\Data\Cache з TTL 86400 секунд. У TMDB API ліміт — 40 запитів за 10 секунд на безкоштовному тарифі. Для кінотеатру з 15–30 фільмами в прокаті цього з запасом.
Інфоблок Sessions — кожен сеанс як елемент:
| Властивість | Тип | Опис |
|---|---|---|
| PROPERTY_FILM_ID | Прив'язка | Фільм із Films |
| PROPERTY_HALL_ID | Прив'язка | Зал із Halls |
| PROPERTY_DATETIME | Дата/час | Початок сеансу |
| PROPERTY_FORMAT | Список | 2D / 3D / IMAX |
| PROPERTY_LANGUAGE | Список | Дубляж / Оригінал / Субтитри |
| PROPERTY_PRICES | JSON | Ціни за зонами: {"zone_a": 450, "zone_b": 350, "zone_c": 280, "zone_vip": 700} |
| PROPERTY_STATUS | Список | Продаж / Мало місць / Продано / Скасовано |
Пакетне завантаження розкладу. Менеджер заповнює Excel-шаблон: фільм, зал, дата, час, формат, мова. Завантажує через кастомний адміністративний інтерфейс. Парсер на PhpSpreadsheet створює елементи Sessions, валідуючи кожен рядок: чи існує фільм у базі, чи не перетинається сеанс з іншим у тому самому залі. Перевірка перетину — за хронометражем фільму + 30 хвилин на прибирання та рекламу. Якщо «Аватар 2» іде 192 хвилини, а наступний сеанс у тому самому залі поставлений через 200 хвилин — валідація викине помилку.
Відображення на сайті. На головній — сітка «фільми × час» на сьогодні та завтра. Компонент bitrix:news.list з групуванням по фільмах, всередині — кнопки сеансів із ціною та форматом. Фільтр за датою, жанром, форматом — AJAX без перезавантаження. На сторінці фільму — повний розклад на поточний і наступний тиждень, таблиця по днях.
Як реалізувати інтерактивну схему залів із зональним ціноутворенням?
Мультиплекс на 5–8 залів — це 5–8 різних SVG-файлів. Зал IMAX на 350 місць і камерний зал на 80 — зовсім різна геометрія. Звичайні крісла, VIP-дивани, love seats, місця для інвалідних візків — кожен тип відмальовується своєю іконкою.
Зональне ціноутворення. Ціна прив'язана до зони, а не до окремого місця. Замість задавання ціни для кожного з 300 місць — 4–5 зональних цін на сеанс:
-
zone_a— центральні ряди оптимального огляду -
zone_b— бічні та задні ряди -
zone_c— перші ряди (ближче до екрану) -
zone_vip— VIP-секція (широкі крісла, столики, збільшена відстань)
Зони задаються в SVG через атрибут data-zone. Ціни зберігаються в JSON-властивості сеансу PROPERTY_PRICES. Адміністратор змінює ціну на конкретний сеанс — без правки SVG.
Інтерактивна схема. Екран відмальовується в SVG як орієнтир — покупець розуміє, де буде сидіти. При наведенні на зону — підсвічування всієї зони з ціною. При тапі на місце — додавання в кошик з анімацією. Мобільна версія: при тапі на область залу — зум на секцію з відображенням окремих місць. Бібліотека svg-pan-zoom для масштабування.
Блокування місць — Redis з TTL 480 секунд (8 хвилин — покупка квитка в кінотеатрі швидше, ніж у театрі). Механізм SETNX з ключем lock:session_{id}:row_{r}:seat_{s}. Закінчення таймера — автоматичне звільнення.
Оформлення покупки:
- Валідація місць (не продані, не заблоковані)
- Створення замовлення в sale: фільм + сеанс + місце як позиції кошика
- Онлайн-оплата — ЮKassa / CloudPayments / СБП
- Генерація електронного квитка з QR-кодом
- Відправка на email та опціонально push через Telegram Bot API
QR містить зашифрований рядок: ID замовлення, номер місця, контрольна сума HMAC-SHA256. Термінал на вході в зал зчитує QR і відмічає квиток. Повторний прохід — відмова. Для мереж кінотеатрів QR повинен бути унікальним у рамках всієї мережі, а не одного кінотеатру — серійний номер включає код майданчика.
Інтеграція з Кіноплан та іншими системами
Мережеві кінотеатри працюють з автоматизованими системами. Сайт підключається до них для синхронізації розкладу та продажів:
| Система | Протокол | Що дає |
|---|---|---|
| Кіноплан | REST API | Розклад, продаж, бронь, фіскалізація, зали та схеми |
| Vista Cinema | SOAP / REST | Сеанси, ціни, статус місць, транзакції |
| КСЕА | XML-RPC | Абонементи, подарункові картки, бонуси |
| Ticketon | REST API | Віджет продажу, webhook статусів |
При роботі з Кіноплан сайт Бітрікс виступає фронтендом, а бекенд продажу — на стороні Кіноплану. Агент синхронізації запускається кожні 5 хвилин: забирає розклад, статуси місць, нові фільми. При покупці через сайт — замовлення передається в API Кіноплан, звідти приходить ID транзакції для фіскального чека.
Для незалежних кінотеатрів без зовнішньої системи вся логіка живе всередині Бітрікс. Фіскалізація чека — через модуль онлайн-каси: інтеграція з АТОЛ, OrangeData або хмарна каса платіжного провайдера (ЮKassa вміє сама відправляти чеки в ОФД).
Бар-меню з передзамовленням до сеансу
На етапі покупки квитка з'являється крок «Додати до замовлення»: попкорн (три розміри), напої, комбо-набори, снеки. Позиції зберігаються в інфоблоці BarMenu з цінами та фото. При додаванні — додаткові позиції в кошику sale.
Після оплати бар отримує замовлення через внутрішній webhook: склад, номер замовлення, час сеансу. До приходу глядача замовлення зібрано. Товарні залишки синхронізуються з 1С:Управління торгівлею через стандартний модуль обміну — якщо попкорн закінчився, позиція деактивується на сайті.
Комбо-набори реалізуються через правила кошика sale: «попкорн великий + кола велика = знижка 15%». Адміністратор створює комбо у візуальному конструкторі знижок без участі розробника.
Програма лояльності
Бонусна система — через внутрішні рахунки модуля sale:
- Нарахування 5–10% від суми чека після відвідування
- Списання до 50% вартості наступного квитка
- День народження — подвоєні бонуси протягом тижня (обробник перевіряє
UF_BIRTHDAY) - Накопичувальні рівні: Глядач → Кіноман → Кінокритик (пороги в HL-блоці LoyaltyLevels)
Ідентифікація — за номером телефону. Авторизація в особистому кабінеті через SMS-код: модуль main з кастомним обробником через messageservice.
Що входить у роботу?
- Проєктна документація: архітектура інфоблоків, схеми залів, опис інтеграцій
- Вихідний код сайту на 1С-Бітрікс з коментарями
- Інструкції з адміністрування та наповнення
- Навчання менеджерів роботі з розкладом і продажами
- Технічна підтримка протягом 3 місяців після запуску
Технічні терміни
| Етап | Термін |
|---|---|
| Проєктування та прототип | 2 тижні |
| Дизайн (адаптив, схеми залів) | 3–4 тижні |
| Верстка | 2–3 тижні |
| Розробка (інфоблоки, розклад, TMDB) | 3–4 тижні |
| SVG-схеми залів і продаж місць | 2–3 тижні |
| Інтеграція (платіжна система, онлайн-каса, Кіноплан) | 2–4 тижні |
| Бар-меню та бонусна система | 1–2 тижні |
| Тестування та наповнення | 2 тижні |
| Разом | 17–24 тижні |
При інтеграції з Кіноплан або Vista етапи розкладу та продажу місць частково перекриваються — скорочення на 2–3 тижні. Для невеликого однозального кінотеатру без зовнішніх систем проєкт вкладається в 10–12 тижнів. Вартість розраховується після аналізу вимог: кількість залів, наявність кінотеатральної системи, обсяг інтеграцій.
Готові обговорити ваш проєкт? Зв'яжіться з нами для точного розрахунку вартості та термінів. Замовте консультацію — допоможемо підібрати оптимальне рішення для вашого кінотеатру.







