Інтеграція 1С-Бітрікс з агрегатором доставок Dalli
Інтернет-магазин втрачає замовлення, якщо не може доставити товар у день оформлення. За статистикою, 30% замовлень у Москві потребують такої швидкості, а без експрес-доставки магазини втрачають до 15% покупців. Dalli Service — агрегатор і логістичний оператор, який вирішує це завдання. Але вбудованих засобів Бітрікс для роботи з Dalli немає. Ми реалізували десятки таких інтеграцій і знаємо, як зробити процес безшовним. Наш досвід — 10+ років у розробці на Бітрікс і 50+ успішних проєктів з Dalli. Економія на доставці за рахунок оптимізації тарифів сягає значних сум з кожної посилки.
Чому Dalli кращий за прямі контракти з перевізниками?
Підключення Dalli через наш модуль замість прямих інтеграцій з кожним перевізником скорочує витрати на розробку в 3–4 рази. Ви отримуєте єдиний API для доставки: кур'єрська служба Dalli та партнери об'єднані в одному протоколі. Не потрібно погоджувати окремі договори з СДЕК, Boxberry та іншими — все реалізовано через Dalli. Згідно з документацією, агрегатор відповідає за розподіл замовлень між перевізниками та контроль термінів. Dalli API
Як працює експрес-доставка в день замовлення?
Експрес-доставка — ключова особливість Dalli для Москви та Санкт-Петербурга. Працює при виконанні умов:
- Замовлення прийняте до певного часу (зазвичай до 14:00–15:00)
- Склад відправника знаходиться в зоні покриття
- Товар фізично готовий до відправки
У calculateConcrete() перевіряємо поточний час: якщо date('H') >= $cutoffHour — експрес-доставка сьогодні недоступна, пропонуємо доставку на наступний день.
$currentHour = (int) date('H'); $cutoffHour = 14; // Дата дедлайну з налаштувань модуля if ($currentHour >= $cutoffHour) { $deliveryDate = date('d.m.Y', strtotime('+1 day')); $label = 'Доставка завтра, ' . $deliveryDate; } else { $deliveryDate = date('d.m.Y'); $label = 'Доставка сьогодні, ' . $deliveryDate; } Що надає Dalli API і як його підключити?
Dalli API — REST, авторизація за токеном. Документація на порталі dalli.ru для партнерів. Основні операції:
- Розрахунок вартості доставки
- Створення заявок (одинарних і пакетних)
- Отримання статусів
- Список ПВЗ
- Отримання етикеток (PDF)
- Реєстрація вебхуків
Dalli працює переважно за моделлю: магазин передає заявки через API, Dalli розподіляє між своєю службою та партнерами залежно від адреси та термінів.
Модуль доставки в Бітрікс
Клас успадковує \Bitrix\Sale\Delivery\Services\Base. Параметри в b_sale_delivery_service_params:
-
DALLI_TOKEN— токен API -
SENDER_ID— ID точки відправки (оформлюється при підключенні) -
DELIVERY_MODE—express(день-в-день / наступний день) абоstandard -
COD_ALLOWED— чи дозволений післяплатіж
Розрахунок вартості
У calculateConcrete() передаємо адресу, габарити, оголошену цінність. Dalli повертає варіанти з різними термінами (стандарт, експрес) і цінами:
$calcResponse = $httpClient->post('/v1/calculate', [ 'sender_id' => $senderId, 'address' => $recipientAddress, 'weight' => $weightGram, 'dimensions' => $dimensions, 'declared_value' => $declaredValue, 'delivery_types' => ['standard', 'express'], ]); foreach ($calcResponse['variants'] as $variant) { // $variant['type'], $variant['price'], $variant['delivery_date'] } Якщо магазин пропонує два способи доставки (стандарт і експрес), створюємо два екземпляри модуля з різними DELIVERY_MODE в налаштуваннях.
Створення заявки
$orderPayload = [ 'sender_id' => $senderId, 'external_id' => 'SHOP-' . $bitrixOrderId, 'delivery_type' => $deliveryMode, 'recipient' => [ 'name' => $name, 'phone' => $phone, 'address' => $address, ], 'packages' => [[ 'weight' => $weightGram, 'dimensions' => $dimensions, 'items' => $items, ]], 'declared_value' => $declaredValue, 'cash_on_delivery'=> $codAmount, 'comment' => $comment, ]; Відповідь: order_id в системі Dalli. Етикетку отримуємо через GET /orders/{id}/label.
Пакетне створення заявок
Якщо замовлення накопичуються протягом дня, Dalli підтримує POST /orders/batch — створення кількох заявок одним запитом. Менеджер натискає «Відправити в Dalli» в адміністративній частині Бітрікс — скрипт збирає всі замовлення зі статусом «Готовий до відправки» і відправляє пакетом.
Статуси та вебхуки
Вебхуки: Dalli надсилає сповіщення на URL мерчанта. Реєструємо в особистому кабінеті. Маппінг:
| Статус Dalli | Бітрікс |
|---|---|
accepted |
Прийнято |
on_the_way |
В дорозі |
delivered |
Доставлено |
partially_delivered |
Частковий викуп |
returned |
Повернення |
failed |
Помилка доставки |
Які завдання вирішує інтеграція з Dalli?
Інтеграція вирішує три ключові завдання: швидкість підключення нового перевізника, автоматизація розрахунків і синхронізація статусів. Без неї менеджери вручну формують заявки на сайті Dalli, помиляються в адресах і забувають відстежувати повернення. Наш модуль виключає людський фактор.
Типові помилки при інтеграції:
- Неправильний маппінг статусів: якщо не налаштувати
failed, замовлення зависають у «В дорозі». - Відсутність обробки timeout: API Dalli відповідає до 15 секунд, на великих каталогах розрахунок може падати по таймауту. Додайте повторні спроби з таймаутом 20 секунд.
- Ігнорування коду післяплати: якщо не передати
cash_on_delivery, Dalli не розраховує комісію, і реальна вартість доставки розходиться з очікуваною.
Що входить в інтеграцію під ключ
Ми надаємо повний пакет: розробка модуля доставки, налаштування API, тестування всіх сценаріїв, навчання менеджерів, документація. Гарантія на роботу — 3 місяці. Підтримуємо версії PHP 8.1+ і Бітрікс 22.0+. Сертифіковані спеціалісти з досвідом реалізують інтеграцію без збоїв.
Строки
| Масштаб | Склад | Строк |
|---|---|---|
| Базова інтеграція | Розрахунок + заявки + статуси | 3–4 дні |
| + Експрес-логіка | Контроль часу, два способи | +1–2 дні |
| + Пакетне відправлення | Інтерфейс в адмінці + batch API | +2 дні |
| + ПВЗ | Завантаження + віджет | +2 дні |
Отримайте консультацію — ми розрахуємо вартість і строки під ваш проєкт. Зв'яжіться з нами: вже інтегрували Dalli для 50+ магазинів, оцінимо ваш проєкт безкоштовно.







