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







