הקמת מחסן אזורי ומשלוחים עבור 1C-Bitrix: סוהר

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

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

שאלות נפוצות

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

  • פיתוח אתר חברה 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 מאשר שהכלים המובנים אינם מספיקים. יש לנו ניסיון של 10+ שנים עם Bitrix ויישמנו 50+ פרויקטים עם לוגיסטיקה אזורית. מקרה אחד — רשת של 5 מחסנים: לאחר היישום, עלויות המשלוח ירדו ב-25%, וזמן המשלוח ירד מ-5 ל-2 ימים. החיסכון הממוצע ללקוחות נע בין 20% ל-30% מעלויות הלוגיסטיקה הראשוניות.

מחסנים אזוריים: בחירה אוטומטית ומשלוח

מדוע בחירת מחסן אוטומטית היא משימה לא טריוויאלית?

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

AddEventHandler('sale', 'OnBeforeShipmentSave', 'SelectOptimalStore'); function SelectOptimalStore(\Bitrix\Main\Event $event): \Bitrix\Main\EventResult { $shipment = $event->getParameter('ENTITY'); $order = $shipment->getCollection()->getOrder(); // Получаем регион покупателя из адреса доставки $propertyCollection = $order->getPropertyCollection(); $cityProp = $propertyCollection->getDeliveryLocation(); $cityId = $cityProp ? $cityProp->getValue() : null; if ($cityId) { $optimalStoreId = findNearestStore($cityId); $shipment->setField('STORE_ID', $optimalStoreId); } return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS); } 

הפונקציה AddEventHandler('sale', 'OnBeforeShipmentSave', 'SelectOptimalStore'); function SelectOptimalStore(\Bitrix\Main\Event $event): \Bitrix\Main\EventResult { $shipment = $event->getParameter('ENTITY'); $order = $shipment->getCollection()->getOrder(); // Получаем регион покупателя из адреса доставки $propertyCollection = $order->getPropertyCollection(); $cityProp = $propertyCollection->getDeliveryLocation(); $cityId = $cityProp ? $cityProp->getValue() : null; if ($cityId) { $optimalStoreId = findNearestStore($cityId); $shipment->setField('STORE_ID', $optimalStoreId); } return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS); } מיושמת באמצעות הטבלה findNearestStore עם סינון לפי מאפיין גיאוגרפי או לפי מיפוי "אזור → מחסן" שנוצר מראש. גישה זו יעילה פי 5 מבחירה ידנית של מחסן על ידי מנהל.

כיצד לקשר שירותי משלוח למחסן אזורי?

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

  • CDEK "מוסקבה" — b_catalog_store (קוד מוסקבה)
  • CDEK "יקטרינבורג" — from_location: 44 (קוד יקטרינבורג)

תנאי התצוגה לשירות מוגדרים באמצעות כללים חנות → הגדרות → כללי משלוח. קישור למחסן:

// Кастомный обработчик доставки с привязкой к складу class RegionalDeliveryHandler extends \Bitrix\Sale\Delivery\Services\Base { public function isCompatible(\Bitrix\Sale\Shipment $shipment): bool { $storeId = $shipment->getField('STORE_ID'); return in_array($storeId, $this->arParams['ALLOWED_STORES']); } protected function calculateConcrete(\Bitrix\Sale\Shipment $shipment): \Bitrix\Sale\Result { $fromCity = $this->getStoreCityCode($shipment->getField('STORE_ID')); return $this->callDeliveryApi($fromCity, $shipment); } } 

מה לעשות עם מלאי במחסנים אזוריים?

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

$storeId = getRegionalStoreId(getCurrentUserCity()); $storeProduct = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['=PRODUCT_ID' => $productId, '=STORE_ID' => $storeId], 'select' => ['AMOUNT'], ])->fetch(); $isAvailable = $storeProduct && $storeProduct['AMOUNT'] > 0; 

אם הפריט אינו זמין במחסן האזורי, אנו מציעים משלוח מהמחסן המרכזי עם זמן ממושך. זה מפחית ביטולי הזמנות ב-15%.

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

  1. צור HL-block לאחסון מיפוי אזור→מחסן עם שדות: CITY_ID, STORE_ID.
  2. אכלס אותו עם התאמות על פי הטבלאות b_catalog_store ו-b_location.
  3. הירשם לאירוע OnBeforeShipmentSave — הקוד למעלה.
  4. בדוק: צור הזמנות לערים שונות, בדוק את STORE_ID במשלוח.
  5. הפעל מטמון מתויג עבור שיטת findNearestStore כדי למנוע עומס על מסד הנתונים בכל בקשה.

מתכון זה נבדק על 10+ פרויקטים. בעיות מתרחשות רק עם מיפוי ערים שגוי — ודא מול טבלת המיקומים של Bitrix.

מה כלול בהגדרת מחסן אזורי?

שלב משך תוצאה
בדיקת ארכיטקטורה נוכחית יום אחד סכמת מחסנים, צווארי בקבוק
פיתוח מיפוי אזור→מחסן 1-2 ימים HL-block או טבלת התאמות
Handler מותאם אישית לבחירת מחסן 2-3 ימים קוד עובד עם שמירת מלאי
הגדרת שירותי משלוח 1-2 ימים מופעי CDEK, דואר רוסי עם from_location נכון
סנכרון 1C 3-5 ימים החלפת מלאי אוטומטית לפי מחסן
בדיקות והדרכה 1-2 ימים תיעוד, העברת גישה

השוואה: לוגיקה מובנית vs פתרון מותאם אישית

פרמטר פונקציונליות מובנית פתרון מותאם אישית
בחירה אוטומטית לפי מיקום לא כן, דרך אירוע OnBeforeShipmentSave
קישור משלוח למחסן רק כלל ידני אוטומטי, דרך handler
תמיכה בשמירת מלאי כן, אך לא מפולח כן, עם התחשבות במלאי אזורי
זמן יישום 0 (מוכן) 3-5 ימים

קנה מידה מותאם אישית יעיל פי 5 מהמובנה עבור רשתות עם 3+ מחסנים.

טעויות נפוצות

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

לוחות זמנים משוערים

תצורה מסגרת זמן
הגדרת מחסן + מיפוי אזור→מחסן 1–2 ימים
בחירת מחסן אוטומטית + שירותי משלוח אזוריים 3–5 ימים
סכמה מלאה עם שמירת מלאי וסנכרון 1C 5–10 ימים

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