תנאי משלוח חינם מותאמים אישית ב-1C-Bitrix
אנו מפתחים תנאי משלוח חינם מותאמים אישית עבור 1C-Bitrix, תוך התגברות על מגבלת התנאי הבודד של ההגבלה הסטנדרטית. כאשר העסק שלך דורש כללים גמישים—חינם רק למוצרי מבצע, ללקוחות חדשים, לפי קוד קופון, או עם ספים שונים לכל עיר—המגבלות המובנות אינן מספיקות. צוות המהנדסים שלנו עם ניסיון של 10+ שנים ב-Bitrix יישם 50+ פרויקטים עם לוגיסטיקה מותאמת אישית. בואו נעבור על איך להגדיר משלוח חינם בתנאים לא סטנדרטיים ומה לשים לב כדי לא לשבור את סל הקניות.
למה הגבלות המשלוח הסטנדרטיות של Bitrix לא מספיקות
המנגנון ברירת המחדל ב-Bitrix מאפשר רק הגבלה אחת: סכום הזמנה מינימלי לכל הלקוחות. אם אתה צריך הבחנה לפי קבוצות משתמשים, סוגי מוצרים או קודי קופון, עליך לכתוב מטפלים מותאמים אישית. בפרויקטים אמיתיים נתקלנו ב-20+ וריאציות תנאים שאינן מכוסות מחוץ לקופסה. מטפלים מותאמים אישית גמישים פי 3 מההגבלות הסטנדרטיות, ומאפשרים שילובי תנאים בלתי מוגבלים. לפי מחקרי תעשייה, 70% מאתרי המסחר האלקטרוני משתמשים במשלוח חינם ככלי שיווקי.
איך להגדיר משלוח חינם עם הגבלת הסכום הסטנדרטית
-
בפאנל הניהול, עבור כל מטפל משלוח עבור אל "הגבלות" → "לפי מחיר הזמנה" → הגדר "מחיר הזמנה מינימלי" = 0, "מקסימום" = ריק. זה מאפשר את השיטה לכל סכום.
-
עבור משלוח חינם, צור מופע מטפל נפרד (לדוגמה, "CDEK חינם") עם מחיר אפס והגבלה לפי סכום הזמנה מינימלי (מוגדר בהגדרות המטפל):
// Обработчик с фиксированной нулевой ценой class FreeDeliveryWrapper extends \Bitrix\Sale\Delivery\Services\Base { protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); $result->setPeriodDescription('2–5 дней'); return $result; } } הגבלת הסכום מוגדרת דרך ממשק המשתמש הסטנדרטי. עדיף לאחסן את הסף בהגדרות המטפל כדי שתוכל לשנות אותו ללא נגיעה בקוד. לפרטים נוספים על יצירת מטפלי משלוח, ראה את התיעוד.
איך ליישם משלוח חינם רק למוצרים ספציפיים
תרחיש: המשלוח חינם אם הסל מכיל מוצר מקטע "מבצע" או מוצר עם מאפיין מסוים.
class ConditionalFreeDelivery extends \Bitrix\Sale\Delivery\Services\Base { public static function isCompatible(\Bitrix\Sale\Shipment $shipment): bool { $basket = $shipment->getOrder()->getBasket(); foreach ($basket as $item) { $productId = $item->getProductId(); // Проверяем свойство товара FREE_DELIVERY = Y $props = \CIBlockElement::GetProperty( $item->getField('MODULE'), $productId, [], ['CODE' => 'FREE_DELIVERY'] )->Fetch(); if ($props && $props['VALUE'] === 'Y') { return true; } } return false; } protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); return $result; } } איך להגדיר משלוח חינם ללקוחות חדשים
כדי להציע משלוח חינם רק בהזמנות ראשונות, השתמש באירוע // Обработчик с фиксированной нулевой ценой class FreeDeliveryWrapper extends \Bitrix\Sale\Delivery\Services\Base { protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); $result->setPeriodDescription('2–5 дней'); return $result; } } ובדגל על ההזמנה. בהגבלת המטפל, בדוק את הדגל הזה. אלגוריתם: כאשר נוצרת הזמנה, בדוק את היסטוריית ההזמנות של המשתמש; אם אין, הגדר דגל מותאם אישית. במטפל המשלוח, בדוק את הדגל והגדר מחיר לאפס.
איך להגדיר משלוח חינם לפי קוד קופון
בסל של Bitrix, ניתן להחיל קוד קופון המשפיע על עלות המשלוח. יישם דרך מטפל הנחה מותאם אישית על המשלוח או דרך מאפיין סל. מטפל המשלוח חייב לבדוק את הקופון עם סוג ספציפי ולאפס את המחיר.
הצגת התקדמות משלוח חינם בסל
הצג בסל: "נותר למשלוח חינם: [סכום]". זו אינה תכונה מובנית של Bitrix—יישם אותה ברמת תבנית רכיב הסל.
// В шаблоне компонента $threshold = 5000; // порог бесплатной доставки $basketTotal = $APPLICATION->IncludeComponent('bitrix:sale.basket.basket', '', ['GET_BASKET_TOTAL' => 'Y'], false, ['HIDE_ICONS' => 'Y']); $currentTotal = $GLOBALS['BASKET_TOTAL'] ?? 0; $remaining = max($threshold - $currentTotal, 0); if ($remaining > 0) { echo 'До бесплатной доставки: ' . \CCurrencyLang::CurrencyFormat($remaining, 'USD'); } else { echo 'Доставка бесплатна!'; } עדיף לשלוף את class ConditionalFreeDelivery extends \Bitrix\Sale\Delivery\Services\Base { public static function isCompatible(\Bitrix\Sale\Shipment $shipment): bool { $basket = $shipment->getOrder()->getBasket(); foreach ($basket as $item) { $productId = $item->getProductId(); // Проверяем свойство товара FREE_DELIVERY = Y $props = \CIBlockElement::GetProperty( $item->getField('MODULE'), $productId, [], ['CODE' => 'FREE_DELIVERY'] )->Fetch(); if ($props && $props['VALUE'] === 'Y') { return true; } } return false; } protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); return $result; } } מהגדרות מטפל המשלוח במקום לקודד אותו בתבנית—כך כאשר הסף משתנה, יש צורך לעדכן רק מקום אחד.
מקרה בוחן מהפרקטיקה שלנו
חנות תזונת ספורט: משלוח חינם עם ספי הזמנה מינימליים שונים למוסקבה ולאזורים. Bitrix סטנדרטי לא יכול להתמודד עם זה עם מטפל אחד—ספים שונים לאזורים שונים. פתרון: שני מופעים של OnSaleOrderSaved עם הגדרות סף שונות והגבלות אזור. בנוסף, הגדרנו פס התקדמות המציג את הסכום הנותר למשלוח חינם, תוך התחשבות באזור הלקוח. זה הביא לעלייה של 15% בערך ההזמנה הממוצע ולהפחתה של 20% בסלי קניות נטושים.
מה כלול בהגדרת משלוח חינם
| שלב | היקף העבודה |
|---|---|
| 1. ניתוח | ביקורת על תוכנית המשלוח הנוכחית, זיהוי תנאים לא סטנדרטיים |
| 2. תכנון | פיתוח ארכיטקטורת מטפל, הגבלות, אינטגרציות |
| 3. פיתוח | כתיבת מחלקות מותאמות אישית, הגדרת מאפיינים והגבלות |
| 4. בדיקות | אימות כל התרחישים: סכום, מוצרים, אזורים, קודי קופון |
| 5. תיעוד | מסירת תיעוד והדרכת מנהלים בניהול משלוחים |
טעויות אופייניות בהגדרה
| טעות | השלכה | איך להימנע |
|---|---|---|
| קידוד הסף בתבנית | חייבים לערוך קוד כאשר הסף משתנה | אחסון בהגדרות המטפל |
| אי התחשבות במספר אזורים | לקוחות מאזורים מסוימים רואים תנאים שגויים | יצירת מטפלים נפרדים עם הגבלות אזור |
| חוסר בדיקות עם קופונים | קודי קופון לא מאפסים את המשלוח | בדיקת אינטגרציה עם סל והנחות |
אנו מבטיחים פעולה יציבה של תוכנית המשלוח בכל השלבים. צור קשר איתנו לייעוץ על הפרויקט שלך. התמחור שלנו לפיתוח מטפל משלוח מותאם אישית מתחיל ב-$500 לתנאים בסיסיים ונע עד $2000 להגדרות מורכבות מרובות אזורים. קבל לוח זמנים אישי והערכת עלות על ידי מילוי הטופס באתר שלנו.
לוחות זמנים
| תצורה | זמן |
|---|---|
| הגבלת סכום סטנדרטית | 0.5 יום |
| + פס התקדמות "נותר למשלוח חינם" | +1 יום |
| + תנאים לפי מוצרים או אזורים | +1–2 ימים |







