כשאנחנו לוקחים פרויקט Bitrix, השאלה הראשונה היא לא "איזו תבנית" אלא "איך לתכנן את מבנה הנתונים כך שהפילטרים לא יצטרכו שכתוב בעוד שנה"?
בלוק מידע אחד שהוגדר לא נכון עם 30 מאפיינים — ו-b_iblock_element_property גדל למיליוני שורות. CIBlockElement::GetList לוקח 4 שניות, והאינדקס הממוקד לא עוזר כי מאפייני קישור לא נמצאים ב-b_catalog_sm_*. לבנות מחדש בסביבת production פירושו לשכתב תבניות, פילטרים וחוקי SEO. יותר זול לתכנן נכון פעם אחת. הניסיון שלנו מראה שארכיטקטורה נכונה חוסכת עד 40% מתקציב התחזוקה. תוצאות נפוצות של ארכיטקטורה שגויה: זמני טעינת עמודים מוגדלים, ירידה בהמרות וחריגות עלויות בשיפורים.
למה בחירת סוג האחסון קובעת את הביצועים
זו לא שאלה מופשטת. היא קובעת אילו רכיבים עובדים out-of-box ואילו צריך לכתוב מאפס. טעות בתכנון יכולה לעלות בחודשים של שכתוב קוד.
בלוקי מידע מאחסנים מאפיינים בטבלת EAV b_iblock_element_property. עבור 5,000 מוצרים עם 10 מאפיינים — 50,000 שורות, MySQL מתמודד. עבור 80,000 מוצרים עם 25 מאפיינים — 2,000,000 שורות, JOINs במהלך סינון לוקחים שניות. אבל בלוקי מידע מספקים מעטפת SEO, עורך ויזואלי ורכיבי קטלוג.
Highload-blocks — טבלה שטוחה, עמודה אחת לכל מאפיין. אינדקסים יעילים, סינון של 200,000 רשומות לוקח 30-80 אלפיות השנייה. אין ירושת מאפייני סעיף, אין מודול SEO מובנה. אידיאלי לנתוני ייחוס (ערים, מותגים).
D7 ORM (Bitrix\Main\ORM\Data\DataManager) — עבור ישויות שלא מתאימות לבלוקי מידע או HL-blocks: הזמנות עם קשרים, לוגים מותאמים אישית, אגרגציות. שליטה מלאה, אבל פאנל הניהול נבנה ידנית.
| קריטריון | בלוקי מידע | Highload-blocks | D7 ORM |
|---|---|---|---|
| מהירות סינון עבור 100K+ פריטים | 1-3 שניות (עם אינדקס ממוקד 50-200 אלפיות השנייה) | 30-80 אלפיות השנייה | תלוי בשאילתה |
| רכיבי קטלוג מובנים | כן | לא | לא |
| מודול SEO | כן | לא | לא |
| קשרים שרירותיים | מוגבל | לפי שדה | מלא |
איך Bitrix משתווה ל-WordPress ול-Laravel
גם WordPress משתמש ב-EAV דרך wp_postmeta, אבל חסרה לו רמת מסחר אלקטרוני מובנית. WooCommerce הוא תוסף. Bitrix מספק את מודול catalog עם הצעות מסחר, סוגי מחירים, ניהול מחסנים וסנכרון 1C דרך CommerceML. עבור חברות שחיות בסביבת 1C:Enterprise, זה גורם מכריע.
Laravel הוא framework, לא CMS. חופש ארכיטקטוני, אבל קטלוג, עגלה, הרשאות גישה וסנכרון 1C נכתבים מאפס. בפרויקט עם תקציב של 4-6 חודשים וצוות של 3, Laravel מוצדק. עבור אתר תאגידי שנדרש תוך חודשיים, Bitrix מהיר יותר. לא טוב יותר — מהיר יותר למשימות טיפוסיות.
ההבדל המרכזי הוא גישת הרכיבים. bitrix:catalog.section הוא חבילה מוכנה של controller + model + caching. הוא נכלל בתבנית, מוגדר דרך $arParams, ומותאם אישית ב-template.php. הלוגיקה העסקית נכנסת ל-result_modifier.php או למודול מותאם אישית ב-local/modules/. התבנית ב-local/templates/. לא בליבה, אף פעם לא בליבה.
איך אנחנו מבטיחים ביצועים לפני ה-commit הראשון
אופטימיזציה אחרי השקה היא יקרה. הנה מה שאנחנו בונים לתוך הארכיטקטורה:
מטמון — שלוש רמות: מטמון רכיבים מנוהל, מטמון משותף (memcached/Redis) ואתר composite. Composite מספק HTML ללא אתחול ליבה — זמן התגובה יורד מ-200 אלפיות השנייה ל-15-30 אלפיות השנייה.
קבצים סטטיים — CDN עבור /upload/, /bitrix/js/, /bitrix/css/. WebP דרך CFile::ResizeImageGet(). טעינה עצלה. העברת סטטיים ל-CDN מפחיתה את עומס השרת ב-40-60%.
מסד נתונים — אינדקסים מורכבים על מאפיינים שמסוננים לעתים קרובות. EXPLAIN על כל שאילתה כבדה. עבור קטלוגים מעל 50,000 מוצרים — אינדקסים ממוקדים (Bitrix\Catalog\Model\SmartFilter), זמן הסינון יורד מ-3 שניות ל-50 אלפיות השנייה.
PHP — OPcache עם JIT על PHP 8.1+, realpath_cache_size=4096K. בדיקה דרך פאנל "ביצועים" → "PHP".
מקרה: האצת קטלוג פי 6
עבור לקוח עם קטלוג של 120,000 מוצרים ו-40 מאפיינים, העברנו את הסינון מבלוקי מידע ל-Highload-blocks עם אינדקסים ממוקדים. זמן טעינת עמוד הקטלוג ירד מ-4.2 שניות ל-0.7 שניות. בנוסף, הפעלנו מטמון composite למשתמשים לא מחוברים — הזמן ל-byte הראשון הפך ל-25 אלפיות השנייה. חיסכון בתחזוקה הגיע ל-30% מהתקציב השנתי.
למידע נוסף על מצב composite ראו תיעוד רשמי.
מה כלול בעבודה
- ניתוח דרישות ותכנון ארכיטקטורת נתונים
- עיצוב ופריסה רספונסיבית
- רכיבים ומודולים מותאמים אישית
- אינטגרציה עם 1C (CommerceML), מערכות תשלום ושירותי משלוחים
- הגדרת מטמון, CDN ומצב composite
- בדיקות (פונקציונליות, עומס, אבטחה)
- תיעוד והדרכת מנהלים
- תמיכה באחריות ל-12 חודשים
שלבים ולוחות זמנים
- ניתוח ועיצוב (1-2 שבועות) — מפרט בלוקי מידע, אינטגרציות, אבות טיפוס
- עיצוב (1-3 שבועות) — UI/UX, מערכת עיצוב
- פיתוח (3-8 שבועות) — ספרינטים של שבועיים, הדגמה בסביבת staging
- בדיקות (1-2 שבועות) — PageSpeed, Lighthouse, WebPageTest
- השקה (3-5 ימים) — פריסה, ניטור, ייצוב
| היקף הפרויקט | לוח זמנים |
|---|---|
| אתר תאגידי, 10-20 עמודים | 6-10 שבועות |
| קטלוג עם סינון, עד 10,000 מוצרים | 8-14 שבועות |
| חנות מקוונת עם 1C | 12-20 שבועות |
| פורטל B2B עם אזור אישי | 14-24 שבועות |
לוחות הזמנים מותאמים לאחר ניתוח הדרישות. המחיר מחושב באופן אישי — יש יותר מדי משתנים למספרים קבועים.
טעויות נפוצות בפרויקטי Bitrix
- לוגיקה עסקית ב-
template.php. הנחות, הרשאות — העבירו ל-result_modifier.phpאו למחלקת שירות במודול. - שאילתות SQL ישירות (
$DB->Query()) במקום D7 ORM. מאבדים מטמון, בטיחות טיפוסים והגנה מפני הזרקות. init.phpענק אחד עם 2000 שורות. העבירו למודול עם טעינה אוטומטית.- מטמון ללא תגיות. השתמשו ב-
SetResultCacheKeys()וב-CIBlock::clearIblockTagCache(). - עדכון הליבה ללא סביבת staging. תמיד staging, ואז production.
למהנדסים שלנו יש הסמכת 1C-Bitrix ו-10+ שנות ניסיון מסחרי. אנחנו מבטיחים איכות ועמידה בלוחות זמנים.
הזמינו אתר Bitrix — קבלו ייעוץ והערכת פרויקט תוך יומיים. צרו קשר כדי לדון בפרטים.

