אינטגרציה של 1C-Bitrix עם אגרגטור המשלוחים Dalli
חנות מקוונת מאבדת הזמנות אם היא לא יכולה לספק את המוצר באותו היום. על פי סטטיסטיקות, 30% מההזמנות במוסקבה דורשות מהירות כזו, וללא משלוח אקספרס, חנויות מאבדות עד 15% מהלקוחות. שירות Dalli הוא אגרגטור ומפעיל לוגיסטי שפותר בעיה זו. אבל ל-Bitrix אין אינטגרציה מובנית עם Dalli. יישמנו עשרות אינטגרציות כאלה ואנחנו יודעים איך להפוך את התהליך לחלק. הניסיון שלנו: 10+ שנים בפיתוח Bitrix ו-50+ פרויקטים מוצלחים עם Dalli. החיסכון במשלוח עקב אופטימיזציה של תעריפים יכול להגיע לסכומים משמעותיים לכל חבילה.
למה Dalli עדיף על חוזים ישירים עם חברות שילוח
חיבור Dalli דרך המודול שלנו במקום אינטגרציות ישירות עם כל חברת שילוח מפחית את עלויות הפיתוח פי 3–4. אתה מקבל API אחד למשלוח: שירות השליחים של Dalli והשותפים משולבים בפרוטוקול אחד. אין צורך לנהל משא ומתן על חוזים נפרדים עם CDEK, Boxberry וכו'—הכל מיושם דרך Dalli. על פי התיעוד, האגרגטור מטפל בחלוקת ההזמנות בין חברות השילוח ומנטר מועדים. Dalli API
איך עובד משלוח אקספרס באותו היום
משלוח אקספרס הוא תכונה מרכזית של Dalli עבור מוסקבה וסנקט פטרבורג. הוא פועל בתנאים הבאים:
- ההזמנה מתבצעת לפני שעה מסוימת (בדרך כלל עד 14:00–15:00)
- המחסן של השולח נמצא באזור הכיסוי
- המוצר מוכן פיזית למשלוח
ב-calculateConcrete(), אנו בודקים את השעה הנוכחית: אם date('H') >= $cutoffHour, משלוח אקספרס היום אינו זמין; אנו מציעים משלוח ליום הבא.
$currentHour = (int) date('H');
$cutoffHour = 14; // Дата дедлайна из настроек модуля
if ($currentHour >= $cutoffHour) {
$deliveryDate = date('d.m.Y', strtotime('+1 day'));
$label = 'Доставка завтра, ' . $deliveryDate;
} else {
$deliveryDate = date('d.m.Y');
$label = 'Доставка сегодня, ' . $deliveryDate;
} מה מספק Dalli API ואיך להתחבר אליו
Dalli API הוא REST, אימות באמצעות טוקן. התיעוד זמין בפורטל dalli.ru לשותפים.
פעולות עיקריות:
- חישוב עלות משלוח
- יצירת הזמנות (בודדות ובכמות)
- קבלת סטטוסים
- רשימת נקודות איסוף
- קבלת תוויות (PDF)
- רישום Webhooks
Dalli עובד בעיקר במודל: החנות שולחת בקשות דרך API, Dalli מחלק אותן בין השירות שלו לבין שותפים בהתאם לכתובת ולמועדים.
מודול משלוח ב-Bitrix
המחלקה יורשת מ-$currentHour = (int) date('H'); $cutoffHour = 14; // Дата дедлайна из настроек модуля if ($currentHour >= $cutoffHour) { $deliveryDate = date('d.m.Y', strtotime('+1 day')); $label = 'Доставка завтра, ' . $deliveryDate; } else { $deliveryDate = date('d.m.Y'); $label = 'Доставка сегодня, ' . $deliveryDate; } . פרמטרים ב-\Bitrix\Sale\Delivery\Services\Base:
-
b_sale_delivery_service_params— טוקן API -
DALLI_TOKEN— מזהה נקודת שולח (מתקבל בעת הרישום) -
SENDER_ID—DELIVERY_MODE(אותו יום / יום הבא) אוexpress -
standard— האם תשלום במזומן בעת מסירה מותר
חישוב עלות
ב-COD_ALLOWED, אנו מעבירים כתובת, מידות, ערך מוצהר. Dalli מחזיר אפשרויות עם מועדים שונים (רגיל, אקספרס) ומחירים:
$calcResponse = $httpClient->post('/v1/calculate', [
'sender_id' => $senderId,
'address' => $recipientAddress,
'weight' => $weightGram,
'dimensions' => $dimensions,
'declared_value' => $declaredValue,
'delivery_types' => ['standard', 'express'],
]);
foreach ($calcResponse['variants'] as $variant) {
// $variant['type'], $variant['price'], $variant['delivery_date']
}אם החנות מציעה שתי שיטות משלוח (רגיל ואקספרס), אנו יוצרים שני מופעים של המודול עם calculateConcrete() שונה בהגדרות.
יצירת הזמנה
$orderPayload = [
'sender_id' => $senderId,
'external_id' => 'SHOP-' . $bitrixOrderId,
'delivery_type' => $deliveryMode,
'recipient' => [
'name' => $name,
'phone' => $phone,
'address' => $address,
],
'packages' => [[
'weight' => $weightGram,
'dimensions' => $dimensions,
'items' => $items,
]],
'declared_value' => $declaredValue,
'cash_on_delivery'=> $codAmount,
'comment' => $comment,
];
תגובה: $calcResponse = $httpClient->post('/v1/calculate', [ 'sender_id' => $senderId, 'address' => $recipientAddress, 'weight' => $weightGram, 'dimensions' => $dimensions, 'declared_value' => $declaredValue, 'delivery_types' => ['standard', 'express'], ]); foreach ($calcResponse['variants'] as $variant) { // $variant['type'], $variant['price'], $variant['delivery_date'] } במערכת Dalli. התווית מתקבלת דרך DELIVERY_MODE.
יצירת הזמנות בכמות
אם הזמנות מצטברות במהלך היום, Dalli תומך ב-$orderPayload = [ 'sender_id' => $senderId, 'external_id' => 'SHOP-' . $bitrixOrderId, 'delivery_type' => $deliveryMode, 'recipient' => [ 'name' => $name, 'phone' => $phone, 'address' => $address, ], 'packages' => [[ 'weight' => $weightGram, 'dimensions' => $dimensions, 'items' => $items, ]], 'declared_value' => $declaredValue, 'cash_on_delivery'=> $codAmount, 'comment' => $comment, ]; — יצירת מספר הזמנות בבקשה אחת. המנהל לוחץ על "שלח ל-Dalli" בלוח הניהול של Bitrix — הסקריפט אוסף את כל ההזמנות עם סטטוס "מוכן למשלוח" ושולח אותן בכמות.
סטטוסים ו-Webhooks
Webhooks: Dalli שולח הודעות לכתובת ה-URL של הסוחר. רשום אותם בחשבון האישי. מיפוי:
| סטטוס Dalli | Bitrix |
|---|---|
order_id |
התקבל |
GET /orders/{id}/label |
במעבר |
POST /orders/batch |
נמסר |
accepted |
פדיון חלקי |
on_the_way |
הוחזר |
delivered |
שגיאת מסירה |
אילו בעיות פותר האינטגרציה עם Dalli?
האינטגרציה פותרת שלוש בעיות מרכזיות: מהירות חיבור חברת שילוח חדשה, אוטומציה של חישובים וסנכרון סטטוסים. בלעדיה, מנהלים יוצרים הזמנות ידנית באתר Dalli, עושים טעויות בכתובות ושוכחים לעקוב אחר החזרות. המודול שלנו מבטל את הגורם האנושי.
טעויות אינטגרציה אופייניות:
- מיפוי סטטוסים שגוי: אם
partially_deliveredאינו מוגדר, הזמנות נתקעות ב"במעבר". - חוסר טיפול ב-timeout: Dalli API מגיב עד 15 שניות; בקטלוגים גדולים, חישובים עלולים לעבור timeout. הוסף ניסיונות חוזרים עם timeout של 20 שניות.
- התעלמות מקוד תשלום במזומן בעת מסירה: אם
returnedלא מועבר, Dalli לא מחשב את העמלה, ועלות המשלוח בפועל שונה מהצפוי.
מה כלול באינטגרציה במפתח פתוח
אנו מספקים חבילה מלאה: פיתוח מודול המשלוח, הגדרת API, בדיקת כל התרחישים, הדרכת מנהלים, תיעוד. אחריות ל-3 חודשים. תמיכה ב-PHP 8.1+ וב-Bitrix 22.0+. מומחים מוסמכים עם ניסיון מיישמים את האינטגרציה ללא תקלות.
לוחות זמנים
| היקף | רכיבים | משך |
|---|---|---|
| אינטגרציה בסיסית | תעריפים + הזמנות + סטטוסים | 3–4 ימים |
| + לוגיקת אקספרס | בקרת זמן, שתי שיטות | +1–2 ימים |
| + שליחה בכמות | ממשק ניהול + API בכמות | +2 ימים |
| + נקודות איסוף | ייבוא + ווידג'ט | +2 ימים |
קבל ייעוץ — אנו נחשב את העלות ולוח הזמנים עבור הפרויקט שלך. צור קשר: כבר שילבנו את Dalli עבור 50+ חנויות; אנו נעריך את הפרויקט שלך.

