פיתוח פונקציונליות 'בנה את החבילה שלך' על 1C-Bitrix

לקוחות שואלים לעתים קרובות על מבצע 'בחר N פריטים וקבל הנחה' — זה מה ש'בנה את החבילה שלך'. במבט ראשון זה נראה פשוט, אבל בפועל אנו נתקלים במלכודות: חישוב נכון של מחיר עם תמחור מעורב, התחשבנות במלאי, ועיצוב חווית משתמש שמונעת נטישת עגלה.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
פיתוח פונקציונליות 'בנה את החבילה שלך' על 1C-Bitrix
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1164

לקוחות שואלים לא פעם על מבצע "בחר N פריטים וקבל הנחה" — זו בעצם הפונקציונליות של "בנה את החבילה שלך". במבט ראשון זה נראה פשוט, אבל בפועל אנחנו נתקלים במלכודות: חישוב נכון של מחיר עם תמחור מעורב, התחשבות במלאי, ועיצוב UX שמונע נטישת עגלה. במשך למעלה מ-10 שנים יישמנו פונקציונליות כזו ביותר מ-50 פרויקטים — מחנויות קוסמטיקה מקוונות ועד שירותי ארוחות מוכנות. הניסיון שלנו מבטיח יישום חלק. טעות אופיינית היא לנסות להשתמש בכללי העגלה הסטנדרטיים של Bitrix: הם לא מאפשרים ניהול גמיש של מחירים בודדים וקיבוץ. פיתחנו מנגנון Bitrix מותאם אישית המבוסס על בלוקי מידע ואירועי עגלה שעובד גם תחת עומסים גבוהים (עד 1000 הזמנות בו-זמנית). קבלו ייעוץ — נעריך את המורכבות ונציע את הפתרון האופטימלי.

ארכיטקטורה ו-UX של Build Your Bundle

אחסון החבילה בבלוקי מידע

חבילה מתוארת על ידי אלמנט של בלוק מידע או רשומה בטבלה מותאמת אישית:

// Свойства инфоблока "Наборы" 'MIN_ITEMS' => 3, 'MAX_ITEMS' => 5, 'SET_PRICE' => 1990, 'DISCOUNT_PCT' => 15, 'PRODUCTS' => [12, 15, 18, 22], 'ACTIVE_FROM' => '01 марта', 'ACTIVE_TO' => '01 апреля', 

עבור מאגר מוצרים גדול (50+), רשימת הפריטים המותרים מוגדרת לא על ידי פירוט מזהים אלא על ידי פילטר לפי קטגוריה או תג:

'ALLOWED_SECTIONS' => [5, 7, 12], 'ALLOWED_TAGS' => ['promo-may', 'gift-set'], 
פרטי אחסון לכל חבילה יש קוד ייחודי שלפיו פריטים מקובצים בעגלה. תוקף המבצע נבדק באמצעות סוכנים שמשביתים את החבילה אוטומטית עם פקיעת התוקף.

ממשק בחירה עם פס התקדמות

מונה התקדמות מציג "נבחרו 2 מתוך 3". בלעדיו משתמשים הולכים לאיבוד. יישום:

const maxItems = 3; let selected = []; function toggleProduct(productId, btn) { if (selected.includes(productId)) { selected = selected.filter(id => id !== productId); btn.classList.remove('selected'); } else if (selected.length < maxItems) { selected.push(productId); btn.classList.add('selected'); } updateProgress(); } function updateProgress() { document.querySelector('.progress-text').textContent = `Выбрано ${selected.length} из ${maxItems}`; document.querySelector('.add-to-cart-btn').disabled = selected.length < minItems; } 

חסימת בחירות נוספות — כשמגיעים למקסימום, הפריטים הנותרים הופכים ללא פעילים, אך משתמשים יכולים לבטל בחירה של פריטים שכבר נוספו. ויזואלית: הכרטיס הופך לאפור, הכפתור מושבת. תצוגה מקדימה של החבילה — בצד ימין (בשולחן העבודה) או בתחתית (במובייל) פאנל קבוע עם רשימת הפריטים שנבחרו, המחיר הסופי וכפתור "הוסף לעגלה".

למה חשוב ליישם תמחור נכון

שני מצבי תמחור:

מחיר חבילה קבוע ב-Bitrix. המשתמש בוחר כל 3 פריטים — משלם $9–13 ללא קשר למחירים הבודדים. פריט מיוחד "חבילה" מתווסף לעגלה במחיר $9–13, ללא פירוט. לקוחות חוסכים בממוצע $50 לחבילה בהשוואה לקניית פריטים בנפרד.

הנחת חבילה ב-Bitrix. סכום מחירי הפריטים שנבחרו מוכפל במקדם (למשל, ×0.85 להנחה של 15%). כל פריט מתווסף לעגלה במחיר המופחת.

עבור האפשרות השנייה ב-Bitrix אפשר להשתמש בכללי עגלה (// Свойства инфоблока "Наборы" 'MIN_ITEMS' => 3, 'MAX_ITEMS' => 5, 'SET_PRICE' => 1990, 'DISCOUNT_PCT' => 15, 'PRODUCTS' => [12, 15, 18, 22], 'ACTIVE_FROM' => '01 марта', 'ACTIVE_TO' => '01 апреля', ), אבל קל יותר להגדיר מחיר פרוגרמטית בעת הוספה לעגלה דרך שדה 'ALLOWED_SECTIONS' => [5, 7, 12], 'ALLOWED_TAGS' => ['promo-may', 'gift-set'], של הפריט ו-const maxItems = 3; let selected = []; function toggleProduct(productId, btn) { if (selected.includes(productId)) { selected = selected.filter(id => id !== productId); btn.classList.remove('selected'); } else if (selected.length < maxItems) { selected.push(productId); btn.classList.add('selected'); } updateProgress(); } function updateProgress() { document.querySelector('.progress-text').textContent = `Выбрано ${selected.length} из ${maxItems}`; document.querySelector('.add-to-cart-btn').disabled = selected.length < minItems; } . לפי תיעוד BitrixBitrix API: תמחור פריט עגלה מותאם אישית, גישה זו נותנת שליטה מלאה על התמחור.

תכונה מחיר קבוע הנחה על פריטים
דוגמה $9–13 לחבילה 15% הנחה על כל פריט
קיבוץ בעגלה פריט אחד כל פריט עם הנחה
מורכבות יישום נמוכה בינונית
מומלץ עבור קמפיינים פרסומיים הנחות מתמשכות

אינטגרציה עם עגלה והזמנה

public function addSetToCartAction(int $setId, array $productIds): array { $setData = $this->loadSetData($setId); if (!$this->validateProducts($productIds, $setData)) { return ['success' => false, 'error' => 'Недопустимые товары']; } if (count($productIds) < $setData['MIN_ITEMS'] || count($productIds) > $setData['MAX_ITEMS']) { return ['success' => false, 'error' => 'Неверное количество позиций']; } $prices = $this->calcPrices($productIds, $setData); $setCode = 'bundle_' . $setId . '_' . uniqid(); $basket = \Bitrix\Sale\Basket::loadItemsForFUser(\CSaleBasket::GetBasketUserID(), SITE_ID); foreach ($productIds as $i => $pid) { $item = $basket->createItem('catalog', $pid); $item->setFields([ 'QUANTITY' => 1, 'CUSTOM_PRICE' => 'Y', 'PRICE' => $prices[$i], 'BASE_PRICE' => $prices[$i], ]); $propCol = $item->getPropertyCollection(); $propCol->setProperty(['CODE' => 'SET_CODE', 'VALUE' => $setCode]); } $basket->save(); return ['success' => true, 'basket_count' => count($basket)]; } 

בעגלת הקניות, פריטים מחבילה אחת מוצגים כקבוצה. התבנית b_sale_discount מותאמת אישית: פריטים מקובצים לפי PRICE, מוצגים עם הנחה ועם אפשרות לערוך את החבילה (קישור חזרה לדף הקונסטרוקטור). ההזמנה שומרת את CUSTOM_PRICE => 'Y' כמאפיין שורת פריט — לעיבוד החזרות נכון ולאנליטיקה.

שלבי יישום

  1. ניתוח דרישות — קביעת סוג התמחור, מאגר המוצרים, משך המבצע.
  2. עיצוב — יצירת בלוקי מידע, הגדרת מאפיינים, פיתוח סכמת נתונים.
  3. יישום — קידוד הממשק, לוגיקת התמחור, אינטגרציית עגלה.
  4. בדיקות — בדיקת כל התרחישים: בחירה, ביטול בחירה, מלאי, מבצעים במקביל.
  5. השקה ותיעוד — העלאה לסביבת ייצור, הדרכת מפעילים.

בקרת מלאי עם קאשינג

אם מוצר בחבילה אינו במלאי, לא ניתן לבחור אותו. יישום בקרת מלאי ב-Bitrix באמצעות public function addSetToCartAction(int $setId, array $productIds): array { $setData = $this->loadSetData($setId); if (!$this->validateProducts($productIds, $setData)) { return ['success' => false, 'error' => 'Недопустимые товары']; } if (count($productIds) < $setData['MIN_ITEMS'] || count($productIds) > $setData['MAX_ITEMS']) { return ['success' => false, 'error' => 'Неверное количество позиций']; } $prices = $this->calcPrices($productIds, $setData); $setCode = 'bundle_' . $setId . '_' . uniqid(); $basket = \Bitrix\Sale\Basket::loadItemsForFUser(\CSaleBasket::GetBasketUserID(), SITE_ID); foreach ($productIds as $i => $pid) { $item = $basket->createItem('catalog', $pid); $item->setFields([ 'QUANTITY' => 1, 'CUSTOM_PRICE' => 'Y', 'PRICE' => $prices[$i], 'BASE_PRICE' => $prices[$i], ]); $propCol = $item->getPropertyCollection(); $propCol->setProperty(['CODE' => 'SET_CODE', 'VALUE' => $setCode]); } $basket->save(); return ['success' => true, 'basket_count' => count($basket)]; } או bitrix:sale.basket.basket:

$product = \Bitrix\Catalog\ProductTable::getRow([ 'filter' => ['ID' => $productId], 'select' => ['QUANTITY', 'QUANTITY_TRACE', 'CAN_BUY_ZERO'], ]); $available = ($product['CAN_BUY_ZERO'] === 'Y') || ($product['QUANTITY'] > 0); 

המלאי נשמר בקאש למשך 5–10 דקות — שאילתות תכופות מדי למסד הנתונים עם מאגר מוצרים גדול מעמיסות על המערכת. אופטימיזציה: שימוש בקאש מתויג ועדכון הקאש בעת שינוי מלאי באמצעות סוכן. זה מתמודד עם עד 10,000 וריאציות מוצר עם זמן השהייה מינימלי.

אנליטיקת חבילות ומעקב המרות

חבילה היא כלי המרה; יש למדוד את האפקטיביות שלה. מעקב אנליטיקת חבילות ב-Bitrix כולל:

  • מעקב אחר מספר המשתמשים שהתחילו בחירה (צפייה בדף החבילה) — בדרך כלל ירידה של 40% בממשק.
  • ניטור כמה השלימו בחירה והוסיפו לעגלה — שיעור ההמרה הממוצע הוא 12%.
  • מדידת כמה המשיכו לתשלום — שיעור השלמת התשלום הוא 85%.
  • ניתוח הרכב החבילה הממוצע: אילו פריטים נבחרים בתדירות הגבוהה ביותר כדי לתמוך בהחלטות מרצ'נדייזינג.

אירועים נשלחים ל-Yandex.Metrica או ל-Google Analytics דרך SET_CODE בכל שלב. נתונים אלה עוזרים לייעל את זרימת ה-UX של build your bundle.

מה כלול בעבודה

  • מפרט טכני ועיצוב ארכיטקטורה
  • מבנה בלוק מידע מותאם אישית לחבילות
  • ממשק פרונטאנד עם פס התקדמות ואימות
  • לוגיקת באקאנד לתמחור (קבוע או הנחה) ואינטגרציית עגלה
  • בדיקות זמינות מלאי עם קאשינג
  • הגדרת אירועי אנליטיקה (אינטגרציית dataLayer)
  • הדרכת מפעילים ותיעוד
  • 30 ימי תמיכה לאחר ההשקה ותיקוני באגים

לוח זמנים ועלות פיתוח

אופציה מה כלול לוח זמנים עלות
חבילה פשוטה (מחיר קבוע) ממשק בחירה + עגלה + דף חבילה 1–2 שבועות $1,500 – $3,000
הנחה על פריטים + אילוצים חישוב הנחה, מלאי, אנליטיקה 2–4 שבועות $3,000 – $6,000
מספר חבילות פעילות ניהול אדמין, תאריכי מבצע 3–5 שבועות $5,000 – $9,000

עלות הפיתוח מחושבת באופן פרטני לפי מורכבות ומספר האינטגרציות. הניסיון שלנו עם למעלה מ-50 פרויקטים ומומחי Bitrix מוסמכים מבטיח איכות גבוהה.

הפונקציונליות של 'build your bundle' עובדת הכי טוב כמבצע לזמן מוגבל. פקיעת התוקף יוצרת דחיפות, והיכולת לבחור יוצרת תחושת התאמה אישית. השילוב הזה ממיר טוב יותר מחבילה סטטית מוכנה באותו מחיר. יישמו פונקציונליות חבילה בביטחון — קבלו ייעוץ ממהנדס עם 10 שנות ניסיון ב-Bitrix. צרו קשר כדי לפתח build your bundle ולייעל את ביצועי העגלה ב-Bitrix.