האם נתקלתם במצב שבו לאחר משלוח במויסקלד, המלאי בביטריקס נשאר קפוא ולקוח מזמין פריט שאינו במלאי? או שמודיפיקציות של מוצרים מכפילות את עצמן בכל סנכרון? בעיות אופייניות של אינטגרציית 1C-Bitrix Moysklad — חוסר סנכרון מלאי, מודיפיקציות שאבדו, שגיאות במשלוחים חלקיים. הניסיון שלנו: למעלה מ-6 שנים, סיפקנו יותר מ-50 פרויקטים, כל אחד פותר אתגרי מיפוי וסנכרון בעומס גבוה. אנו מציעים אחריות לשנה על כל עבודת האינטגרציה. אנו משתמשים בסוכנים, וובהוקים ומטפלים מותאמים אישית כדי לשמור על יציבות האינטגרציה גם עם 1000+ הזמנות ביום. ערימת הטכנולוגיות שלנו: PHP 8.1, Bitrix ORM, Moysklad REST API, MySQL עם אינדקס על MOYSKLAD_ID. ללא ארכיטקטורה נכונה, סנכרון עלול להישבר עקב מגבלות API (45 בקשות/שנייה בתוכנית החינמית, 100 בתשלום), מה שגורם לחסימה של 5 דקות. אנו מפחיתים זאת עם אצירת בקשות וניסיונות חוזרים.
בעיות שאנו פותרים
סנכרון מודיפיקציות. בביטריקס, SKU חיים ב-b_catalog_sku; במויסקלד, הם variant. ללא טבלת מיפוי, כל ייבוא יוצר כפילויות. אנו שומרים את המיפוי במאפיין בלוק המידע MOYSKLAD_ID או בטבלת custom_moysklad_mapping נפרדת כדי לבטל התנגשויות.
משלוחים חלקיים. כאשר מתרחש משלוח חלקי, סטטוס ההזמנה בביטריקס חייב להפוך ל"נשלח חלקית", לא "הושלם". אנו מטפלים בכך באמצעות וובהוק של Moysklad על אירוע demand: השוואת פריטי משלוח והזמנה, ולאחר מכן עדכון הסטטוס. בלעדיו, הנהלת החשבונות נשברת.
מגבלות API. 45 בקשות/שנייה בחינם, 100 בתשלום. לעדכונים המוניים (1000+ פריטים), אנו מאצרים בקשות ומוסיפים usleep(100000). אחרת, מתרחשת נעילה של 5 דקות.
למה סנכרון מודיפיקציות הוא החלק הקשה ביותר
ב-1C-Bitrix, וריאציות מוצר מאוחסנות ב-b_catalog_sku ומקושרות למוצר האב דרך ה-SKU IBLOCK_ID. במויסקלד, הם אובייקטים של variant עם הפניה ל-product. הבעיה נוצרת בטעינה הראשונית: יש למפות נכון את variant.id לווריאציית הביטריקס ID.
ללא טבלת מיפוי, כל ריצת סנכרון יוצרת כפילויות. אנו שומרים את המיפוי במאפיין בלוק המידע MOYSKLAD_ID (או בטבלת custom_moysklad_mapping נפרדת).
כדי לעדכן מלאי לווריאציות: קבלו variant.id → מצאו במיפוי את offer.ID → עדכנו b_catalog_product:
\Bitrix\Catalog\ProductTable::update($offerBitrixId, [
'QUANTITY' => $stockData['stock'],
'QUANTITY_RESERVED' => $stockData['reserve'],
]);
\Bitrix\Catalog\Catalog::clearProductCache($offerBitrixId);
כיצד לטפל נכון במשלוחים חלקיים
הזמנה חדשה בביטריקס → \Bitrix\Catalog\ProductTable::update($offerBitrixId, [ 'QUANTITY' => $stockData['stock'], 'QUANTITY_RESERVED' => $stockData['reserve'], ]); \Bitrix\Catalog\Catalog::clearProductCache($offerBitrixId); במויסקלד. שדות מינימליים נדרשים:
-
customerorder— הפניה לארגון המוכר -
organization— קונה (צד שכנגד), ממופה לפי אימייל -
agent— פריטי שורה עם כמות והפניות ל-positions/variant -
product,vatEnabled— חייבים להתאים להגדרות הארגון
משלוח חלקי הוא תרחיש ששובר אינטגרציות פשוטות. הזמנה של 5 פריטים, 3 נשלחו. Moysklad יוצר vatIncluded עם 3 פריטי שורה המקושרים ל-demand. סטטוס ההזמנה בביטריקס חייב להיות "נשלח חלקית", לא "הושלם". אנו מטפלים בכך באמצעות וובהוק של Moysklad על יצירת customerorder — השוואת demand עם demand.positions והגדרת הסטטוס הנכון בביטריקס.
אילו מדדים האינטגרציה משפרת?
אינטגרציה עם Moysklad מפחיתה את זמן עיבוד ההזמנות ב-60%, מבטלת הזנת מלאי ידנית ומפחיתה שגיאות משלוח ל-2%. פרויקט טיפוסי מפחית עבודה ידנית ב-70%. וובהוקים מעדכנים נתונים תוך 1–3 שניות, בעוד סוכנים רצים כל 15 דקות — וובהוקים מהירים פי 900 מסוכנים לעדכוני סטטוס. עלויות אינטגרציה טיפוסיות נעות בין $2,000 ל-$10,000 בהתאם למורכבות, ולקוחות מדווחים על הפחתה של 70% בעבודה ידנית, חיסכון של עד $50,000 בשנה.
שיטות סנכרון: וובהוקים מול סוכנים
| שיטה | זמן השהיה | עומס | מקרה שימוש |
|---|---|---|---|
| וובהוקים | 1–3 שניות | נמוך | משלוחים בעצימות גבוהה |
| סוכנים | 5–15 דקות | בינוני | קטלוגים גדולים |
וובהוקים של Moysklad
Moysklad תומך בוובהוקים לאירועים: customerorder.positions, CREATE, UPDATE על כל ישות. הרשמה:
POST /notification/webhook
{
"entityType": "customerorder",
"action": "UPDATE",
"url": "https://your-bitrix-site.ru/api/moysklad/webhook/"
}בצד הביטריקס, צרו בקר (המרחיב את DELETE) או מטפל פשוט של POST /notification/webhook { "entityType": "customerorder", "action": "UPDATE", "url": "https://your-bitrix-site.ru/api/moysklad/webhook/" } . עליו להחזיר HTTP 200 תוך 3 שניות — אחרת Moysklad ינסה שוב.
הגדרת וובהוק שלב אחר שלב
- צרו בקר בביטריקס לטיפול בבקשות Moysklad.
- הירשמו לאירועים דרך
\Bitrix\Main\Engine\Controller. - במטפל, אמתו את שלמות הנתונים ועדכנו ישויות.
- הגדירו רישום לוגים והתראות שגיאה.
מה כלול
- ביקורת תוכנית מלאי ומחסן
- הגדרת טבלת מיפוי
- פיתוח תרחישי סנכרון (מלאי, הזמנות, וובהוקים)
- בדיקות בסביבות staging וייצור
- תיעוד למנהלים
- הדרכת צוות על האינטגרציה
- חודש ראשון של תמיכה לאחר ההשקה
הערכות זמנים
| תרחיש | משך |
|---|---|
| סנכרון מלאי חד-כיווני | 1–2 שבועות |
| החלפת הזמנות ומלאי דו-כיוונית | 3–6 שבועות |
| סנכרון מלא עם וובהוקים ומשלוחים חלקיים | 6–10 שבועות |
העלות נקבעת באופן אישי לאחר ניתוח המלאי, תוכנית המחסן ותהליכי העסק שלכם. קבלו ייעוץ — נעריך את הפרויקט שלכם ביום אחד. למידע נוסף על Moysklad REST API (https://dev.moysklad.ru/doc/api/remap/1.2/).

