При интернет-торговле в Беларуси подключение локальной службы доставки Автолайтэкспресс к 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 дня, оставьте заявку — мы проведём аудит вашего магазина бесплатно. Для консультации и заказа пишите — расскажем детали. Получите бесплатную оценку интеграции уже сегодня!







