לאתר קולנוע יש תפקיד אחד — למכור כרטיסים להקרנות. פוסטרים, טריילרים, תיאורים — כולם משרתים את ההמרה מגלישה לרכישה. האתגר הטכני אינו התוכן (אפשר לשלוף אותו אוטומטית מ-TMDB), אלא לוח ההקרנות, שמתחלף מדי שבוע, ומפות הישיבה של המתחם, שבהן לכל אולם יש תצורת מושבים, אזורים וקטגוריות מחיר משלו. אנו בונים אתרי קולנוע על 1C-Bitrix שמתמודדים עם משימות אלה ללא מעורבות מתמדת של מפתחים.
בפלטפורמת Bitrix, הפרויקט מתבסס על שני בלוקי מידע (סרטים והקרנות), מודול המכירה למכירת כרטיסים, אינטגרציה עם The Movie Database למילוי אוטומטי של כרטיסי סרטים, וחיבור למערכת ניהול הקולנוע. עלות הפרויקט מחושבת באופן פרטני.
שימוש בשני בלוקי מידע לפיתוח אתר קולנוע על 1C-Bitrix
לוח הקרנות של קולנוע הוא מטריצה תלת-ממדית: סרט × אולם × שעה. ניסיון לדחוס הכל לבלוק מידע אחד מסתיים בבלגן כבר בחודש השני לפעילות. שני בלוקי מידע — הפתרון היחיד שעובד.
בלוק מידע סרטים — כרטיס סרט:
- 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. סוכן Bitrix (CAgent::AddAgent) בעת יצירת אלמנט מבצע בקשת GET אל api.themoviedb.org/3/movie/{id}?language=ru-RU וממלא: תיאור, ז'אנרים, משך, פוסטר, תמונת רקע, שחקנים. הפוסטר ותמונת הרקע מורדים מ-image.tmdb.org ונשמרים מקומית — ללא תלות ב-CDN חיצוני בזמן ריצה. תיעוד בלוקי מידע v2.0 מספק אחסון בעל ביצועים גבוהים לנתונים לא מובנים.
עדכון נתונים — פעם ביום על ידי סוכן: בדיקת שינויים בדירוג, טריילרים חדשים. שאילתות ל-TMDB נשמרות במטמון דרך Bitrix\Main\Data\Cache עם TTL של 86400 שניות. מגבלת ה-API של TMDB היא 40 בקשות לכל 10 שניות במסלול החינמי. עבור קולנוע עם 15–30 סרטים בהקרנה, זה די והותר.
בלוק מידע הקרנות — כל הקרנה כאלמנט:
| מאפיין | סוג | תיאור |
|---|---|---|
| PROPERTY_FILM_ID | קישור | סרט מתוך סרטים |
| PROPERTY_HALL_ID | קישור | אולם מתוך אולמות |
| 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 יוצר אלמנטים של הקרנות, תוך אימות כל שורה: האם הסרט קיים במסד הנתונים? האם ההקרנה חופפת להקרנה אחרת באותו אולם? בדיקת חפיפה — משך הסרט + 30 דקות לניקיון ופרסומות. אם "אווטאר 2" נמשך 192 דקות וההקרנה הבאה באותו אולם נקבעה 200 דקות לאחר מכן, האימות מחזיר שגיאה.
תצוגה באתר. בעמוד הראשי — רשת של "סרטים × שעות" להיום ולמחר. רכיב bitrix:news.list עם קיבוץ לפי סרט, בתוכו — כפתורים להקרנות עם מחיר ופורמט. סינון לפי תאריך, ז'אנר, פורמט — AJAX ללא רענון. בעמוד הסרט — לוח מלא לשבוע הנוכחי והבא, טבלה לפי ימים.
בחירת מושבים אינטראקטיבית
מתחם עם 5–8 אולמות פירושו 5–8 קבצי SVG שונים. אולם IMAX עם 350 מושבים ואולם אינטימי עם 80 מושבים הם בעלי גאומטריה שונה לחלוטין. מושבים רגילים, ספות VIP, מושבי זוגות, מקומות לכיסאות גלגלים — כל סוג מצויר עם אייקון משלו.
תמחור לפי אזורים. המחיר מקושר לאזור, לא למושב בודד. במקום להגדיר מחיר לכל אחד מ-300 המושבים — 4–5 מחירי אזור לכל הקרנה. מחירי האזורים נעים בין 3–7 דולר למושב.
-
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}. פקיעת טיימר — שחרור אוטומטי. בפרויקט למתחם עם 6 אולמות, צמצמנו את זמן רכישת הכרטיס הממוצע מ-45 שניות ל-12 שניות על ידי שמירת סכמות SVG במטמון ואופטימיזציה של בדיקות נעילת Redis.
תהליך הרכישה:
- אימות מושבים (לא נמכרו, לא נעולים)
- יצירת הזמנה במודול המכירה: סרט + הקרנה + מושב כפריטי עגלה
- תשלום מקוון — YooKassa / CloudPayments / SBP
- הפקת כרטיס אלקטרוני עם קוד QR
- שליחה בדוא"ל ואופציונלית Push דרך Telegram Bot API
ה-QR מכיל מחרוזת מוצפנת: מספר הזמנה, מספר מושב, checksum מסוג HMAC-SHA256. המסוף בכניסה לאולם סורק את ה-QR ומסמן את הכרטיס. סריקה שנייה — נדחית. עבור רשתות קולנוע, ה-QR חייב להיות ייחודי בכל הרשת, לא רק בקולנוע אחד — המספר הסידורי כולל קוד מתחם.
כיצד מסונכרן לוח ההקרנות עם מערכות הקולנוע?
רשתות קולנוע עובדות עם מערכות אוטומטיות. האתר מתחבר אליהן לסנכרון לוח ומכירות:
| מערכת | פרוטוקול | נתונים מסופקים |
|---|---|---|
| Kinoplan | REST API | לוח, מכירות, הזמנות, פיסקאליזציה, אולמות ותרשימים |
| Vista Cinema | SOAP / REST | הקרנות, מחירים, סטטוס מושבים, עסקאות |
| KSEA | XML-RPC | מנויים, כרטיסי מתנה, בונוסים |
| Ticketon | REST API | וידג'ט מכירות, webhooks לסטטוס |
בעבודה עם Kinoplan, אתר Bitrix משמש כחזית, בעוד שצד המכירות האחורי נמצא אצל Kinoplan. סוכן סנכרון רץ כל 5 דקות: שולף לוח, סטטוסי מושבים, סרטים חדשים. כאשר מתבצעת רכישה דרך האתר, ההזמנה נשלחת ל-API של Kinoplan, ומתקבל מזהה עסקה לקבלה הפיסקלית.
עבור קולנוע עצמאי ללא מערכת חיצונית, כל הלוגיקה מתנהלת בתוך Bitrix. פיסקאליזציה של הקבלה — דרך מודול הקופה הרושמת המקוונת: אינטגרציה עם Atol, OrangeData, או קופה עננית של ספק התשלומים (YooKassa יכולה לשלוח קבלות ל-OFD בעצמה).
תפריט בר עם הזמנה מראש להקרנה
בשלב רכישת הכרטיס מופיע שלב "הוסף להזמנה": פופקורן (שלושה גדלים), משקאות, חבילות משולבות, חטיפים. הפריטים נשמרים בבלוק המידע BarMenu עם מחירים ותמונות. בעת הוספה — פריטים נוספים בעגלת המכירה.
לאחר התשלום, הבר מקבל את ההזמנה דרך webhook פנימי: הרכב, מספר הזמנה, שעת הקרנה. עד שהצופה מגיע, ההזמנה מוכנה. יתרות המלאי מסונכרנות עם 1C:Trade Management דרך מודול ההחלפה הסטנדרטי — אם הפופקורן נגמר, הפריט מושבת באתר.
חבילות משולבות מיושמות באמצעות כללי עגלת מכירה: "פופקורן גדול + קולה גדולה = 15% הנחה." המנהל יוצר חבילה בבונה ההנחות החזותי ללא מעורבות מפתחים.
כיצד פועלת תוכנית הנאמנות?
מערכת בונוסים — דרך חשבונות פנימיים של מודול המכירה:
- צבירת 5–10% מסכום הקבלה לאחר ביקור
- ניצול עד 50% מעלות הכרטיס הבא
- יום הולדת — בונוסים כפולים במשך שבוע (המטפל בודק
UF_BIRTHDAY) - דרגות מצטברות: צופה → קולנוען → מבקר (ספים בבלוק HL LoyaltyLevels)
הצג דרגות נאמנות
- צופה: 0-500 נקודות - קולנוען: 501-2000 נקודות - מבקר: 2001+ נקודותזיהוי — לפי מספר טלפון. התחברות לחשבון אישי באמצעות קוד SMS: מודול ראשי עם מטפל מותאם דרך messageservice.
תוצרי הפרויקט
- תיעוד פרויקט: ארכיטקטורת בלוקי מידע, מפות ישיבה, תיאורי אינטגרציה
- קוד מקור של האתר על 1C-Bitrix עם הערות (מאגר Git)
- הוראות ניהול ותפעול תוכן
- הדרכת מנהלים בניהול לוח ומכירות
- תמיכה טכנית למשך 3 חודשים לאחר ההשקה
פיתוח אתר הקולנוע שלנו על 1C-Bitrix כולל מכירת כרטיסים מקוונת עם תמחור לפי אזורים ואינטגרציית TMDB לנתוני סרטים אוטומטיים. לצוות מפתחי ה-Bitrix שלנו יש ניסיון של למעלה מ-5 שנים וביצע יותר מ-20 פרויקטי קולנוע. אנו מבטיחים תאימות לעדכוני Bitrix ומספקים 3 חודשי תמיכה חינם.
לוח זמנים טכני
| שלב | משך |
|---|---|
| עיצוב ואב-טיפוס | שבועיים |
| עיצוב (רספונסיבי, מפות ישיבה) | 3–4 שבועות |
| בניית עמודים | 2–3 שבועות |
| פיתוח (בלוקי מידע, לוח, TMDB) | 3–4 שבועות |
| מפות ישיבה SVG ומכירת מושבים | 2–3 שבועות |
| אינטגרציה (מערכת תשלומים, קופה רושמת מקוונת, Kinoplan) | 2–4 שבועות |
| תפריט בר ומערכת בונוסים | 1–2 שבועות |
| בדיקות ומילוי תוכן | שבועיים |
| סה"כ | 17–24 שבועות |
בעת אינטגרציה עם Kinoplan או Vista, שלבי לוח ההקרנות ומכירת המושבים חופפים חלקית — מה שמקצר את לוח הזמנים ב-2–3 שבועות. עבור קולנוע קטן עם מסך אחד ללא מערכות חיצוניות, הפרויקט מסתיים ב-10–12 שבועות. העלות מחושבת לאחר ניתוח דרישות: מספר אולמות, קיום מערכת קולנוע, היקף אינטגרציה.
צרו קשר לייעוץ. נעזור לכם לבחור את הפתרון האופטימלי לקולנוע שלכם.

