פיתוח אתר מאפייה על 1C-Bitrix: קטלוג, קונפיגורטור ומשלוחים
אתר מאפייה על 1C-Bitrix עומד בפני שתי משימות שונות מהותית. הראשונה היא למכור לחם ומאפים עם משלוח או איסוף בזמן שנבחר. השנייה היא לאפשר ללקוח להרכיב עוגה מותאמת אישית ממרכיבים, לראות את המחיר ולקבוע תאריך מוכנות. אלו תרחישים שונים עם ארכיטקטורות שונות: קטלוג מסחרי סטנדרטי עם מודול sale עבור הראשונה, וקונפיגורטור מותאם אישית הבנוי על Highload-בלוקים עבור השנייה. ערבוב ביניהם בממשק אחד הוא טעות שמובילה לחוויית משתמש מבלבלת ולבעיות עומס. לכן אנו מפרידים את הלוגיקה ובונים כל מודול באופן עצמאי. כפי שצוין בשיטות העבודה המומלצות בתעשייה, קונפיגורטורים מותאמים אישית מעלים משמעותית את שיעורי ההמרה.
הקונפיגורטור הוא האלמנט הטכני המורכב ביותר והנקודה המרכזית שבה מאפייה מבדלת את עצמה באינטרנט. קונפיגורטור מותאם אישית על HL-בלוקים רץ פי שלושה מהר יותר מפתרונות מוכנים ממודולים של צד שלישי, והגמישות מאפשרת התאמה לכל תפריט. עלות הפיתוח הממוצעת של הקונפיגורטור נעה בין 150,000 ל-$2.7k–3.9k, ועלות אינטגרציית POS נעה בין $450–650. ההשקעה מחזירה את עצמה דרך הגדלת הזמנות מקוונות והפחתת עיבוד ידני. לדוגמה, מאפייה טיפוסית חוסכת $270–390 בחודש על ידי מניעת ביטולי הזמנות.
קטלוג מוצרי המאפייה
המבחר מחולק למקטעי בלוק מידע: לחם, מאפים, בצק עלים, קונדיטוריה ותפריט עונתי. כל פריט הוא פריט קטלוג מסחרי.
מאפייני פריט:
- הרכב — רשימה מלאה של מרכיבים (עמידה ב-TR CU 022/2011 בנושא תיוג מזון)
- אלרגנים — רשימת הפניה מרובה: גלוטן, חלב, ביצים, אגוזים, סויה. מוצגים כאייקונים עם טולטיפים
- ערך תזונתי (KBJU) — ארבעה שדות מספריים: קלוריות, חלבון, שומן, פחמימות ל-100 גרם
- משקל — בגרמים
- חיי מדף — מחרוזת: "24 שעות", "72 שעות", "5 ימים"
- זמינות — רשימה: במלאי / להזמנה / אזל מהמלאי. מתעדכן דרך אינטגרציה עם מערכת הנהלת חשבונות או ידנית
עבור מוצרים עם וריאציות (לחם פרוס לעומת שלם, קרואסון עם מילויים שונים) — SKU. לכל SKU יש מחיר, משקל ותמונה משלו.
סינון: לפי מקטע, אלרגנים (למשל, אי-הכללת גלוטן), תכולת קלוריות. האינדקס הפאקטי CIBlockSmartFilter מספק סינון מיידי אפילו במכשירים ניידים. עבור מאפייה עם 50–150 פריטים, זה יותר ממספיק.
כיצד פועל קונפיגורטור העוגות
הלקוח בונה את העוגה צעד אחר צעד: בוחר צורה, בסיס, מילוי, קרם, קישוט — ורואה ויזואליזציה עם המחיר הסופי. לאחר מכן מבצע הזמנה עם תאריך מוכנות רצוי. כל הלוגיקה מבוססת על שלושה Highload-בלוקים.
HL-בלוק "רכיבי עוגה"
| שדה | סוג | ערכי דוגמה |
|---|---|---|
| UF_TYPE | רשימה | בסיס / מילוי / קרם / קישוט |
| UF_NAME | מחרוזת | ספוג וניל, גנאש שוקולד, פונדנט |
| UF_PRICE_PER_KG | מספר | מחיר לק"ג (לבסיס, מילוי, קרם) |
| UF_PRICE_FIXED | מספר | מחיר קבוע (לקישוט) |
| UF_IMAGE | קובץ | תצוגה מקדימה בממשק |
| UF_LAYER_IMAGE | קובץ | תמונת שכבה לויזואליזציה (רקע שקוף) |
| UF_COMPATIBLE | מחרוזת | JSON של מזהים תואמים — לא כל הקרמים מתאימים לכל הבסיסים |
| UF_ALLERGENS | רשימה (מרובה) | אלרגנים של הרכיב |
HL-בלוק "צורות וגדלים"
| שדה | סוג | דוגמה |
|---|---|---|
| UF_SHAPE | רשימה | עגול / מרובע / לב |
| UF_TIERS | מספר שלם | קומות: 1, 2, 3 |
| UF_WEIGHT_MIN | מספר | משקל מינימלי בק"ג |
| UF_WEIGHT_MAX | מספר | משקל מקסימלי |
| UF_WEIGHT_STEP | מספר | גודל צעד (0.5 ק"ג) |
| UF_MULTIPLIER | מספר | מקדם: שתי קומות = 1.3 |
HL-בלוק "הזמנות עוגות"
| שדה | סוג | מטרה |
|---|---|---|
| UF_CONFIG_JSON | טקסט | תצורה מלאה ב-JSON |
| UF_WEIGHT | מספר | משקל סופי |
| UF_PRICE | מספר | מחיר מחושב |
| UF_ORDER_ID | מספר שלם | קישור להזמנת מכירה |
| UF_DESIRED_DATE | תאריך | תאריך מוכנות רצוי |
| UF_STATUS | רשימה | חדשה / אושרה / בייצור / מוכנה / נמסרה |
| UF_COMMENT | טקסט | כיתוב על העוגה, משאלות |
ממשק שלב אחר שלב
-
צורה וגודל. בחירת צורה (עגול, מרובע, לב), מספר קומות, משקל באמצעות סליידר. עבור רב-קומות, חלוקה אוטומטית: קומה תחתונה 60%, עליונה 40%.
-
בסיס. שכבות ספוג לכל קומה בנפרד. כרטיסים עם תמונה, שם ואלרגנים. הבחירה מעדכנת את הוויזואליזציה — השכבה משנה מרקם.
-
מילוי. רק אפשרויות תואמות לבסיס הנבחר (סינון לפי
UF_COMPATIBLE). גנאש שוקולד מתאים לספוג וברוניז, אך לא לעוגות דבש — ה-API מחזיר רק צירופים תקפים. -
קרם. בדומה למילוי, עם בדיקת תאימות.
-
קישוט. בחירה מרובה: פונדנט, פירות יער, קישוט שוקולד, הדפס אכיל, פרחים טריים. לכל אחד מחיר קבוע. כיתוב על העוגה — שדה טקסט עד 50 תווים, מוסיף סכום קבוע.
-
סיכום. ויזואליזציה (רינדור שכבות של
UF_LAYER_IMAGEבאמצעות CSSposition: absolute), הרכב מלא, אלרגנים משולבים של כל הרכיבים, מידע תזונתי, מחיר.
נוסחת חישוב מחיר
Цена = (Σ цена_за_кг × вес) × коэффициент_ярусности + Σ декор + наценка_срочности תוספת דחיפות: פחות מ-48 שעות עד המוכנות — +30%. פחות מ-24 שעות — ההזמנה לא זמינה (זמן ייצור מינימלי). אימות של Цена = (Σ цена_за_кг × вес) × коэффициент_ярусности + Σ декор + наценка_срочности בשרת תוך התחשבות בימי המנוחה של המאפייה.
החישוב מתבצע בצד השרת באמצעות בקר AJAX. ה-JS בצד הלקוח מציג סכום ביניים למשוב, אך המחיר הסופי תמיד נקבע בשרת. זה מונע מניפולציית מחירים דרך DevTools.
לאחר האישור, התצורה נשמרת ב-HL-בלוק, נוצרת הזמנה ב-UF_DESIRED_DATE עם סוג משלם מיוחד. המנהל מקבל הודעה, מאשר אותה, והלקוח מקבל קישור תשלום.
מדוע אינטגרציית POS חשובה
מאפייה שמוכרת גם בחנות וגם באינטרנט חייבת לסנכרן מלאי. אחרת, לחם של בוקר שנמכר בחנות עד 10:00 עדיין יוצג כ"במלאי" באתר עד הערב. זה מוביל לחוסר שביעות רצון של לקוחות ולהחזרות נוספות.
אינטגרציה עם POS (iiko, r_keeper, Poster, 1C:Retail) דרך REST API או החלפת קבצים. סוכן סנכרון רץ כל 15–30 דקות: מביא מלאי, מעדכן את מאפיין ה"זמינות" בבלוק המידע. כשהמלאי מגיע לאפס, המוצר מושבת. כשמגיעה אצווה חדשה, הוא מופעל מחדש. עבור 1C:Retail, אנו משתמשים במודול ההחלפה הסטנדרטי של Bitrix (sale). עבור iiko ו-Poster — מחבר מותאם אישית: בקשת GET ל-API → מיפוי מאמרים → עדכון דרך sale.export.1c.
הזמנת מאפים מקוונת עם משבצות זמן
עגלת CIBlockElement::SetPropertyValuesEx() סטנדרטית: בחירת מוצרים, תשלום עם משלוח או איסוף, תשלום. הטוויסט: משבצות זמן. לחם טרי לא יכול לחכות כל היום עם שליח.
שירות המשלוחים מוגדר עם מרווחים: 08:00–10:00, 10:00–12:00, 12:00–14:00. הלקוח בוחר תאריך ומשבצת נוחה. מרווח מינימלי הוא שעתיים. הזמנות ל"היום" זמינות אם נותרו לפחות 3 שעות לפני המשבצת הקרובה.
סכום הזמנה מינימלי למשלוח חינם — מוגדר במאפייני שירות המשלוחים. מתחת לסף, המשלוח בתשלום; העלות מחושבת על ידי מטפל sale.
לאיסוף — בחירת מיקום וזמן. אם יש מספר נקודות איסוף, כל אחת היא פריט בבלוק המידע sale.delivery עם כתובת, קואורדינטות, שעות פעילות וקישור למחסן ב-Locations. המלאי מוצג לפי נקודה ספציפית.
תוכנית נאמנות
כרטיס בונוס באתר — דרך חשבונות sale פנימיים. צבירה עם כל הזמנה, ניצול בהזמנה הבאה. זיהוי לפי מספר טלפון, ללא כרטיסי פלסטיק. עבור מאפייה, הנחת "בוקר" רלוונטית: משלוח במשבצת 08:00–10:00 מקבל 10% הנחה. מיושם באמצעות כלל סל שבודק את מאפיין ההזמנה "זמן משלוח".
מה כלול בעבודה
- מפרט טכני עם אבות טיפוס של כל המסכים (קטלוג, קונפיגורטור, עגלה, חשבון אישי)
- עיצוב מוק-אפים כולל (דסקטופ + מובייל)
- פיתוח על 1C-Bitrix באמצעות רכיבים 2.0, HL-בלוקים, מטמון מתויג
- אינטגרציה עם מערכת POS (iiko, 1C:Retail, Poster)
- הגדרת משבצות זמן למשלוח ואיסוף
- הטמעת תוכנית בונוס והנחות מבצעיות
- מילוי תוכן הקטלוג
- בדיקות: פונקציונליות, עומס, תאימות דפדפנים
- תיעוד: מדריך מנהל, תיאור אינטגרציית API
- הדרכת עובדים לעבודה עם פאנל הניהול
- אחריות תמיכה ל-12 חודשים
לוחות זמנים לפיתוח אתר מאפייה
| שלב | מה נעשה | משך |
|---|---|---|
| אב טיפוס | Wireframes של קונפיגורטור, מבנה בלוק מידע | 3–5 ימים |
| עיצוב | UI של קונפיגורטור, קטלוג, כרטיס מוצר, גרסת מובייל | 5–7 ימים |
| סמנטיקה | פריסה רספונסיבית, אנימציות קונפיגורטור | 5–7 ימים |
| בקאנד | HL-בלוקים, בקרי חישוב, אינטגרציית מכירות, POS | 7–10 ימים |
| תוכן | מילוי קטלוג, צילום | 3–5 ימים |
| בדיקות | חישובי קונפיגורטור, עומס, מובייל | 3–4 ימים |
מטמון מרוכב משמש לקטלוג ודפים סטטיים. קונפיגורטור העוגות עובד כולו דרך AJAX — לא במטמון. סמנטיקת Schema.org sale עם Product לנראות רשימות מוצרים. עלות הפרויקט תלויה באפשרות הוויזואליזציה של הקונפיגורטור (תבניות או רינדור Canvas), במספר אינטגרציות ה-POS ובמספר נקודות האיסוף.
למהנדסים שלנו ניסיון של 10+ שנים עם 1C-Bitrix והם השלימו למעלה מ-50 פרויקטים לרשתות קמעונאיות ומאפיות. אנו מבטיחים פעולה יציבה של כל המודולים ומספקים תעודת עמידה בדרישות הפלטפורמה. קבלו ייעוץ לפרויקט שלכם — צרו קשר, נדון בפרטים ונעריך את היקף העבודה. הזמינו פיתוח אתר מאפייה על 1C-Bitrix עוד היום.

