בעת ניהול מסחר אלקטרוני בבלארוס, חיבור שירות המשלוחים המקומי Avtolightexpress ל-1C-Bitrix הוא משימה שבעלי חנויות רבים מתמודדים איתה.
אין מודולים סטנדרטיים ל-API שלו, ויצירה ידנית של הזמנות בחשבון האישי של המוביל מובילה לבזבוז זמן ולשגיאות.
הקמנו אינטגרציה חלקה עבור חנות מקוונת למוצרי חשמל לבית ממינסק: כעת הזמנות נוצרות אוטומטית, עלות המשלוח מחושבת בעגלת הקניות, והסטטוסים מתעדכנים ללא מעורבות מנהל.
במהלך חצי שנה עברו דרך האינטגרציה הזו יותר מ-5,000 הזמנות עם דיוק חישוב עלות של 99%. החיסכון הממוצע בלוגיסטיקה הסתכם ב-15–20% בזכות האוטומציה.
הלקוח שלנו התמודד עם בעיה: שירותי המשלוחים הסטנדרטיים (Belpochta, CDEK) לא סיפקו את המהירות הנדרשת בתוך מינסק. Avtolightexpress הציעה משלוח באותו יום אך דרשה אינטגרציה. פיתחנו מודול המבוסס על ה-API של המוביל.
ה-API של Avtolightexpress הוא REST עם הרשאה מבוססת טוקן. פורמט כתובת הבסיס הוא https://api.avtolight.by/v1. הרשאה באמצעות הכותרת Authorization: Bearer
כיצד פועלת האינטגרציה עם Avtolightexpress?
שיטות עיקריות:
POST /calculate— חישוב עלותPOST /order— יצירת הזמנהGET /order/{id}— סטטוס הזמנהGET /points— רשימת נקודות איסוף
חישוב עלות ויצירת הזמנה
ניישם מחלקת מטפל בחישוב היורשת מ-\Bitrix\Sale\Delivery\Services\Base. השיטה calculateConcrete בונה בקשה עם הפרמטרים: עיר שולח/נמען, משקל, מידות, סכום ההזמנה וסוג המשלוח. אם התגובה מכילה מחיר, נקבע את עלות המשלוח והתקופה.
class AvtolightHandler extends \Bitrix\Sale\Delivery\Services\Base
{
protected function calculateConcrete(
\Bitrix\Sale\Shipment $shipment
): \Bitrix\Sale\Delivery\CalculationResult {
$result = new \Bitrix\Sale\Delivery\CalculationResult();
$order = $shipment->getOrder();
$props = $order->getPropertyCollection();
$response = $this->apiPost('/calculate', [
'city_from' => $this->getOption('SENDER_CITY'),
'city_to' => $this->getOrderCity($props),
'weight' => max($shipment->getWeight() / 1000, 0.1),
'length' => (float)$this->getOption('DEFAULT_LENGTH', 20),
'width' => (float)$this->getOption('DEFAULT_WIDTH', 20),
'height' => (float)$this->getOption('DEFAULT_HEIGHT', 10),
'sum' => round($order->getPrice()),
'type' => $this->getOption('DELIVERY_TYPE', 'pvz'), // pvz or courier
]);
if (!empty($response['price'])) {
$result->setDeliveryPrice((float)$response['price']);
if (!empty($response['days'])) {
$result->setPeriodDescription($response['days'] . ' days');
}
}
return $result;
}
public function createOrder(\Bitrix\Sale\Shipment $shipment): string
{
$order = $shipment->getOrder();
$props = $order->getPropertyCollection();
$payload = [
'external_id' => 'bitrix_' . $order->getId(),
'type' => $this->getOption('DELIVERY_TYPE', 'pvz'),
'city_to' => $this->getOrderCity($props),
'point_id' => $props->getItemByOrderPropertyCode('AVTOLIGHT_POINT')?->getValue(),
'name' => $props->getItemByOrderPropertyCode('FIO')?->getValue(),
'phone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(),
'address' => $props->getItemByOrderPropertyCode('ADDRESS')?->getValue(),
'weight' => max($shipment->getWeight() / 1000, 0.1),
'sum' => round($order->getPrice()),
'cod' => $this->getCodAmount($order),
'comment' => 'Order #' . $order->getId(),
'items' => $this->buildOrderItems($shipment),
];
$response = $this->apiPost('/order', $payload);
return (string)($response['id'] ?? '');
}
}
מהם הפרטים הספציפיים של האינטגרציה?
ערים: Avtolytekspress פועלת בעיקר בערים הגדולות של בלארוס (מינסק, ברסט, ויטבסק, גרודנו, גומל, מוגילב). ביישובים אחרים, ייתכן שהמשלוח לא יהיה זמין — יש לבדוק זאת במהלך החישוב.
COD: החברה תומכת בתשלום במזומן בעת מסירה. הכספים מועברים לחשבון החנות מדי שבוע או לאחר שצטבר סכום מסוים — כמפורט בחוזה.
private function getCodAmount(\Bitrix\Sale\Order $order): float { // If the order is paid online — COD = 0
if ($order->isPaid()) {
return 0.0;
}
return round($order->getPrice(), 2);
}
כיצד להגדיר מעקב הזמנות?
סוכן ה-Bitrix בודק את הסטטוס כל 3 שעות עבור הזמנות פעילות. הסטטוסים של החברה ספציפיים — המיפוי מתואם עם מנהל Avtolaytekspress במהלך ההטמעה.
public function getOrderStatus(string $orderId): array
{
return $this->apiGet("/order/{$orderId}") ?? [];
}
טעויות שיש להימנע מהן
- היעדר מיפוי סטטוסים: ייתכן שסטטוסים של Autolightexpress ("Accepted", "In transit", "Delivered") לא יתאימו לסטטוסים הפנימיים של Bitrix.
- חישוב שגוי של COD עבור תשלום חלקי: אם הלקוח שילם חלק באופן מקוון וחלק במזומן בעת המסירה, יש להעביר את ההפרש.
- התעלמות מערים לא זמינות: אם נקודת היעד נמצאת מחוץ לאזור הכיסוי, ה-API מחזיר שגיאה, ואסור ליצור את ההזמנה.
למה לבחור באינטגרציה שלנו?
יש לנו יותר מ-10 שנות ניסיון עם 1C-Bitrix ויותר מ-50 פרויקטים מוצלחים של אינטגרציה עם שירותי לוגיסטיקה (CDEK, Russian Post, Boxberry, DPD). אנחנו מבטיחים שהמודול עובד בכל גרסאות Bitrix הנתמכות. אנחנו מספקים מהנדסים מנוסים ברמת senior.
השוואת שירותי משלוחים במינסק
| פרמטר | Avtolaytekspress | Belpochta | CDEK-BEL |
|---|---|---|---|
| מהירות בתוך מינסק | באותו יום | 2–3 ימים | 1–2 ימים |
| עלות (יחסית) | בינונית | נמוכה | גבוהה |
| מעקב בזמן אמת | כן | לא | כן |
| אינטגרציית API | REST | לא (ידני) | REST |
בהתבסס על ניסיון הפרויקט שלנו, Avtolaytekspress מספקת משלוחים בתוך מינסק פי 2 מהר יותר מ-Belpochta וזולה ב-30% משירות שליחים.
מקרה בוחן מהפרקטיקה שלנו
חנות מקוונת למוצרי חשמל לבית, מינסק. הלקוח שלנו השתמש ב-Avtolitexpress כאפשרות למשלוח מהיר בעיר (בתוך מינסק — באותו יום, באזור — 1–2 ימים). Belpochta פעלה במקביל למשלוחים בכל רחבי בלארוס.
ניתוב הזמנות: אם הכתובת במינסק — אנו מציעים את שתי האפשרויות, אם מחוץ — רק Belpochta/CDEK-BEL. התוצאה: הפחתה של 15% בעלויות הלוגיסטיקה באמצעות אוטומציה. יותר מ-200 הזמנות בחודש מעובדות דרך האינטגרציה.
מה כלול באינטגרציה
- ניתוח תצורת 1C-Bitrix הנוכחית ודרישות המשלוח
- מימוש מחלקת מטפל המשלוחים (חישוב, יצירת הזמנה, מעקב)
- הגדרת מאפייני הזמנה עבור נקודות איסוף וכתובות
- יצירת סוכן לעדכון סטטוסים
- אינטגרציה תוך התחשבות בפיסקליזציה (54-FZ) במידת הצורך
- בדיקות בסביבת הבדיקות ובסביבת הייצור
- תיעוד החיבור ותמיכה למשך חודש
- הדרכת עובדים לעבודה עם שירות המשלוחים החדש
- העברת פרטי גישה וקוד המקור של המודול
כיצד להגדיר סוכן לעדכון סטטוסים?
הסוכן נוצר בקובץ local/php_interface/agent.php ופועל כל 3 שעות. הוא מאחזר רשימה של הזמנות פעילות עם מזהה משלוח משויך, קורא ל-getOrderStatus, ומעדכן את מאפיין ההזמנה בסטטוס הנוכחי.
כאשר מגיעים לסטטוס הסופי "נמסר", ההזמנה מסומנת אוטומטית כהושלמה.
לוחות זמנים משוערים
| היקף | לוח זמנים |
|---|---|
| חישוב + יצירת הזמנה | 3–4 ימים |
| + רשימת נקודות איסוף | +2 ימים |
| + מעקב + התראות | +2 ימים |
העלות מחושבת באופן אישי. אנו נעריך את הפרויקט שלך בתוך יום עסקים אחד. אם ברצונך לחבר את משלוחי Autolaytexpress בתוך 3–4 ימים, שלח בקשה — נבצע ביקורת של החנות שלך.
לייעוץ ולהזמנה, כתוב לנו — נשתף את הפרטים. קבל הערכת אינטגרציה עוד היום!

