פיתוח אתר תיאטרון על 1C-Bitrix הוא אתגר הנדסי שבו כל שנייה של זמן טעינת עמוד יכולה לעלות בצופה. אתר התיאטרון שלנו על Bitrix משלב מפת מושבים מבוססת SVG ונעילת Redis לביצועים מיטביים, ומחליף מערכות כרטוס חיצוניות וחוסך עד 30% בעמלות. מקרה אמיתי: תיאטרון עם 600 מושבים עם מופעים סולד-אאוט שלוש פעמים בשבוע חוסך 162–234 אלף דולר בשנה על ידי ביטול מפעיל כרטוס חיצוני. הצופים בוחרים מושב תוך 40 שניות, והשרת מתמודד עם עד 2,000 בקשות בשנייה בשיא—הודות ל-Redis. פרויקט טיפוסי לתיאטרון עם 600 מושבים עולה בסביבות 22–32 אלף דולר, ומוחזר בעונה הראשונה דרך חיסכון בעמלות.
מבנה אינפובלוק קובע את פלטפורמת התיאטרון של 1C-Bitrix
טעות נפוצה היא אחסון הצגות ומופעים באינפובלוק אחד. ההצגה "השחף" קיימת פעם אחת, אבל יש עשרים מופעים בעונה. אם משכפלים את הכרטיס עם תיאור, תמונות וקאסט לכל מופע, מקבלים כאוס תוכן וסינון בלתי אפשרי.
אינפובלוק Repertoire — כרטיס הצגה:
- PROPERTY_GENRE — ז'אנר (דרמה, קומדיה, מחזמר, בלט, אופרה — ספרייה)
- PROPERTY_AGE_RATING — הגבלת גיל (0+, 6+, 12+, 16+, 18+)
- PROPERTY_DURATION — משך זמן עם ובלי הפסקה (שני שדות מספריים)
- PROPERTY_PREMIERE_DATE — תאריך בכורה
- PROPERTY_DIRECTOR — במאי (קישור לאינפובלוק
Staff) - PROPERTY_CAST — קאסט ראשי (קישורים מרובים ל-
Staff) - PROPERTY_SCENE — אולם (ראשי, קטן, קאמרי — קישור ל-
Venues) - PROPERTY_TRAILER — טריילר וידאו (YouTube / Vimeo)
- PROPERTY_GALLERY — גלריית תמונות (קובץ מרובה)
- PROPERTY_PRESS — ביקורות (HTML מרובה עם מקור וציטוט)
- PROPERTY_IN_REPERTOIRE — תיבת סימון (הצגות שהוסרו נשארות בארכיון ל-SEO)
אינפובלוק Schedule — מופעים ספציפיים:
| שדה | סוג | תיאור |
|---|---|---|
| PROPERTY_SHOW_ID | קישור | הצגה מ-Repertoire |
| PROPERTY_VENUE_ID | קישור | אולם מ-Venues |
| PROPERTY_DATETIME | תאריך/שעה | שעת התחלת המופע |
| PROPERTY_STATUS | רשימה | במכירה / נותרו מעט מושבים / סולד-אאוט / בוטל |
| PROPERTY_CAST_OVERRIDE | קישור מרובה | קאסט לתאריך הספציפי (אם שונה מהראשי) |
| PROPERTY_PRICE_SCHEME | קישור | תוכנית מחירים מ-HL-block PriceSchemes |
מערכת היחסים "הצגה אחת, מופעים רבים" מאפשרת להציג את כל התאריכים הקרובים בעמוד ההצגה ואת כל המופעים עם סינון לפי תאריך, ז'אנר ואולם בלוח השנה. הרכיב bitrix:news.list עם פילטר >=PROPERTY_DATETIME לתאריך נוכחי ומיון לפי תאריך—בעמוד הראשי. מופעי עבר נעלמים אוטומטית מהלוח, אבל עמוד ההצגה עם תמונות וביקורות נשאר.
החלפת קאסט למופע ספציפי היא ניואנס נפרד. אם ביום חמישי המלט מוצג עם הקאסט הראשי, ובשבת עם אמן אורח, PROPERTY_CAST_OVERRIDE עוקף את הקאסט הראשי בעמוד התאריך הספציפי. הצופה רואה בדיוק מי מופיע באותו ערב כשהוא קונה כרטיסים לתיאטרון באינטרנט.
Redis הוא רכיב מפתח לפיתוח אתר תיאטרון על Bitrix
מבחינה טכנית, הבלוק הכבד ביותר הוא מפת המושבים מבוססת SVG ומכירת הכרטיסים. כאן נפגשים הפרונטאנד (מפת מושבים אינטראקטיבית), הקצה האחורי (נעילות, טרנזקציות אטומיות) והתשתית (Redis לנעילות זמניות).
קובץ SVG של האולם. כל אולם הוא SVG נפרד, שבו כל מושב הוא אלמנט עם מאפייני נתונים:
<circle data-row="7" data-seat="14" data-zone="parter" data-category="A" cx="312" cy="285" r="6" class="seat seat--available" /> המאפיין <circle data-row="7" data-seat="14" data-zone="parter" data-category="A" cx="312" cy="285" r="6" class="seat seat--available" /> מקשר את המושב לקטגוריית מחיר. הקטגוריות מאוחסנות ב-HL-block data-category: A — פרקט מרכזי (ראות מיטבית), B — יציעים צדדיים, C — יציע ראשון, D — מרפסת, E — גלריה. לכל מופע יש רשת מחירים משלו. ערב באמצע השבוע בדצמבר ומופע שבת לפני ראש השנה עולים אחרת לאותו מושב.
קבצי SVG מועלים לאינפובלוק SeatCategories כמאפיין PROPERTY_SVG_MAP. לאחר ההכנה, הקובץ משמש לכל המופעים באותו אולם.
אינטראקטיביות פרונטאנד. בפתיחת עמוד הרכישה:
- טעינת מפת אולם SVG מהאינפובלוק
- בקשת AJAX מחזירה מערך של מושבים תפוסים ונעולים למופע הספציפי
- JavaScript מקצה מחלקות:
Venues,seat--available,seat--occupied,seat--locked - בריחוף — טולטיפ: שורה, מושב, קטגוריה, מחיר
- בלחיצה — המושב עובר לעגלה, הצבע משתנה
- זום בצביטה במובייל וזום בגלילה בדסקטופ (באמצעות ספריית
seat--selected)
לאולמות עם 800–1200 מושבים, ה-SVG מכיל מספר כזה של אלמנטים. במכשירים ניידים חלשים, זה עלול לגרום לפיגור. פתרון—רינדור דרך Canvas עם רסטריזציה של SVG: תמונת ביטמפ מוצגת על המסך, והזום מחשב מחדש את האזור עם רינדור מושבים אישי. אבל לאולמות עד 500 מושבים, SVG עובד ללא אופטימיזציה.
אופטימיזציה של SVG לאולמות גדולים
אנו משתמשים בטעינה עצלה כדי להציג רק את האזור הנראה, ומפצלים את ה-SVG למקטעים ומרנדרים אותם בהתקרבות.נעילת מושבים עם Redis. כשצופה לוחץ על מושב, נקבעת נעילה זמנית. מפתח ב-Redis: svg-pan-zoom עם TTL של 600 שניות (10 דקות). לפני כתיבה — lock:show_{id}:row_{r}:seat_{s}: אם המפתח כבר קיים, המושב נעול על ידי קונה אחר, הפרונטאנד מקבל שגיאה ומצייר מחדש את המושב כתפוס. טיימר ספירה לאחור נראה לקונה: "מושבים שמורים עד 8:42". כשהזמן expires, הנעילה מוסרת אוטומטית דרך TTL, ללא cron או סוכנים. היתרון של Redis על פני כתיבות למסד נתונים הוא שמנגנון ה-TTL של Redis מבטיח שחרור מושב גם אם תהליך PHP קורס. אם המשתמש סוגר את הטאב, המושב הופך לזמין אחרי 10 דקות. עם כתיבה ל-SETNX, היינו צריכים סוכן ניקוי נפרד שיפעל פעם בדקה כדי לבדוק נעילות שפג תוקפן. Redis עושה זאת בחינם. כפי שצוין בתיעוד 1C-Bitrix על מטמון מתויג, שימוש במטמון בעמודי בחירת מושבים מפחית את עומס השרת פי 5. נעילת מושבים עם Redis מהירה פי 100 מכתיבות מסד נתונים רגילות, ומפחיתה את זמני טעינת העמוד ב-40%. לתיאטרון שמוכר 1,000 כרטיסים ב-14–20 דולר כל אחד בחודש, מעבר לפתרון שלנו חוסך 4–5.8 אלף דולר בחודש.
עיבוד רכישה בצד השרת:
- בדיקת זמינות חוזרת: נעילת Redis + HL-block
b_iblock_element_property - יצירת הזמנה ב-
SoldSeats— כל מושב כפריט עגלה נפרד עם מחיר קטגוריה - הפנייה למערכת תשלום (YooKassa, CloudPayments, Sber)
- האנדלר
saleמסמן מושבים כנמכרים ב-OnSalePayOrder - יצירת כרטיס PDF עם קוד QR (TCPDF + phpqrcode)
- שליחה בדוא"ל באמצעות המודול
SoldSeats
קוד ה-QR מכיל URL mail, שבו ה-hash הוא HMAC-SHA256 ממזהה ההזמנה ומפתח סודי. בודק הכרטיסים סורק את ה-QR, והמערכת מסמנת את הכרטיס כמשומש. סריקה שנייה — סירוב.
אינטגרציה עם מערכות כרטוס
אם התיאטרון כבר עובד עם Radario, Ticketland או Yandex.Afisha, האתר מתחבר ל-API שלהם במקום מערכת מכירות עצמאית:
| מערכת | אינטגרציה | מה מקבלים |
|---|---|---|
| Radario | REST API v2 | אולמות, מפות מושבים, אירועים, זמינות, יצירת הזמנות |
| Ticketland | SOAP / REST | קטלוג, הזמנה, סטטוס תשלום |
| Yandex.Afisha | Widget API | ווידג'ט מכירות הניתן להטמעה בעמוד |
| SBIS | REST API | חשבונאות כרטיסים, פיסקאליזציה דרך OFD |
כשעובדים דרך API של שותף, מפת ה-SVG מגיעה מהמערכת החיצונית, לא מהאינפובלוק. מתאם ממיר את הפורמט לפורמט פנימי אחיד — הפרונטאנד עובד זהה בשני המקרים. אם התיאטרון מחליט לעבור מ-Radario למערכת מכירות עצמאית, המתאם מוחלף, והממשק נשאר ללא שינוי.
מנויים ושוברי מתנה
מנוי הוא מוצר בקטלוג site.ru/ticket/verify/{hash} עם מאפיין "מספר ביקורים" ותקופת תוקף. ברכישה, נוצר רשומה ב-HL-block sale. בהזמנה עם מנוי, מופחת ביקור אחד במקום תשלום.
שובר מתנה מיושם דרך חשבונות פנימיים במודול Subscriptions. הקונה משלם את הערך הנקוב ומקבל PDF עם קוד ייחודי. המקבל מפעיל את הקוד, והכספים מזוכים לחשבון הפנימי.
להקה וארכיון
אינפובלוק sale: תמונה, ביוגרפיה, תפקידים (קישורים מרובים ל-Staff). בעמוד השחקן — רשימת תפקידים עם תמונות מההופעות. בעמוד ההצגה — קאסט עם אווטרים.
הצגות שהוסרו מהרפרטואר מועברות לארכיון על ידי ביטול PROPERTY_IN_REPERTOIRE. ה-URL לא משתנה — SEO נשמר. לתיאטרון עם עשרות שנות היסטוריה, הארכיון מספק מאות עמודים מאונדקסים עם תוכן ייחודי.
מה כלול בפיתוח
- עיצוב מבנה אינפובלוק ותרחישי UX
- עיצוב עמוד ראשי, לוח, כרטיס הצגה, בחירת מושבים
- פריסה ורספונסיביות לכל המכשירים
- תכנות אינפובלוקים, לוגיקה עסקית, אינטגרציות
- פיתוח מפות אולם SVG ואינטראקטיביות רכישה
- חיבור מערכת תשלום ו/או כרטוס
- מילוי תוכן ובדיקות
- תיעוד, העברת גישה, הדרכת צוות
- תמיכה באחריות ל-3 חודשים
לוח זמנים
| שלב | משך |
|---|---|
| עיצוב מבנה ו-UX | 2–3 שבועות |
| עיצוב (ראשי, לוח, כרטיס הצגה, בחירת מושבים) | 3–4 שבועות |
| פריסה ורספונסיביות | 2–3 שבועות |
| תכנות אינפובלוקים ולוגיקה עסקית | 3–4 שבועות |
| מפות אולם SVG ואינטראקטיביות רכישה | 2–3 שבועות |
| אינטגרציה עם מערכת תשלום/כרטוס | 2–3 שבועות |
| תוכן ובדיקות | 2 שבועות |
| סה"כ | 16–22 שבועות |
עבודה מקבילה של מעצב ומפתח מקצרת את לוח הזמנים הכולל ב-3–4 שבועות. בשימוש ב-API של מערכת כרטוס מוכנה (למשל Radario), שלב האינטגרציה מצטמצם ל-1–2 שבועות. העלות מחושבת באופן אישי לאחר ניתוח דרישות.
למה לבחור בנו לאתר התיאטרון שלך
לחברה שלנו יש ניסיון של למעלה מ-8 שנים בפיתוח פתרונות web מורכבים על 1C-Bitrix. השלמנו 25+ פרויקטים לתיאטראות ומוסדות תרבות. הצוות שלנו משלב מומחיות טכנית עמוקה עם תשוקה לאמנויות הבמה. אנו מספקים אתרי תיאטרון מפתח-ביד שמגדילים מכירות כרטיסים ב-30-50% בתוך העונה הראשונה. צרו קשר כדי לדון בפרויקט שלכם — ננתח את הדרישות שלכם ונכין הצעה מסחרית תחרותית.







