קישור טבלת מידות למוצרים ב-1C-Bitrix: הפחתת החזרות ב-15–20%
החזרות של בגדים בחנויות מקוונות מגיעות ל-30–40% — ו-80% מהן נובעות ממידה שגויה. טבלת מידות המקושרת למוצר מפחיתה מדד זה ב-15–20%. אבל Bitrix הסטנדרטית לא מאחסנת או מציגה נתונים כאלה. אנו מגדירים בלוקי מידע ומאפיינים כדי לקשר את רשת המידות למוצר ולקטגוריה. הניסיון שלנו: במשך למעלה מ-8 שנים יישמנו זאת עבור עשרות חנויות — פרויקט אחד עם קטלוג של 10,000 מוצרים הפחית את ההחזרות מ-35% ל-22% תוך חודשיים לאחר היישום. החיסכון בלוגיסטיקה ואריזה מחדש עם הזמנה ממוצעת של $27–39 ו-10,000 הזמנות בחודש הסתכם בלמעלה מ-$36k–52k (כ-$50,000).
מדוע טבלת מידות קריטית לחנות בגדים?
החזרות של בגדים בחנויות מקוונות מגיעות ל-30–40% — ורובן נובעות ממידה שגויה. טבלת מידות לצד בחירת הצעת המכירה מפחיתה ישירות מדד זה. הניסיון שלנו: יישום טבלה כזו מפחית החזרות ב-15–20% בתוך החודש הראשון. זה מכסה את עלויות הפיתוח באמצעות הפחתת לוגיסטיקה ואריזה מחדש.
ארכיטקטורת אחסון
טבלאות מידות הן נתונים מובנים המקושרים למוצרים או לקטגוריות. ב-Bitrix, ישנם שני מקומות לכך:
מאפיין של בלוק מידע מסוג 'קישור לאלמנטים' — נוצר בלוק מידע נפרד 'טבלאות מידות', שכל אלמנט בו מכיל נתוני טבלה. מוצרים מפנים לטבלה הרצויה דרך המאפיין PROP_SIZE_TABLE. יתרון: נוח לשימוש חוזר בטבלה אחת עבור מאות מוצרים של אותו מותג.
שדה משתמש מסוג 'HTML/טקסט' — הטבלה מאוחסנת ישירות במאפיין המוצר כקוד HTML. זול יותר אך לא ניתן להרחבה: בעת שינוי רשת המידות, יש לערוך כל מוצר ידנית.
האפשרות הראשונה מומלצת. מבנה בלוק המידע 'טבלאות מידות':
| שדה | סוג | תיאור |
|---|---|---|
| NAME | מחרוזת | שם (לדוגמה, 'בגדי נשים EU') |
| PROP_BRAND | מחרוזת | מותג |
| PROP_CATEGORY | קישור לסעיף | קטגוריית קטלוג |
| PROP_TABLE_DATA | טקסט | JSON עם נתוני טבלה |
| PROP_MEASURE_SYSTEM | רשימה | EU / US / UK / RU |
נתוני הטבלה מאוחסנים ב-JSON:
{ "headers": ["Размер EU", "Размер RU", "Обхват груди (см)", "Обхват бёдер (см)"], "rows": [ ["XS", "40", "80-84", "86-90"], ["S", "42", "84-88", "90-94"], ["M", "44", "88-92", "94-98"] ] } דוגמת קוד: קבלת טבלת מידות עבור מוצר
לוגיקה לקבלת הטבלה עבור מוצר:
function getSizeTableForProduct(int $productId, int $sectionId): ?array { // Сначала проверяем свойство товара $element = CIBlockElement::GetByID($productId)->GetNextElement(); $props = $element->GetProperties(); $tableId = (int)($props['SIZE_TABLE']['VALUE'] ?? 0); // Если нет — берём из категории if (!$tableId) { $section = CIBlockSection::GetByID($sectionId)->Fetch(); $tableId = (int)($section['UF_DEFAULT_SIZE_TABLE'] ?? 0); } if (!$tableId) return null; $table = CIBlockElement::GetByID($tableId)->GetNextElement(); $tableProps = $table->GetProperties(); return json_decode($tableProps['TABLE_DATA']['VALUE'], true); } כיצד ליישם קישור טבלת מידות מדורג?
הקישור מיושם בשני רמות:
רמת קטגוריה — נוצר שדה UF { "headers": ["Размер EU", "Размер RU", "Обхват груди (см)", "Обхват бёдер (см)"], "rows": [ ["XS", "40", "80-84", "86-90"], ["S", "42", "84-88", "90-94"], ["M", "44", "88-92", "94-98"] ] } (קישור לאלמנט של בלוק מידע טבלאות מידות) עבור הסעיף. כל המוצרים בקטגוריה יורשים אוטומטית טבלה זו אם אין להם אחת אישית.
רמת מוצר — מאפיין בלוק מידע function getSizeTableForProduct(int $productId, int $sectionId): ?array { // Сначала проверяем свойство товара $element = CIBlockElement::GetByID($productId)->GetNextElement(); $props = $element->GetProperties(); $tableId = (int)($props['SIZE_TABLE']['VALUE'] ?? 0); // Если нет — берём из категории if (!$tableId) { $section = CIBlockSection::GetByID($sectionId)->Fetch(); $tableId = (int)($section['UF_DEFAULT_SIZE_TABLE'] ?? 0); } if (!$tableId) return null; $table = CIBlockElement::GetByID($tableId)->GetNextElement(); $tableProps = $table->GetProperties(); return json_decode($tableProps['TABLE_DATA']['VALUE'], true); } מסוג 'קישור לאלמנטים'. מאפשר לעקוף את הטבלה עבור מוצר ספציפי.
גישה זו עדיפה על אחסון הטבלה כטקסט HTML מכיוון שהיא מאפשרת שינוי נתונים מרכזי בקלות — דרך אלמנט אחד של בלוק מידע, לא דרך כל המוצרים.
הצגה בכרטיס המוצר
טבלת המידות מוצגת בתבנית של רכיב UF_DEFAULT_SIZE_TABLE. הגישה הסטנדרטית היא חלון מודאלי בעת לחיצה על הקישור 'טבלת מידות' לצד בורר הצעות המכירה.
בתבנית, אנו כוללים את הנתונים:
// В result_modifier.php или непосредственно в template.php $sizeTable = getSizeTableForProduct( $arResult['ID'], $arResult['IBLOCK_SECTION_ID'] ); $this->SetViewTarget('size_table_data'); נקודה חשובה: אם למוצר יש הצעות מכירה במידות שונות, הטבלה צריכה להיות מוצגת רק כאשר נבחר פרמטר מידה פעיל (שינוי צבע עם מידה אינו נדרש — רק הטבלה).
רב-לשוניות ומערכות מידה מרובות
עבור חנויות הפועלות באזורים שונים, טבלה אחת צריכה להכיל מספר מערכות מידה. ב-JSON, מתווספת קיבוץ לפי מערכת:
{ "systems": { "EU": { "headers": [...], "rows": [...] }, "US": { "headers": [...], "rows": [...] }, "UK": { "headers": [...], "rows": [...] } } } מתג מערכת המידה מוצג מעל הטבלה באמצעות JS ללא טעינת עמוד מחדש.
לוח זמנים
| היקף העבודה | זמן |
|---|---|
| בלוק מידע + מאפיין + פלט בסיסי | יום אחד |
| קישור מדורג קטגוריה/מוצר + חלון מודאלי | 2–3 ימים |
| מדידה רב-מערכתית + רב-לשוניות | +1–2 ימים |
מה כלול בעבודה
- עיצוב מבנה בלוק המידע והמאפיינים עבור הקטלוג שלך.
- הגדרת קישור מדורג (קטגוריה → מוצר) עם ירושה.
- יישום חלון מודאלי עם טבלת מידות בכרטיס המוצר.
- אינטגרציה עם 1C לטעינה אוטומטית של רשת מידות דרך CommerceML.
- בדיקות על מוצרי ניסיון והחזרות מדומות.
- מתן תיעוד על מבנה הנתונים ו-API לפיתוח עתידי.
- חודש תמיכה לאחר המסירה: תיקון בעיות, סיוע בתוכן.
השילוב 'טבלת מידות — הצעת מכירה' מכסה את עצמו על ידי הפחתת החזרות בחודש הראשון. אם תרצו ייעוץ לפרויקט שלכם — צרו קשר. אנו נעריך את המשימה, נציע ארכיטקטורה ולוח זמנים. הזמינו יישום כדי להפחית החזרות ולהגדיל רווח.







