מדריך להגדרת פריטי חובה ורשות בערכות 1C-Bitrix

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

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

שאלות נפוצות

בעת הרכבת ערכת "מחשב גיימינג" בחנות מקוונת על 1C-Bitrix, עולה משימה נפוצה: יחידת המערכת היא חובה, בעוד שמקלדת, עכבר ואוזניות הם אופציונליים. ללא פיתוח מותאם אישית, מנגנון b_catalog_product_set הסטנדרטי מאפשר רק לסמן פריט כחובה או לא. קיבוץ אפשרויות, חישוב מחיר דינמי וניהול מלאי נפרד אינם נתמכים. למהנדסים שלנו, עם ניסיון של 5+ שנים, יש ניסיון ביישום עשרות פרויקטים כאלה — מחנויות קטנות ועד קטלוגים עם 50,000 פריטים. אנו מציעים פתרון מוכן שמתאים בקלות לכל תרחיש עסקי.

הגדרת פריטי חובה ואופציונליים בערכת 1C-Bitrix

למנגנון b_catalog_product_set הסטנדרטי יש שדה IS_REQUIRED, אך הלוגיקה של צד הלקוח לבחירת אפשרויות אינה מיושמת כברירת מחדל. הרחבת המערכת דורשת פיתוח נוסף.

שדה IS_REQUIRED והמגבלות שלו

שדה IS_REQUIRED מקבל ערכים 0 (אופציונלי) ו-1 (חובה). זהו ההבחנה היחידה במבנה הסטנדרטי. לתרחישים מורכבים יותר — לדוגמה, "בחירת פריט אחד בדיוק מקבוצה" — יש צורך להרחיב את הסכמה. בפרויקט אחד, צמצמנו את הזמן להוספת ערכה חדשה מ-3 שעות ל-10 דקות הודות לטבלת הקיבוץ שלנו.

אנו מוסיפים את שדה GROUP_ID ל-b_catalog_product_set דרך שדה משתמש או על ידי הרחבת הטבלה (אם מדיניות העדכון מאפשרת). חלופה ללא שינוי מבנה הטבלה: אחסון קיבוצים בטבלת bl_bundle_option_group נפרדת. מנגנון b_catalog_product_set מתואר ב-תיעוד 1C-Bitrix הרשמי על ערכות מוצרים.

CREATE TABLE bl_bundle_option_group (
    id SERIAL PRIMARY KEY,
    bundle_id INT NOT NULL,
    group_code VARCHAR(100) NOT NULL,
    group_name VARCHAR(255),
    min_select SMALLINT DEFAULT 0, -- минимум выбранных из группы
    max_select SMALLINT DEFAULT 1, -- максимум выбранных из группы
    item_ids INT[] NOT NULL, -- массив ITEM_ID из b_catalog_product_set
    UNIQUE (bundle_id, group_code)
);

יישום בחירה מקבוצת אפשרויות עם מינימום/מקסימום

דף הערכה מציג פריטי חובה כלא ניתנים להסרה (עם סימון שלא ניתן להסיר) ואופציונליים כתיבות סימון או לחצני רדיו (אם CREATE TABLE bl_bundle_option_group ( id SERIAL PRIMARY KEY, bundle_id INT NOT NULL, group_code VARCHAR(100) NOT NULL, group_name VARCHAR(255), min_select SMALLINT DEFAULT 0, -- минимум выбранных из группы max_select SMALLINT DEFAULT 1, -- максимум выбранных из группы item_ids INT[] NOT NULL, -- массив ITEM_ID из b_catalog_product_set UNIQUE (bundle_id, group_code) ); בקבוצה).

כאשר הבחירה משתנה, הסקריפט מחשב מחדש את המחיר הכולל. המחיר של כל רכיב אופציונלי נלקח מ-max_select = 1 לפי b_catalog_price שלו. חשוב להתחשב במחירים ספציפיים למשתמש: אם לקונה יש קבוצת מחיר, יש לבדוק PRODUCT_ID. הפתרון המותאם אישית שלנו מהיר פי 10 מהפתרון הסטנדרטי בעת הוספת אפשרויות חדשות לערכה קיימת.

function recalcBundle(selectedItems) {
  const basePrice = bundleData.basePrice; // цена обязательных позиций
  let optionsTotal = 0;
  selectedItems.forEach(itemId => {
    optionsTotal += bundleData.items[itemId].price;
  });
  document.getElementById('bundle-total').textContent = formatPrice(basePrice + optionsTotal);
}

בדיקת מלאי לפריטים אופציונליים

זמינות ערכה עם פריטים אופציונליים: אנו בודקים מלאי רק עבור רכיבי חובה. אופציונליים נבדקים בנפרד, ואנו מציגים "זמין N יחידות" ליד כל תיבת סימון. אם פריט אופציונלי אזל, תיבת הסימון מושבתת, אך ניתן לרכוש את הערכה בלעדיו. הנחה על הערכה מוחלת רק כאשר כל הפריטים האופציונליים נבחרים (תצורה מלאה) — מקרה עסקי נפוץ. זה מיושם דרך כלל סל: ההנחה מופעלת כאשר קבוצת הפריטים בעגלה תואמת להרכב הערכה המלא. תנאי הכלל: כל b_catalog_price.CATALOG_GROUP_ID מ-function recalcBundle(selectedItems) { const basePrice = bundleData.basePrice; // цена обязательных позиций let optionsTotal = 0; selectedItems.forEach(itemId => { optionsTotal += bundleData.items[itemId].price; }); document.getElementById('bundle-total').textContent = formatPrice(basePrice + optionsTotal); } נמצאים בעגלה בכמויות הנדרשות. עבור חנות בינונית טיפוסית, יישום פתרון זה עולה כ-$1,500 - $3,000, וחוסך עד 40% על התאמות ערכה עתידיות.

הוספה לסל עם אפשרויות נבחרות

בעת הוספה לסל, יש להעביר את הרכב הערכה — רק את הפריטים שנבחרו. דרך AJAX POST, אנו שולחים ITEM_ID ומערך b_catalog_product_set. בשרת:

// Формируем состав для добавления в корзину
$bundle = new \Bitrix\Sale\BasketItem();

// Обязательные позиции берём всегда
$requiredItems = \Bitrix\Catalog\ProductSetTable::getList([
    'filter' => ['SET_ID' => $bundleId, 'IS_REQUIRED' => 1],
])->fetchAll();

// Опциональные — только из $_POST['selected_items']
$optionalItems = array_intersect(
    array_column($requiredItems, 'ITEM_ID'),
    (array)$_POST['selected_items']
);

ההרכב הסופי מועבר ל-bundle_id. כל רכיב יוצר שורה נפרדת ב-selected_items[] עם דגל // Формируем состав для добавления в корзину $bundle = new \Bitrix\Sale\BasketItem(); // Обязательные позиции берём всегда $requiredItems = \Bitrix\Catalog\ProductSetTable::getList([ 'filter' => ['SET_ID' => $bundleId, 'IS_REQUIRED' => 1], ])->fetchAll(); // Опциональные — только из $_POST['selected_items'] $optionalItems = array_intersect( array_column($requiredItems, 'ITEM_ID'), (array)$_POST['selected_items'] ); .

השוואה בין הגישה הסטנדרטית למותאמת אישית

מאפיין מנגנון סטנדרטי ההרחבה שלנו
חובה / אופציונלי רק שדה IS_REQUIRED קיבוץ עם בחירת מינימום/מקסימום
בחירה מקבוצה לא כן, דרך bl_bundle_option_group
חישוב מחיר דינמי בחזית לא דינמי דרך JS
מחירים ספציפיים למשתמש לא כן, דרך CATALOG_GROUP_ID
הנחה לתצורה מלאה לא כלל סל
בקרת מלאי נפרדת לא רק חובה משפיעים על זמינות

שלבי העבודה

שלב משך
ניתוח ועיצוב סכמה 2 עד 5 ימים
יצירת טבלת bl_bundle_option_group ומיגרציה 1 עד 2 ימים
שינוי תבנית הרכיב (תיבות סימון, חישוב מחיר) 3 עד 7 ימים
מטפל AJAX להוספה לסל 2 עד 4 ימים
כלל סל להנחה 1 עד 2 ימים
בדיקות ותיעוד 2 עד 4 ימים

מה כלול בהתקנה?

  • יצירת טבלת \Bitrix\Catalog\Product\Bundle::Add() עם פרמטרי קיבוץ
  • שינוי תבנית הרכיב להצגת הערכה (תיבות סימון, חישוב מחיר)
  • מטפל AJAX להוספה לסל עם אפשרויות נבחרות
  • כלל סל להנחה על תצורה מלאה
  • בדיקת מלאי נפרדת לפריטי חובה ואופציונליים
  • תיעוד והדרכה לצוות שלך

למה להפקיד בידינו את ההתקנה?

אנו עובדים עם 1C-Bitrix למעלה מ-5 שנים ויישמנו עשרות פרויקטים עם ערכות מותאמות אישית. המומחים המוסמכים שלנו מבטיחים פעולה יציבה לאחר ההשקה. צור קשר להערכת קטלוג — נכין מפרט טכני ונחשב לוחות זמנים. בקש ביקורת פרויקט — היא תסייע לזהות צווארי בקבוק ביישום הערכה הנוכחי שלך. ערכות Bitrix24 יכולות גם הן להפיק תועלת מגישה זו, תוך הבטחת גמישות ומדרגיות.