חנות מקוונת על 1C-Bitrix מאבדת הזמנות בגלל משלוח לא אוטומטי: מנהלים מבזבזים עד 15 דקות על חישוב עלויות ומעקב אחר סטטוסים באופן ידני. שגיאות קלט מגיעות ל-5%, ולקוחות מתלוננים על חוסר מידע. חיבור Yandex Delivery דרך Delivery API v2 פותר את הבעיות הללו, אך היישום דורש תשומת לב לפרטים: יצירת הזמנה דו-שלבית, פער בין עלות מקדימה לעלות בפועל, וטיפול נכון ב-webhooks. אנחנו צוות עם ניסיון של 10+ שנים ב-Bitrix ומבצעים אינטגרציות מסוג זה במפתח מלא תוך 3-5 ימים. צרו קשר כדי להעריך את הפרויקט שלכם. בממוצע, האינטגרציה מחזירה את עצמה תוך 2-3 חודשים על ידי הפחתת עבודה ידנית: עם 100 הזמנות בחודש, החיסכון מגיע ל-$68–98 על משכורת מנהל, כפי שמוצג בחישובי פרויקט טיפוסיים.
איך לשלב את Yandex Delivery עם 1C-Bitrix?
שיטות המשלוח המובנות ב-Bitrix אינן תומכות בחישוב עלויות דינמי מ-Yandex Delivery, יצירת הזמנות אוטומטית ומעקב אחר סטטוסים בזמן אמת. צריך להעביר הזמנות ידנית לחשבון האישי של Yandex, מה שגורם לשגיאות טיפוסיות: קואורדינטות נקודת איסוף שגויות, דילוג על שלב האישור, או חוסר טיפול ב-webhooks. בניגוד להחלפה ידנית, API v2 מאיץ את עיבוד ההזמנות פי 60 ומבטל לחלוטין שגיאות קלט. כפי שנאמר במסמכים הרשמיים: יצירת הזמנה דו-שלבית היא קריטית לשיבוץ שליח.
איך עובדת יצירת הזמנה דו-שלבית
Yandex Delivery דורש אישור מפורש לאחר היצירה. גישה חד-שלבית משאירה את ההזמנה בסטטוס new, והשליח לא משובץ. יצירה דו-שלבית מפחיתה את הסיכון להזמנות שלא מולאו בחצי בהשוואה לגישה חד-שלבית. בואו נסתכל על דוגמה:
public function createAndAcceptClaim(\Bitrix\Sale\Shipment $shipment): string
{
$order = $shipment->getOrder();
$claim = $this->apiPost('/claims?request_id=' . uniqid(), [
'items' => $this->buildItems($shipment),
'route_points' => $this->buildRoutePoints($shipment),
'comment' => 'Заказ #' . $order->getId(),
'callback_properties' => ['callback_url' => $this->getOption('WEBHOOK_URL')],
]);
$claimId = $claim['id'];
// Без этого вызова курьер не будет назначен
$this->apiPost('/claims/accept?claim_id=' . $claimId, [
'version' => $claim['version'],
]);
return $claimId;
}public function createAndAcceptClaim(\Bitrix\Sale\Shipment $shipment): string { $order = $shipment->getOrder(); $claim = $this->apiPost('/claims?request_id=' . uniqid(), [ 'items' => $this->buildItems($shipment), 'route_points' => $this->buildRoutePoints($shipment), 'comment' => 'Заказ #' . $order->getId(), 'callback_properties' => ['callback_url' => $this->getOption('WEBHOOK_URL')], ]); $claimId = $claim['id']; // Без этого вызова курьер не будет назначен $this->apiPost('/claims/accept?claim_id=' . $claimId, [ 'version' => $claim['version'], ]); return $claimId; } הוא מפתח אידמפוטנטי: בקשה חוזרת עם אותו ערך מחזירה את ההזמנה הקיימת. זה קריטי לאמינות האינטגרציה.
שגיאות טיפוסיות באינטגרציה עם Yandex Delivery
- דילוג על שלב
request_id: ההזמנה נשארת ב-accept, השליח לא משובץ. - קואורדינטות נקודת איסוף שגויות: העלות מחושבת בצורה לא נכונה.
- חוסר טיפול ב-webhook לביטול: ההזמנה נשארת "במעבר".
- התעלמות משדה
newבאישור: ה-API מחזיר שגיאה 409.
מדריך אינטגרציה שלב אחר שלב
- קבלו אסימון OAuth מ-Yandex Passport.
- צרו handler למשלוח שמרחיב את
version. - יישמו את המתודה
\Bitrix\Sale\Delivery\Services\Baseלחישוב עלויות. - יישמו מתודות ליצירת הזמנות ואישור.
- הגדירו את
calculateConcreteעבור webhooks. - בדקו את כל התרחישים בסביבת בדיקה.
הגדרת Webhooks לסטטוסים
Yandex Delivery תומך בהודעות push אל callback_url. סטטוסי מחזור חיים:
| סטטוס | משמעות |
|---|---|
new |
ההזמנה נוצרה |
accepted |
אושרה |
performer_found |
נמצא שליח |
pickuped |
הסחורה נאספה מהמחסן |
delivery_arrived |
הגיע לנמען |
delivered |
נמסרה |
returning |
החזרה |
cancelled |
בוטלה |
Webhooks מגיעים לכתובת ה-callback שצוינה בעת יצירת ההזמנה. אנו ממליצים ליישם endpoint שמקבל בקשת POST עם גוף JSON ומעדכן את סטטוס ההזמנה ב-Bitrix. זה מאפשר הודעה אוטומטית ללקוח.
מידע נוסף על webhooks
כל webhook מכיל אובייקט עם שדות `id`, `status`, `updated_ts`. עבדו אותם באופן אידמפוטנטי: אם הסטטוס כבר מוגדר, התעלמו מהחזרה.השוואה בין API v2 להחלפה ידנית
| קריטריון | API v2 | קלט ידני במערכת |
|---|---|---|
| זמן לכל הזמנה | 2-5 שניות | 3-5 דקות |
| שגיאות העברה | 0% | עד 5% |
| סטטוסים בזמן אמת | כן | לא |
| אפשרות למשלוח אקספרס | כן | מוגבל |
API v2 מאיץ את עיבוד ההזמנות פי 60 ומבטל לחלוטין שגיאות קלט.
מקרה מבחן: משלוח אקספרס במוסקבה
הלקוח שלנו הוא חנות קוסמטיקה; המטרה הייתה להציג "משלוח תוך שעתיים" עבור הזמנות לפני 15:00. יישמנו שתי מתודות: רגילה (יום למחרת) ואקספרס (2-3 שעות, עם תשלום נוסף). אקספרס זמין בהזמנה לפני 15:00 שעון מוסקבה וסכום הזמנה מ-$14–20. הבדיקה מיושמת במתודת isCompatible() של ה-handler. ב-webhook של סטטוס cancelled, אנו מודיעים למנהל ומציעים את המשבצת הפנויה הקרובה. תוצאה: ההמרה עלתה ב-18% תוך חודש.
מה כלול
- פיתוח handler למשלוח עם מתודות לחישוב עלויות ויצירת הזמנות
- הגדרת webhooks לעדכוני סטטוס אוטומטיים
- בדיקת כל התרחישים (הצלחה, שגיאה, ביטול)
- תיעוד אינטגרציה והוראות למנהלים
- הדרכת עובדים על פעולות משלוח
- תמיכה לאחר השחרור למשך 30 יום
לוחות זמנים
| היקף | זמן |
|---|---|
| חישוב עלויות + יצירת הזמנה + אישור | 3-4 ימים |
| + Webhooks לסטטוסים | +יום אחד |
| + אקספרס/רגיל עם תנאי זמן | +1-2 ימים |
| + ממשק מעקב ללקוח | +יומיים |
בקשו ייעוץ על אינטגרציה מהמהנדסים שלנו. קבלו הצעה לפרויקט שלכם. אנו מבטיחים איכות ועמידה בלוחות זמנים.

