מדוע מתרחשת אי-סנכרון מלאי בעת אינטגרציה עם WMS
אי-סנכרון מלאי בין 1C-Bitrix ל-WMS משמעו הפסדים כספיים ישירים. הזמנה מתבצעת באתר, נקבעת שריון, אך WMS אינו יודע על כך. עד לשלב הליקוט, המוצר אינו על המדף — הלקוח מקבל סירוב. ללא אינטגרציה נאותה, אתם מפסידים עד 3% מההכנסות עקב מכירת יתר ועיכובי משלוח.
ההפסדים יכולים להגיע לעלות המחושבת לאחר ביקורת בשנה. אנו מבצעים אינטגרציה של 1C-Bitrix עם כל WMS, תוך הבטחת העברה אטומית והיעדר הזמנות "תקועות". העבודה מבוצעת על ידי מומחים מוסמכים באמצעות תבניות מוכחות. צרו קשר לקבלת הערכת הפרויקט שלכם.
מה בדיוק צריך לסנכרן
מלאי ומלאי זמין
WMS הוא מקור האמת לזמינות פיזית. Bitrix מקבל מלאי ומעדכן את b_catalog_product (שדות QUANTITY, QUANTITY_RESERVED). תדירות הסנכרון קריטית: עם 200+ הזמנות ביום, עיכוב של 15 דקות כבר יוצר מכירת יתר. ההפסדים יכולים להגיע לעלות המחושבת לאחר ביקורת מדי חודש.
הזמנות
הזמנה חדשה מ-Bitrix → WMS לשריון וליקוט. סטטוסי ליקוט מ-WMS → Bitrix לעדכון סטטוס ההזמנה עבור הלקוח. אטומיות חשובה כאן: ההזמנה או מתקבלת על ידי WMS או שלא — העברות "תלויות" אינן מקובלות.
קטלוג מוצרים
נומנקלטורה, ברקודים, יחידות מידה, אריזות. בדרך כלל נתוני האב מנוהלים ב-ERP/1C, ו-WMS ו-Bitrix מסתנכרנים ממנו.
איזו ארכיטקטורת אינטגרציה לבחור
אין חיבור API ישיר "Bitrix ↔ WMS" — לכל WMS יש API משלו או תמיכה בפורמטים EDI/XML. בחירת הארכיטקטורה תלויה בדרישות האמינות והשהיה. Webhook עם תור אירועים מהיר פי 3–5 מ-polling ומספק השהיה בשניות לעומת דקות. נשווה את הגישות העיקריות:
| גישה | השהיה | אמינות | מורכבות |
|---|---|---|---|
| Polling (בדיקות מתוזמנות) | מרווח ה-polling (1-15 דק') | בינונית (אובדן נתונים בכשל סוכן) | נמוכה |
| Webhook + תור אירועים | שניות | גבוהה (התור חוצץ) | בינונית |
| דרך broker של 1C | דקות | גבוהה מאוד (שליטה ב-1C) | גבוהה |
Polling מיושם באמצעות handler ב-\Bitrix\Main\EventManager או סוכן מותאם אישית. Webhook/תור אירועים: WMS שולח אירוע בכל שינוי מלאי. Bitrix מקבל דרך נקודת קצה REST ותור (RabbitMQ, Redis Streams).
דרך broker של 1C: אם 1C:Enterprise נמצא בשרשרת, החילוף עובר דרכו: Bitrix ↔ 1C (סטנדרטי CommerceML / REST) ↔ 1C ↔ WMS.
כיצד ליישם טכנית את האינטגרציה בצד של Bitrix
המלאי מתעדכן באמצעות \Bitrix\Catalog\ProductTable::update() או ברמה נמוכה CCatalogProduct::Update(). בעת העדכון, חשוב לבטל את המטמון: \Bitrix\Catalog\Catalog::clearProductCache($productId). ללא זה, האתר מציג מלאי ישן למשך 30–60 דקות נוספות.
הזמנה בעת יצירת הזמנה: האובייקט \Bitrix\Sale\Order מגדיר אוטומטית הזמנה דרך \Bitrix\Sale\Basket::setField('RESERVE_QUANTITY'). אם האינטגרציה מעדכנת מלאי ישירות ב-DB תוך עקיפת ה-API — ההזמנות נשברות. יש לעבוד תמיד דרך ה-API הציבורי של המודול sale.
כדי להעביר הזמנות ל-WMS, אנו מתחברים לאירוע OnSaleOrderSaved או OnSaleStatusOrderChange — בהתאם לטriger. האירוע מעובד באופן סינכרוני, ולכן קריאות API ארוכות מועברות לתור.
כיצד להימנע מכפילות הזמנות
כפילות מתרחשת כאשר הרשת אינה יציבה ו-Bitrix חוזר על הבקשה לאחר פסק זמן. הפתרון: בקשות אידמפוטנטיות עם ORDER_ID מ-Bitrix כמפתח חיצוני ב-WMS — שליחה חוזרת מעדכנת את הרשומה הקיימת ואינה יוצרת רשומה חדשה. אנו תמיד מיישמים מנגנון זה כדי למנוע הפסדים כספיים מכפילויות.
מדוע אטומיות ההעברה חשובה
תארו לעצמכם: הזמנה מועברת ל-WMS, אך ל-WMS לא היה זמן לקבל אותה, ו-Bitrix כבר סימן אותה כ"נשלחה". המוצר שמור פיזית, אך נשאר תלוי במערכת. אטומיות מבטיחה שההזמנה תועבר ותתקבל במלואה, או שלא תועבר כלל. זה מושג באמצעות תורים טרנזקציוניים ואישורים מ-WMS. זה הסטנדרט שלנו.
אילו שגיאות אופייניות מתרחשות
עדכונים ישירים בבסיס הנתונים תוך עקיפת ה-API של מודול sale — המלאי נשבר. התעלמות מאינוולידציה של מטמון לאחר עדכוני מלאי. אין טיפול בזמני פסק זמן בבקשות מרוכזות. אי-התאמות ביחידות מידה (יחידות מול משטחים) — ללא טבלת המרה, המלאי שגוי. נפתר באמצעות ספריית המרה בשכבת האינטגרציה.
בעת עדכון מלאי מרוכז, WMS שולח 10,000 פריטים בבקשה אחת; Bitrix מעבד במנות עם set_time_limit() ו-\Bitrix\Main\Application::getInstance()->getDbConnection()->startTransaction().
כמה זמן לוקחת האינטגרציה
| תרחיש | לוח זמנים |
|---|---|
| אינטגרציה פשוטה: עדכוני מלאי מתוזמנים | 2–4 שבועות |
| חילופי הזמנות ומלאי דו-כיווניים | 4–8 שבועות |
| אינטגרציה דרך 1C broker עם לוגיקה מורכבת | 2–4 חודשים |
העלות מחושבת באופן פרטני — תלויה ב-WMS API הספציפי, בהיקף הנומנקלטורה ובדרישות בזמן אמת. אנו מתחילים בסקירה של התהליכים הנוכחיים והתיעוד הטכני של ה-WMS. צרו קשר כדי לקבל לוחות זמנים מדויקים והצעת מחיר.
מה כלול באינטגרציה
- ביקורת של תהליכי המחסן הנוכחיים ו-WMS API.
- תכנון ארכיטקטורת אינטגרציה (polling/webhook/1C broker).
- פיתוח מודולי החלפה בצד Bitrix.
- יישום אידמפוטנטיות ואטומיות.
- הגדרת תור (RabbitMQ/Redis במידת הצורך).
- ביטול מטמון ומטמון מתויג.
- בדיקות תחת עומסי ייצור (oversell, timeouts).
- תיעוד, הדרכת צוות, תמיכה לאחר השקה.
הזמינו אינטגרציה במפתח — נכין תוכנית מפורטת ולוח זמנים. אחריות על העבודה — 12 חודשים.

