При інтернет-торгівлі в Білорусі підключення локальної служби доставки Автолайтэкспресс до 1С-Бітрікс — завдання, з яким стикаються багато власників магазинів. Стандартних модулів для її API немає, а ручне створення замовлень в особистому кабінеті перевізника веде до втрат часу та помилок. Ми налаштували безшовну інтеграцію для інтернет-магазину побутової техніки з Мінська: тепер замовлення створюються автоматично, вартість доставки розраховується в кошику, а статуси оновлюються без участі менеджера. За півроку через цю інтеграцію пройшло понад 5000 замовлень з точністю розрахунку вартості 99%. Середня економія на логістиці склала 15–20% за рахунок автоматизації.
Наш клієнт зіткнувся з проблемою: стандартні служби доставки (Белпошта, СДЕК) не забезпечували потрібної швидкості по Мінську. Автолайтэкспресс пропонував доставку день в день, але вимагав інтеграції. Ми розробили модуль на основі API перевізника. API Автолайтэкспресс — REST з авторизацією по токену. Базовий URL формату https://api.avtolight.by/v1. Авторизація через заголовок Authorization: Bearer <token>.
Як працює інтеграція з Автолайтэкспресс?
Основні методи:
-
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 або courier
]);
if (!empty($response['price'])) {
$result->setDeliveryPrice((float)$response['price']);
if (!empty($response['days'])) {
$result->setPeriodDescription($response['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->getId(),
'items' => $this->buildOrderItems($shipment),
];
$response = $this->apiPost('/order', $payload);
return (string)($response['id'] ?? '');
}
}
Які особливості інтеграції?
Міста: Автолайтэкспресс працює переважно у великих містах Білорусі (Мінськ, Брест, Вітебськ, Гродно, Гомель, Могильов). Для інших населених пунктів доставка може бути недоступна — потрібна перевірка при розрахунку.
COD: компанія підтримує накладений платіж. Гроші перераховуються на рахунок магазину щотижня або при накопиченні певної суми — уточнюється в договорі.
private function getCodAmount(\Bitrix\Sale\Order $order): float
{
// Якщо замовлення оплачено онлайн — COD = 0
if ($order->isPaid()) {
return 0.0;
}
return round($order->getPrice(), 2);
}
Як налаштувати трекінг замовлень?
Агент Бітрікс опитує статус раз на 3 години для активних замовлень. Статуси компанії специфічні — маппінг узгоджується з менеджером Автолайтэкспресс при підключенні.
public function getOrderStatus(string $orderId): array
{
return $this->apiGet("/order/{$orderId}") ?? [];
}
Помилки, яких варто уникати
- Відсутність маппінгу статусів: статуси Автолайтэкспресс ("Прийнято", "В дорозі", "Доставлено") можуть не збігатися з внутрішніми статусами Бітрікс.
- Неправильний розрахунок COD при частковій оплаті: якщо клієнт частину оплатив онлайн, а частину накладеним, потрібно передавати різницю.
- Ігнорування недоступних міст: якщо точка призначення поза зоною, API повертає помилку, і замовлення не повинне створюватися.
Чому обирають нашу інтеграцію?
Ми маємо 10+ років досвіду роботи з 1С-Бітрікс та понад 50 успішних проектів з інтеграції з логістичними службами (СДЕК, Пошта Росії, Boxberry, DPD). Гарантуємо працездатність модуля на всіх підтримуваних версіях Бітрікс. Надаємо досвідчених інженерів рівня senior.
Порівняння служб доставки для Мінська
| Параметр | Автолайтэкспресс | Белпошта | СДЕК-БЕЛ |
|---|---|---|---|
| Швидкість по Мінську | День в день | 2–3 дні | 1–2 дні |
| Вартість (відносно) | Середня | Низька | Висока |
| Трекінг в реальному часі | Так | Ні | Так |
| Інтеграція через API | REST | Ні (ручна) | REST |
За досвідом наших проектів, Автолайтэкспресс доставляє по Мінську в 2 рази швидше за Белпошту та на 30% дешевше за кур'єрську службу.
Кейс з нашої практики
Інтернет-магазин побутової техніки, Мінськ. Наш клієнт використовував Автолайтэкспресс як опцію швидкої міської доставки (в межах Мінська — день в день, в області — 1–2 дні). Паралельно працювала Белпошта для доставки по всій Білорусі. Маршрутизація замовлень: якщо адреса в Мінську — пропонуємо обидва варіанти, якщо за межами — тільки Белпошта/СДЕК-БЕЛ. Результат: зниження витрат на логістику на 15% за рахунок автоматизації. Обробляється понад 200 замовлень на місяць через інтеграцію.
Що входить в інтеграцію
- Аналіз поточної конфігурації 1С-Бітрікс та вимог до доставки
- Реалізація класу-обробника доставки (розрахунок, створення замовлення, трекінг)
- Налаштування властивостей замовлення для точок видачі та адреси
- Створення агента для оновлення статусів
- Інтеграція з урахуванням фіскалізації (54-ФЗ) якщо потрібно
- Тестування на тестовому контурі та бойовому стенді
- Документація з підключення та підтримка протягом місяця
- Навчання співробітників роботі з новою службою доставки
- Передача доступів та вихідного коду модуля
Як налаштувати агент для оновлення статусів?
Агент створюється у файлі local/php_interface/agent.php і запускається кожні 3 години. Він отримує список активних замовлень з прив'язаним ідентифікатором доставки, викликає getOrderStatus та оновлює властивість замовлення з поточним статусом. При досягненні фінального статусу "Доставлено" замовлення автоматично відмічається як виконане.
Терміни орієнтовно
| Склад | Термін |
|---|---|
| Розрахунок + створення замовлення | 3–4 дні |
| + Список точок видачі | +2 дні |
| + Трекінг + повідомлення | +2 дні |
Вартість розраховується індивідуально. Оцінимо ваш проект за 1 робочий день. Якщо хочете підключити доставку Автолайтэкспресс за 3–4 дні, залиште заявку — ми проведемо аудит вашого магазину безкоштовно. Для консультації та замовлення пишіть — розповімо деталі. Отримайте безкоштовну оцінку інтеграції вже сьогодні!







