Представьте: менеджер интернет-магазина вручную заполняет данные для доставки в личном кабинете Деловых Линий. На один заказ уходит до 15 минут. При 50 заказах в день — это более 12 часов чистой рутины. Ошибки в адресах, потерянные статусы, пересорт по габаритам — типичная картина без API-интеграции. Мы автоматизируем этот процесс: расчёт стоимости, создание заказов и трекинг — через REST API Деловых Линий. Один из клиентов — магазин мебели — после внедрения сократил время обработки заказа с 15 до 2 минут и снизил операционные затраты на доставку на 15%. Экономия на ручном труде — до $360–520./мес.
Почему важна автоматизация доставки через API?
Без интеграции магазины тратят до 20% рабочего времени на ручную обработку доставки. Деловые Линии — крупнейшая транспортная компания с сетью из 2000+ терминалов. Их API с JWT-авторизацией позволяет гибко управлять отправлениями. Мы выполнили более 30 проектов по интеграции 1С-Битрикс с транспортными компаниями, гарантируем стабильную работу и обновление при изменениях API. Подробнее о протоколе читайте в официальной документации REST API Деловых Линий.
Как автоматизировать доставку через интеграцию с Деловыми Линиями?
Как устроено API Деловых Линий? — интеграция 1с битрикс
Базовый URL: https://api.dellin.ru/v3/. Авторизация двухэтапная: сначала получаем session token через /v3/auth/login.json, затем используем его в заголовке Cookie: session=TOKEN или параметром.
private function getSession(): string { $cacheKey = 'dellin_session_' . md5($this->appKey); $cached = \Bitrix\Main\Data\Cache::createInstance(); if ($cached->startDataCache(3600 * 8, $cacheKey, '/dellin')) { $response = $this->httpPost('/v3/auth/login.json', [ 'appkey' => $this->appKey, 'login' => $this->login, 'password' => $this->password, ]); $session = $response['data']['sessionID'] ?? ''; $cached->endDataCache(['session' => $session]); } return $cached->getVars()['session']; } Сессия живёт 8+ часов. Кэшируем на 8 часов, чтобы не авторизоваться при каждом расчёте. Пример запроса расчёта стоимости:
private function calcCost( string $fromCity, string $toCity, float $weightKg, float $volumeM3 ): float { $response = $this->apiPost('/v3/calculator.json', [ 'appkey' => $this->appKey, 'sessionID' => $this->getSession(), 'delivery' => [ 'deliveryType' => ['type' => 'auto'], 'arrival' => ['variant' => 'address'], 'dispatch' => ['variant' => 'terminal'], ], 'cargo' => [ 'quantity' => 1, 'weight' => $weightKg, 'volume' => $volumeM3, 'totalEnvelopesWeight' => 0, ], 'members' => [ 'from' => ['terminalID' => $this->findTerminalId($fromCity)], 'to' => ['city' => $toCity], ], ]); return (float)($response['data']['price'] ?? 0); } Параметр delivery.dispatch.variant: terminal означает, что магазин сам привезёт груз на терминал. arrival.variant: address — доставка покупателю до двери. Комбинации variant влияют на цену: терминал-терминал дешевле, адрес-адрес дороже.
Поиск терминала по городу
public function findTerminalId(string $cityName): string { $response = $this->apiPost('/v3/public/terminals.json', [ 'appkey' => $this->appKey, ]); foreach ($response['data']['terminals'] ?? [] as $terminal) { if (mb_stripos($terminal['city']['name'], $cityName) !== false) { return $terminal['id']; } } return ''; } Список терминалов большой — кэшируем результат поиска на сутки.
Создание заказа
public function createOrder(\Bitrix\Sale\Shipment $shipment): string { $order = $shipment->getOrder(); $props = $order->getPropertyCollection(); $payload = [ 'appkey' => $this->appKey, 'sessionID' => $this->getSession(), 'delivery' => [ 'deliveryType' => ['type' => 'auto'], 'dispatch' => ['variant' => 'terminal'], 'arrival' => [ 'variant' => 'address', 'address' => [ 'search' => $props->getItemByOrderPropertyCode('ADDRESS')?->getValue(), ], ], ], 'cargo' => $this->buildCargo($shipment), 'members' => [ 'from' => ['terminalID' => $this->getOption('FROM_TERMINAL_ID')], 'to' => [ 'contactPersons' => [[ 'name' => $props->getItemByOrderPropertyCode('FIO')?->getValue(), 'phone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(), ]], ], ], 'payment' => [ 'type' => 'cash', 'payer' => 'receiver', ], ]; $response = $this->apiPost('/v3/orders.json', $payload); return (string)($response['data']['orderID'] ?? ''); } Параметр payment.payer: receiver — доставку оплачивает получатель. sender — отправитель (магазин). Выбор зависит от бизнес-модели магазина.
Трекинг заказов
public function getOrderState(string $orderId): array { $response = $this->apiPost('/v3/orders/state.json', [ 'appkey' => $this->appKey, 'sessionID' => $this->getSession(), 'orders' => [['orderID' => $orderId]], ]); $state = $response['data'][0] ?? []; return [ 'status' => $state['orderState']['name'] ?? '', 'deliveryDate' => $state['deliveryDate'] ?? '', ]; } Деловые Линии не поддерживают вебхуки для трекинга. Агент Битрикс раз в 3–4 часа опрашивает статус активных отправлений.
Какие особенности для крупногабаритных товаров?
Деловые Линии поддерживают паллетные отправления. Для магазинов мебели или строительных материалов нужно разделять отправления на несколько мест с индивидуальными габаритами. Поле cargo.oversizedWeight используется для нестандартных мест (> 80 кг или > 3 м в длину). В одном из проектов интернет-магазина мебели мы столкнулись с проблемой неправильного расчёта габаритов: товары приходили к покупателю с повреждениями. После внедрения интеграции с указанием параметров oversizedWeight и паллетной группировки количество возвратов снизилось на 15%.
Как происходит интеграция: пошаговый процесс?
- Аналитика — изучаем ваш каталог, типы доставки, настройки 1С-Битрикс.
- Проектирование — выбираем методы API, определяем маппинг полей.
- Реализация — пишем код расчёта, создания заказов, трекинга.
- Тестирование — проверяем на тестовых заказах, замеряем время ответа.
- Деплой — выкатываем на боевой, настраиваем агенты.
- Документация и обучение — передаём инструкции, обучаем менеджеров.
Что входит в работу по интеграции?
- Регистрация приложения в личном кабинете Деловых Линий.
- Настройка авторизации и кэширования сессии.
- Реализация расчёта стоимости на странице корзины.
- Создание заказов из административной панели.
- Трекинг с уведомлениями о смене статуса.
- Техническая поддержка 30 дней после запуска.
| Доставка | Вариант | Средняя стоимость (условная) | Сроки |
|---|---|---|---|
| Терминал → Терминал | Самовывоз | Низкая | 3–5 дн |
| Терминал → Адрес | До двери | Средняя | 3–5 дн |
| Адрес → Адрес | Курьер | Высокая | 2–4 дн |
Сколько времени занимает интеграция?
| Состав работ | Срок |
|---|---|
| Авторизация + расчёт + маппинг терминалов | 3–4 дня |
| + Создание заказов + трекинг | +2 дня |
| + Габаритный расчёт + паллеты | +1 день |
Какие типичные ошибки допускают при интеграции?
Распространённые косяки и как их избежать
- Игнорирование кэширования сессии — частые авторизации приводят к блокировке.
- Неправильный маппинг городов — терминал не находится.
- Отсутствие обработки ошибок API — заказ не создаётся без уведомления. Например, при превышении лимитов запросов API возвращает код 429, который нужно обрабатывать с повторной попыткой.
- Забывают про oversized параметры для тяжёлых грузов.
Закажите интеграцию сегодня — получите бесплатную консультацию и оценку проекта. У нас более 5 лет опыта в интеграции 1С-Битрикс с транспортными компаниями. Свяжитесь с нами, чтобы обсудить детали вашего магазина.







