כאשר לקוח מבצע הזמנה בחנות מקוונת על 1C-Bitrix, הדבר האחרון שהוא רוצה לחשוב עליו הוא חישוב ידני של עלויות משלוח?
במיוחד כאשר עובדים עם שירותי לוגיסטיקה חלופיים. Ozon Rocket הוא פתרון מודרני המספק גישה לתשתית המרקטפלייס: מחסנים, מרכזי מיון, רשת שליחים, ומעל 7,000 נקודות איסוף ברחבי רוסיה. האינטגרציה דורשת לא רק חיבור API, אלא יישום נכון של מחלקת המשלוח, טיפול ב-webhook, ותרחישי פדיון חלקי. כבר יישמנו אינטגרציה כזו עבור 15 חנויות מקוונות: בכל מקרה, עלויות המשלוח ירדו ב-25–40%, וזמני המשלוח התקצרו פי 2–3. העלות הממוצעת של משלוח דרך Ozon Rocket נמוכה ב-25–40% מזו של הדואר הרוסי, וזמני המשלוח קצרים פי 2–3. זה מאושר על ידי הלקוחות שלנו לאחר אינטגרציה מוצלחת.
כיצד Ozon Rocket מפחית את עלויות המשלוח?
Ozon Rocket מציע ארבע אפשרויות משלוח עיקריות:
- משלוח שליח — עד הדלת, זמן משלוח החל מיום אחד.
- משלוח לנקודות איסוף/ארונות חבילות של Ozon — מעל 7,000 מיקומים ברחבי רוסיה.
- משלוח למחרת — עבור מוסקבה, סנט פטרסבורג וערים מרכזיות.
- פדיון חלקי — הקונה יכול לקבל חלק מההזמנה ולהחזיר את השאר לשליח.
בניגוד לדואר הרוסי, Ozon Rocket מחזיר את העלות מיד דרך API, ללא טבלאות תעריפים ידניות. ובהשוואה ל-SDEK, יש לו יותר נקודות איסוף וזמני משלוח צפויים. לדוגמה, בפרויקט אחד עם 12,000 הזמנות בחודש, אינטגרציית Ozon Rocket הפחיתה את עלויות הלוגיסטיקה ב-34% וקיצרה את זמן המשלוח ברחבי רוסיה מ-5 ל-2 ימים.
כיצד עובד ה-REST API של Ozon Rocket?
Ozon מספק REST API לשותפי אינטגרציה. כתובת בסיס: https://rocket.ozon.ru/api/logistics. אימות: אסימון Bearer, המתקבל דרך מפתח API מלוח השותפים. נקודות קצה עיקריות:
-
POST /v1/calculate— חישוב עלות משלוח -
POST /v1/orders— יצירת משלוח -
GET /v1/orders/{id}— סטטוס משלוח -
GET /v1/pickup-points— רשימת נקודות איסוף -
POST /v1/orders/{id}/cancel— ביטול
ניתן למצוא את המפרט המלא ב-תיעוד הרשמי של Ozon Rocket.
כיצד מיושם מודול המשלוח ב-Bitrix?
מחלקת המשלוח מרחיבה את \Bitrix\Sale\Delivery\Services\Base. בנוסף, אנו מיישמים ממשק לתמיכה בנקודות איסוף: או דרך רכיב מותאם אישית או דרך אגרגטור נקודות איסוף אם הוא כבר קיים בפרויקט. פרמטרים ב-b_sale_delivery_service_params:
-
OZON_API_KEY— מפתח מלוח Ozon Rocket -
SELLER_ID— מזהה מוכר -
DEFAULT_WAREHOUSE_ID— מחסן שולח -
PARTIAL_ACCEPT— אפשר פדיון חלקי (bool)
כיצד לחשב עלות משלוח דרך API?
$calcRequest = [
'from' => ['warehouse_id' => $warehouseId],
'to' => [
'delivery_type' => 'to_address', // или 'to_pickup_point'
'address' => [
'city' => $city,
'street' => $street,
'house' => $house,
],
],
'packages' => [
[
'weight' => $weightGram,
'length' => $lengthMm,
'width' => $widthMm,
'height' => $heightMm,
]
],
'declared_value' => $assessedValue,
];
"}Ozon Rocket מחזיר מספר אפשרויות משלוח עם מחירים וזמנים. ב-$calcRequest = [ 'from' => ['warehouse_id' => $warehouseId], 'to' => [ 'delivery_type' => 'to_address', // или 'to_pickup_point' 'address' => [ 'city' => $city, 'street' => $street, 'house' => $house, ], ], 'packages' => [[ 'weight' => $weightGram, 'length' => $lengthMm, 'width' => $widthMm, 'height' => $heightMm, ]], 'declared_value' => $assessedValue, ]; , אנו בוחרים את האפשרות הנדרשת לפי הגדרות המודול או מציעים לקונה בחירה דרך JavaScript בדף התשלום.
דוגמת חישוב לחבילה במשקל 2 ק"ג
עבור הזמנה במשקל 2 ק"ג, מידות 30x20x15 ס"מ, שנשלחת ממוסקבה לקאזאן באמצעות שליח, Ozon Rocket מחזיר אפשרויות רגילות ואקספרס עם זמני משלוח שונים. עבור פדיון חלקי, המחיר הבסיסי עשוי לעלות.
מה לגבי פדיון חלקי?
אחת התכונות החשובות של Ozon Rocket היא תמיכה בפדיון חלקי. בעת יצירת משלוח, כל פריט בהזמנה מועבר בנפרד:
'items' => [
[
'sku' => $sku,
'name' => $name,
'quantity' => $qty,
'price' => $price,
'declared_price' => $price,
],
// ...
]השליח מתעד אילו פריטים הקונה קיבל. בתשובה מ-Ozon Rocket, מגיע מידע על פריטים שהתקבלו/הוחזרו — אנו מעדכנים את ההזמנה ב-Bitrix: מסירים פריטים שלא התקבלו, מחשבים מחדש את הסכום הכולל, ויוצרים החזרה. לוגיקת הטיפול בפדיון חלקי דורשת הגדרה ב-calculateConcrete() וחיבור למודול התשלום לצורך החזרים נכונים (במקרה של תשלום מראש).
יצירת משלוח שלב אחר שלב
- קבלת נתוני הזמנה מ-Bitrix.
- חלוקת פריטים לחבילות (אם יש מספר חבילות).
- קריאה ל-
'items' => [ [ 'sku' => $sku, 'name' => $name, 'quantity' => $qty, 'price' => $price, 'declared_price' => $price, ], // ... ]עם פרטי הנמען, כתובת, פריטים ועלות. - שמירת
b_sale_orderבמאפיין ההזמנה למעקב עתידי. - רישום webhook לקבלת עדכונים.
$response = $httpClient->post('/v1/orders', [
'seller_order_number' => 'SHOP-' . $bitrixOrderId,
'warehouse_id' => $warehouseId,
'delivery_type' => 'courier',
'recipient' => [
'name' => $recipientName,
'phone' => $phone,
],
'delivery_address' => $address,
'packages' => $packages,
'items' => $items,
'payment_method' => $isPrepaid ? 'prepaid' : 'cash_on_delivery',
'declared_value' => $assessedValue,
]);
$rocketOrderId = $response['order_id']; כיצד לטפל ב-webhooks?
Ozon Rocket שולח webhooks לכתובת הרשומה כאשר הסטטוס משתנה. אנו מאמתים את החתימה בכותרת POST /v1/orders. מיפוי סטטוסים:
| סטטוס Ozon Rocket | סטטוס Bitrix |
|---|---|
rocket_order_id |
הועבר למשלוח |
$response = $httpClient->post('/v1/orders', [ 'seller_order_number' => 'SHOP-' . $bitrixOrderId, 'warehouse_id' => $warehouseId, 'delivery_type' => 'courier', 'recipient' => [ 'name' => $recipientName, 'phone' => $phone, ], 'delivery_address' => $address, 'packages' => $packages, 'items' => $items, 'payment_method' => $isPrepaid ? 'prepaid' : 'cash_on_delivery', 'declared_value' => $assessedValue, ]); $rocketOrderId = $response['order_id']; |
במעבר |
X-Ozon-Signature |
ממתין בנקודת איסוף / שליח בדלת |
created |
נמסר |
in_transit |
פדיון חלקי — נדרש טיפול ידני |
arrived |
הוחזר |
עבור סטטוס delivered, יש צורך לעדכן ידנית את ההזמנה: להסיר פריטים שלא התקבלו ולחשב מחדש את הסכום הכולל.
לוחות זמנים והיקף עבודה
| היקף | הרכב | זמן |
|---|---|---|
| בסיסי: חישוב + הזמנות + סטטוסים | ללא פדיון חלקי | 4–5 ימים |
| + פדיון חלקי | לוגיקת חישוב מחדש של הזמנה + החזרות | +3–4 ימים |
| + מפת נקודות איסוף | HL-block + ווידג'ט | +2–3 ימים |
כמה עולה האינטגרציה?
העלות מחושבת באופן אישי לאחר ביקורת פרויקט. אנו נעריך את החנות שלך תוך יום אחד. צור קשר לייעוץ — נשלח הצעה מסחרית עם לוחות זמנים ועלות מדויקים. הזמן אינטגרציית Ozon Rocket, ואנו נגדיר את מודול המשלוח עם מחזור מלא: מחישוב ועד פדיון חלקי.

