Интеграция 1С-Битрикс со службой доставки Автолайтэкспресс (Беларусь)
Автолайтэкспресс — белорусская курьерская компания, специализирующаяся на доставке по Беларуси. Преимущество перед крупными федеральными операторами — более гибкие условия для малого бизнеса и хорошее покрытие белорусских областных центров. API предоставляется партнёрам.
API Автолайтэкспресс
Компания предоставляет REST API с авторизацией через токен. Базовый URL уточняется при подключении — обычно формата https://api.avtolight.by/v1. Авторизация через заголовок Authorization: Bearer <token>.
Основные методы:
-
POST /calculate— расчёт стоимости -
POST /order— создание заказа -
GET /order/{id}— статус заказа -
GET /points— список точек выдачи
Расчёт стоимости и создание заказа
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);
}
Трекинг
public function getOrderStatus(string $orderId): array
{
return $this->apiGet("/order/{$orderId}") ?? [];
}
Агент Битрикс опрашивает статус раз в 3 часа для активных заказов. Статусы компании специфичны — маппинг согласовывается с менеджером Автолайтэкспресс при подключении.
Кейс
Интернет-магазин бытовой техники, Минск. Автолайтэкспресс используется как опция быстрой городской доставки (в пределах Минска — день в день, в области — 1–2 дня). Параллельно работает Белпочта для доставки по всей Беларуси. Маршрутизация заказов: если адрес в Минске — предлагаем оба варианта, если за пределами — только Белпочта/СДЭК-БЕЛ.
Сроки
| Состав | Срок |
|---|---|
| Расчёт + создание заказа | 3–4 дня |
| + Список точек выдачи | +2 дня |
| + Трекинг + уведомления | +2 дня |







