הגדרת הזמנה אוטומטית מספקים ב-1C-Bitrix
תארו לעצמכם מנהל שמבלה 3 שעות ביום במעקב ידני אחר רמות המלאי על פני 80,000 פריטים. פריט נגמר, אבל הזמנת חידוש לא מתבצעת — מכירות אבודות ומשלוחי חירום על חשבונכם. או ההפך: הזמנה "בערך" קושרת הון חוזר. אנחנו פותרים זאת באמצעות הזמנה אוטומטית המבוססת על CommerceML ומנגנונים מקוריים של Bitrix.
הארכיטקטורה שלנו מבטלת את הגורם האנושי: סוכן בודק את המלאי, משווה אותו לנקודת ההזמנה מחדש, ויוצר הזמנה. ההזמנה נשלחת דרך API, דוא"ל או EDI — בהתאם ליכולות הספק. לאורך שנים של הטמעות, צמצמנו את זמן הרכש ב-70% עבור לקוחות קמעונאות והפצה.
בעיות שאנחנו פותרים
תרחיש טיפוסי: זמן אספקה ממוצע הוא 10 ימים, אבל נקודת ההזמנה מחדש לא מוגדרת — עד שהסחורה מגיעה, כבר נגמר לכם המלאי. או ההפך: נקודת ההזמנה מחדש גבוהה מדי, וקושרת 40% מלאי ביטחון במקום 20%. בקרה ידנית מובילה לשגיאות:
- מעקב ידני אחר אלפי פריטים אורך עד 3 שעות ביום.
- פורמטי שליחה שונים (דוא"ל, API, EDI) עבור כל ספק.
- הזמנות כפולות עקב תקלות אינטגרציה.
אנחנו מטפלים בכל בעיה מבחינה ארכיטקטונית: נקודות הזמנה מחדש חזויות, סוכן עם הגנת NOT EXISTS, ומתאמי שליחה גמישים.
איך פועל סוכן ההזמנה מחדש
ה-AutoReorderAgent רץ לפי לוח זמנים (שעתי או יומי) ומבצע שאילתה: הוא בוחר מוצרים שמלאי נוכחי שלהם נמוך מנקודת ההזמנה מחדש ושעבורם אין הזמנה פעילה עם אותו ספק. תנאי ה-NOT EXISTS הוא קריטי — הוא מונע כפילויות גם אם משימת cron נכשלת.
function AutoReorderAgent(): string { $db = \Bitrix\Main\Application::getConnection(); $result = $db->query(" SELECT rs.product_id, rs.reorder_qty, rs.supplier_id, SUM(sp.AMOUNT) AS current_stock FROM bl_reorder_settings rs LEFT JOIN b_catalog_store_product sp ON sp.PRODUCT_ID = rs.product_id WHERE rs.active = 1 GROUP BY rs.product_id, rs.reorder_qty, rs.supplier_id HAVING current_stock < rs.reorder_point AND NOT EXISTS ( SELECT 1 FROM bl_supplier_orders so WHERE so.product_id = rs.product_id AND so.status IN ('pending', 'sent', 'confirmed') ) "); while ($row = $result->fetch()) { SupplierOrderService::create( $row['supplier_id'], $row['product_id'], $row['reorder_qty'] ); } return 'AutoReorderAgent();'; } למה להשתמש בנקודות הזמנה מחדש חזויות?
מספר קבוע פשוט מתעלם מעונתיות וממגמות. אנחנו משתמשים בממוצע מכירות ב-90 הימים האחרונים, מכפילים בזמן האספקה, ומוסיפים 20% מלאי ביטחון. הנוסחה מחושבת מחדש אוטומטית פעם בשבוע באמצעות סוכן. תוצאות: דיוק חיזוי של 85–90% והפחתה של 30% במלאי הביטחון.
איך אנחנו מבטלים כפילויות הזמנות
כפילויות הן בעיה נפוצה באוטומציה שנבנית עצמאית. אנחנו מיישמים הגנה כפולה:
- בשאילתת ה-SQL של הסוכן — תנאי ה-
function AutoReorderAgent(): string { $db = \Bitrix\Main\Application::getConnection(); $result = $db->query(" SELECT rs.product_id, rs.reorder_qty, rs.supplier_id, SUM(sp.AMOUNT) AS current_stock FROM bl_reorder_settings rs LEFT JOIN b_catalog_store_product sp ON sp.PRODUCT_ID = rs.product_id WHERE rs.active = 1 GROUP BY rs.product_id, rs.reorder_qty, rs.supplier_id HAVING current_stock < rs.reorder_point AND NOT EXISTS ( SELECT 1 FROM bl_supplier_orders so WHERE so.product_id = rs.product_id AND so.status IN ('pending', 'sent', 'confirmed') ) "); while ($row = $result->fetch()) { SupplierOrderService::create( $row['supplier_id'], $row['product_id'], $row['reorder_qty'] ); } return 'AutoReorderAgent();'; }(הזמנה חדשה לא נוצרת בזמן שהקודמת נמצאת בסטטוסNOT EXISTS,pendingאוsent). - לוגיקת חסימה: אם ספק לא מאשר הזמנה תוך 24 שעות, הסוכן לא יוצר כפילות אלא מודיע למנהל.
אנחנו גם מתחזקים יומן של כל הפעולות (בהתאם להנחיות הרשמיות ליצירת סוכנים ב-Bitrix).
איך אנחנו עושים את זה: מקרה בוחן אמיתי
הלקוח שלנו — רשת של 15 חנויות חלקי רכב עם קטלוג של 80,000 פריטים ו-200 ספקים. הם נזקקו לאוטומציה של הזמנות דרך API עבור 10 הספקים המובילים ודרך דוא"ל עבור השאר. תכננו שלוש טבלאות:
-
confirmed— ספי הזמנה לכל מוצר המקושר לספק. -
bl_reorder_settings— היסטוריית הזמנות עם סטטוסים. -
bl_supplier_orders— שיטת השליחה והתצורה.
הסוכן יוצר רשומה ב-bl_supplier_shipping_methods, ולאחר מכן bl_supplier_orders בוחר את המתאם המתאים (API/דוא"ל/EDI) ושולח. לאחר שהספק מאשר, הסטטוס מתעדכן דרך webhook או ידנית. כשהסחורה מגיעה, המנהל יוצר מסמך קבלה — רמות המלאי מתעדכנות אוטומטית.
תוצאה: מנהלים הפסיקו לבזבז 3 שעות ביום על הזמנות; שיעור המלאי החסר ירד מ-12% ל-2%. הפרויקט החזיר את ההשקעה תוך 3 חודשים בזכות הפחתת השבתות ועלויות משלוחי חירום.
מה כלול בעבודה
| רכיב | תיאור |
|---|---|
| ניתוח | איסוף דרישות, ביקורת על מלאי וספקים קיימים |
| עיצוב | סכימת מסד נתונים, ארכיטקטורת סוכן ומתאמים |
| פיתוח | טבלאות, סוכן, מחלקות שליחה, ממשק ניהול |
| בדיקות | בדיקות כפילויות, מקרי קצה (מלאי אפס, שגיאות API) |
| פריסה | הגדרת לוח זמנים לסוכן, מיגרציות, תיעוד |
| הדרכה | הוראות למנהלים על אישור הזמנות וקבלה |
זמן משוער: בין 5 ל-20 ימים בהתאם למספר הספקים ושיטות האינטגרציה. התמחור נקבע לאחר הניתוח. צרו קשר — נעריך את הפרויקט שלכם תוך יום אחד.
השוואה: הזמנה ידנית מול אוטומטית
| פרמטר | הזמנה ידנית | הזמנה אוטומטית |
|---|---|---|
| זמן המושקע ברכישות ליום | 3-4 שעות | 15 דקות (פיקוח) |
| שיעור מלאי חסר | 12-15% | 2-3% |
| עלויות משלוחי חירום | 5-7% מהמחזור | 0.5-1% |
| שיעור שגיאות בהזמנות | 5-8% | <1% |
טעויות נפוצות בהתקנה עצמית
- היעדר נעילת הזמנות כפולות: הסוכן יוצר הזמנה חדשה בזמן שהקודמת עדיין ממתינה. - סף ללא התחשבות בזמן אספקה: עיכובים גורמים למלאי חסר. - התעלמות משגיאות API: ההזמנה לא נשלחת, אבל הסטטוס נשאר "נשלח". אנחנו מוסיפים רישום וניסיונות חוזרים.אנחנו מבטיחים פעולה יציבה: לאחר ההשקה, אנו מספקים 30 ימי תמיכה. לצוות שלנו יש ניסיון של 10+ שנים עם Bitrix. קבלו ייעוץ כדי ללמוד כיצד אוטומציה יכולה לפתור את אתגרי הרכש שלכם.







