Cinema website development using 1C-Bitrix

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Cinema Website Development on 1C-Bitrix

A cinema website solves one task — sell a ticket for a specific session. Everything else (beautiful posters, film descriptions, trailers) serves this goal. The technical complexity lies in the schedule, which updates weekly, and in schemes of several halls with different seat configurations. On 1C-Bitrix this is built from iblock and sale modules with integration of external APIs.

Session Schedule: Data Structure and TMDB

A cinema schedule is a three-dimensional matrix: film × hall × time. Storage is organized in two infoblock modules.

Films infoblock. Film card:

  • PROPERTY_TMDB_ID — identifier in The Movie Database
  • PROPERTY_TITLE_ORIGINAL — original title
  • PROPERTY_GENRES — genres (multiple reference book)
  • PROPERTY_DURATION — runtime in minutes
  • PROPERTY_AGE_RATING — age rating (0+, 6+, 12+, 16+, 18+)
  • PROPERTY_FORMAT — show formats (2D, 3D, IMAX, Dolby Atmos — multiple)
  • PROPERTY_RELEASE_DATE — release date
  • PROPERTY_TRAILER_URL — trailer link (YouTube)
  • PROPERTY_POSTER — poster (file)
  • PROPERTY_BACKDROP — background image for page header

Key point — automatic card population from TMDB API. Manager enters only TMDB_ID, Bitrix agent (run via CAgent::AddAgent) on element creation executes GET request to api.themoviedb.org/3/movie/{id} and populates: description, genres, runtime, poster, backdrop, cast. Poster and backdrop are downloaded from image.tmdb.org and saved locally — external CDN dependency eliminated.

Data update runs daily via agent: rating changes, descriptions, added trailers are checked. TMDB requests are cached in Bitrix\Main\Data\Cache with TTL 86400 seconds.

Sessions infoblock. Each session is a separate element:

Property Type Description
PROPERTY_FILM_ID Link Film from Films
PROPERTY_HALL_ID Link Hall from Halls
PROPERTY_DATETIME Date/time Session start
PROPERTY_FORMAT List 2D / 3D / IMAX
PROPERTY_LANGUAGE List Original / Dubbed / Subtitled
PROPERTY_PRICES JSON Prices by zones: {"zone_a": 12, "zone_b": 10, "zone_c": 8}
PROPERTY_STATUS List On sale / Few seats / Sold out / Cancelled

Weekly schedule loads in batch. Manager fills Excel template (film, hall, date, time, format), uploads via custom admin interface. Parser on PhpSpreadsheet creates infoblock elements, validating each row: does film exist, don't sessions overlap in same hall (checked by runtime + 30 min cleanup).

Schedule display. On homepage — grid "films × time" for today and tomorrow. bitrix:news.list component with grouping by films, inside — session buttons with price and format. Filter by date, genre, format — via AJAX without page reload.

On film page — full schedule for current and next week in table format by days. On hall page — all sessions in that hall.

Ticket Sales: Multiple Halls, Different Schemes, Zone Pricing

Each cinema hall is a separate SVG schema. A multiplex with 5–8 halls means 5–8 different SVG files with different row counts, seat counts, and configurations (standard seats, VIP sofas, wheelchair spaces, love seats).

SVG structure. Seats are grouped by zones via data-zone attribute:

  • zone_a — center rows (optimal view)
  • zone_b — side and rear rows
  • zone_c — front rows (closer to screen)
  • zone_vip — VIP section (enlarged seats, tables)

Price is tied to zone, not individual seat. This simplifies management: instead of setting price for each of 200 seats — 4 zone prices per session. Prices are stored in session's JSON property PROPERTY_PRICES.

Interactive diagram. Technical implementation similar to theatre, but with nuances:

  • Different seat types display with different icons (regular seat, VIP sofa, wheelchair space)
  • Screen renders in SVG as landmark — user understands where they'll sit relative to screen
  • Zone highlighting on hover — entire zone highlights on hover, showing category price
  • Mobile: diagram scales, on tap — zoom to section showing individual seats

Blocking and payment. Selected seats block in Redis for 8 minutes (standard for cinemas — purchase faster than theatre). On order creation:

  1. Seat validation (not sold, not blocked by other)
  2. Order creation in sale with items: film + session + seat
  3. Online payment via ЮKassa / CloudPayments / СБП
  4. Electronic ticket generation with QR code
  5. Email sending and optionally push via Telegram Bot API

QR contains encrypted string with order ID, seat number, and checksum. Terminal at hall entrance scans QR and marks ticket as used. Repeat entry attempt — denied.

Integration with Cinema Management Systems

Most cinema chains work with automated management systems. Website connects for schedule and sales synchronization.

System Protocol Capabilities
Kinoplan REST API Schedule, sales, booking, fiscalization
Vista Cinema SOAP / REST Sessions, halls, prices, seat status, transactions
KSEA (Unified Subscription System) XML-RPC Subscriptions, gift cards, bonuses
Ticketon REST API Sales widget, status webhooks

When integrated with Kinoplan, Bitrix site acts as frontend, sales backend on Kinoplan side. Sync agent runs every 5 minutes: fetches current schedule, seat statuses, new films. On purchase through site, order transfers to Kinoplan API, returns transaction ID for receipt.

For independent cinemas without external system, all sales logic works inside Bitrix. In this case, receipt fiscalization via cash register module — integration with ATOL, OrangeData, or payment provider's cloud register.

Bar Menu with Pre-order to Session

Additional cinema revenue — food and beverage sales. At ticket purchase stage, an "Add to order" step is added:

  • Popcorn (small / medium / large)
  • Drinks (cola, juice, water)
  • Combo sets (popcorn + drink with discount)
  • Nachos, hot dogs, snacks

Bar menu items stored in BarMenu infoblock with prices and photos. On adding to order — additional items in sale cart. After payment, bar receives order via internal webhook: order number, composition, session time. Order is ready on customer arrival.

Stock levels sync with 1C:Trade Management via standard exchange module. If popcorn runs out — position auto-deactivates on site.

Loyalty Card

Cinema loyalty program realized via internal accounts of sale module:

  • Bonus accrual after visit (5–10% of check amount)
  • Bonus deduction on next purchase (up to 50% ticket cost)
  • Birthday — doubled bonuses for week (handler checks UF-field UF_BIRTHDAY)
  • Cumulative levels: Viewer → Movie Fan → Film Critic (thresholds set in HL-block LoyaltyLevels)

Identification by phone number. No physical card needed: on purchase client enters phone, system finds account and shows balance. Personal account login — via SMS code (main module with custom auth handler via messageservice provider).

Technical Timeline

Stage Timeline
Planning and prototype 2 weeks
Design (responsive, hall schemas) 3–4 weeks
Markup 2–3 weeks
Development (infoblock, schedule, TMDB) 3–4 weeks
SVG hall schemas and seat sales 2–3 weeks
Integration (payment, register, Kinoplan) 2–4 weeks
Bar menu and loyalty system 1–2 weeks
Testing and population 2 weeks
Total 17–24 weeks

When integrating with existing cinema system (Kinoplan, Vista), schedule and sales stages partially overlap, shortening total timeline by 2–3 weeks.