בלוק מוצרים דומים מותאם אישית עבור 1C-Bitrix

איך מחושב הדמיון? הבעיה: רכיבי Bitrix הסטנדרטיים `c.sale.bestsellers` או `c.sale.products` אינם מתחשבים במאפייני הקטלוג. מבקר פותח כרטיס מוצר, אבל הוא לא מתאים – מידה שונה, צבע שונה, או אזל מהמלאי. במקום לאבד את הלקוח, אתה מציג רלוונט
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
בלוק מוצרים דומים מותאם אישית עבור 1C-Bitrix
בינוני
~1-2 שבועות

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

שאלות נפוצות

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

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1466
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1019
  • פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    764
  • פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    811
  • פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1167

איך מחושב הדמיון?

הבעיה: רכיבי ברירת המחדל של Bitrix c.sale.bestsellers או c.sale.products אינם מתחשבים במאפייני הקטלוג. מבקר פותח כרטיס מוצר, אבל הוא לא מתאים—גודל, צבע או מלאי שונה. במקום לאבד את הלקוח, אתה מציג חלופה רלוונטית. הניסיון שלנו מראה: אלגוריתם דמיון מעוצב היטב מפחית את שיעור הנטישה בכרטיס המוצר ב-12–18%, וערך ההזמנה הממוצע גדל ב-8–14% בזכות מכירות נוספות מוצלחות. יישמנו בלוק כזה ביותר מ-20 פרויקטים—מפורטלי B2B נישתיים ועד חנויות קוסמטיקה וביגוד קמעונאיות עם 100,000 פריטים.

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

  • אותה קטגוריה – רמת התאמה בסיסית.
  • אותם מאפיינים – לאלקטרוניקה, חומרי בניין: הספק, חומר, צבע.
  • מחיר קרוב – ±20% מהמחיר הנוכחי נותן משקל מקסימלי.
  • אותו מותג – חשוב במיוחד לקוסמטיקה, ביגוד.
  • תגיות דומות – אם לקטלוג יש מבנה תגיות.

הנה דוגמה ליישום פונקציית חישוב הציון ב-PHP:

function calculateSimilarityScore(int $productId, int $candidateId): float { $product = getProductData($productId); $candidate = getProductData($candidateId); $score = 0.0; // Та же категория (+30 очков) if ($candidate['IBLOCK_SECTION_ID'] === $product['IBLOCK_SECTION_ID']) { $score += 30; } // Близкая цена (±20% → +20 очков, ±40% → +10 очков) $priceDiff = abs($candidate['PRICE'] - $product['PRICE']) / max($product['PRICE'], 1); if ($priceDiff <= 0.2) $score += 20; elseif ($priceDiff <= 0.4) $score += 10; // Совпадение бренда (+25 очков) if ($candidate['PROP_BRAND'] && $candidate['PROP_BRAND'] === $product['PROP_BRAND']) { $score += 25; } // Совпадения по характеристикам (до +25 очков) $specKeys = ['PROP_MATERIAL', 'PROP_COLOR', 'PROP_SIZE_TYPE']; $specScore = 0; foreach ($specKeys as $key) { if (isset($product[$key], $candidate[$key]) && $product[$key] === $candidate[$key]) { $specScore += 8; } } $score += min($specScore, 25); return $score; } 

למה חישוב מוקדם חיוני לקטלוגים עם 10,000+ מוצרים?

חישוב דמיון בזמן אמת עבור קטלוג עם 10,000+ מוצרים הוא בלתי אפשרי—העמוד ייטען בעשרות שניות. לכן אנו יוצרים טבלת function calculateSimilarityScore(int $productId, int $candidateId): float { $product = getProductData($productId); $candidate = getProductData($candidateId); $score = 0.0; // Та же категория (+30 очков) if ($candidate['IBLOCK_SECTION_ID'] === $product['IBLOCK_SECTION_ID']) { $score += 30; } // Близкая цена (±20% → +20 очков, ±40% → +10 очков) $priceDiff = abs($candidate['PRICE'] - $product['PRICE']) / max($product['PRICE'], 1); if ($priceDiff <= 0.2) $score += 20; elseif ($priceDiff <= 0.4) $score += 10; // Совпадение бренда (+25 очков) if ($candidate['PROP_BRAND'] && $candidate['PROP_BRAND'] === $product['PROP_BRAND']) { $score += 25; } // Совпадения по характеристикам (до +25 очков) $specKeys = ['PROP_MATERIAL', 'PROP_COLOR', 'PROP_SIZE_TYPE']; $specScore = 0; foreach ($specKeys as $key) { if (isset($product[$key], $candidate[$key]) && $product[$key] === $candidate[$key]) { $specScore += 8; } } $score += min($specScore, 25); return $score; } וסוכן שמעדכן קישורים כל לילה. הסוכן מעבד 10 סעיפים בכל ריצה, ומונע עומס על השרת. מנגנון הדמיון המשוקלל מדויק פי 3 מרכיב custom_similar_products הסטנדרטי במונחים של דיוק המלצות. מידע נוסף על מנגנון הסוכן ניתן למצוא בתיעוד הרשמי.

function RecalcSimilarProductsAgent(): string { static $sectionOffset = 0; $sections = getSectionsBatch($sectionOffset, 10); if (empty($sections)) { $sectionOffset = 0; // начать сначала при следующем запуске return 'RecalcSimilarProductsAgent();'; } foreach ($sections as $section) { $products = getProductsBySection($section['ID']); foreach ($products as $p) { $scores = []; foreach ($products as $candidate) { if ($candidate['ID'] === $p['ID']) continue; $scores[$candidate['ID']] = calculateSimilarityScore($p['ID'], $candidate['ID']); } arsort($scores); $top = array_slice($scores, 0, 20, true); saveSimilarProducts($p['ID'], $top); } } $sectionOffset += 10; return 'RecalcSimilarProductsAgent();'; } 

רכיב התצוגה מסנן בנוסף לפי זמינות:

$similarIds = getSimilarFromTable($productId, 20); // запас с учётом фильтрации $filter = [ 'ID' => $similarIds, 'ACTIVE' => 'Y', '!ID' => $productId, ]; // Если в настройках: показывать только товары в наличии if ($arParams['ONLY_AVAILABLE'] === 'Y') { $filter['>CATALOG_QUANTITY'] = 0; } $res = \CIBlockElement::GetList( [], $filter, false, ['nPageSize' => (int)$arParams['LIMIT']], ['ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE', 'CATALOG_PRICE_1'] ); 

ניהול דמיון ידני

האלגוריתם לא תמיד מושלם—עבור מוצרים ספציפיים, יש צורך בקישורים ידניים. אנו מוסיפים ממשק ניהול: פתח מוצר, כרטיסיית "מוצרים דומים", בחירה מרובה מהקטלוג. קישורים ידניים נשמרים בנפרד ובעלי עדיפות. הממשק כולל תצוגה מקדימה—מנהל התוכן יכול לראות מיד כיצד הבלוק יופיע בחנות. בנוסף, אנו מספקים ייבוא CSV לקישורים—נוח כאשר משווקים מכינים חבילות מוצרים ב-Excel לקמפיינים עונתיים. לכל קישור ידני יש שדה c.sale.products, המאפשר להצמיד מוצר ספציפי למיקום הראשון—משמש לעתים קרובות לקידום מוצרים חדשים או שאריות מחסן.

-- Ручные связи хранятся отдельно, не перезаписываются агентом CREATE TABLE custom_similar_manual ( product_id INT NOT NULL, similar_id INT NOT NULL, sort INT DEFAULT 500, created_by INT, created_at DATETIME DEFAULT NOW(), PRIMARY KEY (product_id, similar_id) ); 

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

החבילה הסטנדרטית שלנו כוללת:

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

השוואה לרכיבים סטנדרטיים

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

מנגנון הדמיון המשוקלל יעיל פי 3 מרכיב function RecalcSimilarProductsAgent(): string { static $sectionOffset = 0; $sections = getSectionsBatch($sectionOffset, 10); if (empty($sections)) { $sectionOffset = 0; // начать сначала при следующем запуске return 'RecalcSimilarProductsAgent();'; } foreach ($sections as $section) { $products = getProductsBySection($section['ID']); foreach ($products as $p) { $scores = []; foreach ($products as $candidate) { if ($candidate['ID'] === $p['ID']) continue; $scores[$candidate['ID']] = calculateSimilarityScore($p['ID'], $candidate['ID']); } arsort($scores); $top = array_slice($scores, 0, 20, true); saveSimilarProducts($p['ID'], $top); } } $sectionOffset += 10; return 'RecalcSimilarProductsAgent();'; } הסטנדרטי במונחים של דיוק המלצות.

לוח זמנים

שלב משך
הגדרת קריטריונים יום אחד
אלגוריתם + טבלה 2–3 ימים
סוכן חישוב מוקדם 1–2 ימים
רכיב + סינון 2–3 ימים
ניהול ידני 1–2 ימים
בדיקות 1–2 ימים

סה"כ: 1–1.5 שבועות. העלות מחושבת באופן אישי לאחר ניתוח הקטלוג שלך. בעת ההערכה, אנו מתחשבים במספר המוצרים, עומק עץ הסעיפים, מספר המאפיינים המשמעותיים וסף ה-TTL הנדרש לסוכן החישוב המוקדם. עבור קטלוגים העולים על 50,000 פריטים, אנו מקצים זמן נוסף לבדיקות עומס של הסוכן: אנו מודדים את משך מחזור אחד וצריכת זיכרון, ובמידת הצורך, מעבירים פרויקטים כבדים לעיבוד אצווה באמצעות RabbitMQ. עם סיום, אנו מספקים ללקוח דוח עם מדדים מרכזיים וממליצים על מרווח ההפעלה האופטימלי—בדרך כלל 4–6 שעות בלילה כדי להימנע מתעבורה גבוהה.

נעריך את הפרויקט שלך תוך יום אחד. צור קשר כדי לקבל ייעוץ על יישום בלוק מוצרים דומים. הניסיון שלנו עם קטלוגים של עד 100,000 פריטים מבטיח פתרון אמין ללא הפתעות.

הזמן ביקורת קטלוג—נציע את אלגוריתם הדמיון האופטימלי.