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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта кинотеатра на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

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

Сайт кинотеатра решает одну задачу — продать билет на сеанс. Постеры, трейлеры, описания фильмов — всё это обслуживает конверсию из просмотра в покупку. Техническая сложность не в контенте (его можно забрать из TMDB автоматически), а в расписании, которое перестраивается каждую неделю, и в схемах залов мультиплекса, где у каждого зала своя конфигурация мест, зон и ценовых категорий.

На 1С-Битрикс проект строится на двух инфоблоках (фильмы и сеансы), модуле sale для продажи, интеграции с TMDB для автозаполнения карточек и связке с кинотеатральной системой управления.

Расписание сеансов и автозаполнение из 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_ID. Агент Битрикс (CAgent::AddAgent) при создании элемента делает GET-запрос к api.themoviedb.org/3/movie/{id}?language=ru-RU и заполняет: описание, жанры, хронометраж, постер, backdrop, актёрский состав. Постер и backdrop скачиваются с image.tmdb.org и сохраняются локально — никакой зависимости от внешнего CDN в рантайме.

Обновление данных — раз в сутки агентом: проверяются изменения рейтингов, новые трейлеры. Кэширование запросов к 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}. Истечение таймера — автоматическое освобождение.

Оформление покупки:

  1. Валидация мест (не проданы, не заблокированы)
  2. Создание заказа в sale: фильм + сеанс + место как позиции корзины
  3. Онлайн-оплата — ЮKassa / CloudPayments / СБП
  4. Генерация электронного билета с QR-кодом
  5. Отправка на 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.

Технические сроки

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

При интеграции с Киноплан или Vista этапы расписания и продажи мест частично перекрываются — сокращение на 2–3 недели. Для небольшого однозального кинотеатра без внешних систем проект укладывается в 10–12 недель. Стоимость рассчитывается после анализа требований: количество залов, наличие кинотеатральной системы, объём интеграций.