Інтеграція 1С-Бітрікс зі службою доставки Dostavista
Покупець оформлює замовлення о 18:30, а кур'єр приїжджає лише наступного дня до обіду? Причина — ручне створення заявок у службі доставки. Менеджер витрачає 15 хвилин на заповнення даних: адреса, вага, контакти. Помилка в номері телефону — і кур'єр не додзвонюється. Інтеграція 1С-Бітрікс з Dostavista через REST API виключає людський фактор і прискорює доставку до 1–2 годин. Ми, команда сертифікованих бітрікс-розробників з 5+ років досвіду та понад 50 успішних проєктів, пропонуємо впровадження під ключ. В середньому проєкт займає 3–6 днів залежно від складності.
Чому інтеграція з Dostavista вигідна для інтернет-магазину?
Ручне створення заявок на доставку призводить до затримок, помилок і втрати клієнтів. Автоматизація через REST API Dostavista дозволяє скоротити час доставки — заявка йде кур'єру за секунди після підтвердження замовлення. Виключити помилки — адреси та контакти передаються автоматично. Підвищити лояльність — покупець бачить статус і місцезнаходження кур'єра в реальному часі. API Dostavista кращий за SOAP-інтеграції з громіздкими XML-схемами: REST-запити легші, документація прозоріша, а час відповіді в 2–3 рази нижчий.
Принцип роботи API Dostavista
Dostavista надає REST API. Авторизація — за токеном в заголовку X-Authorizationtoken. Основні методи:
-
POST /api/business/v1/orders— створити заявку на доставку -
GET /api/business/v1/orders/{id}— отримати статус заявки -
DELETE /api/business/v1/orders/{id}— скасувати заявку -
GET /api/business/v1/couriers/{id}/location— координати кур'єра
Заявка містить точки маршруту (масив points): точка 0 — звідки забрати (склад/магазин), точки 1..N — адреси доставки покупців. Одне замовлення Dostavista може містити кілька точок доставки — це зручно для пакетних відправок.
Модуль доставки в Бітрікс
Служба доставки підключається через клас, що успадковує \Bitrix\Sale\Delivery\Services\Base. Ключові методи:
-
calculateConcrete()— розраховує вартість доставки. ВикликаєPOST /api/business/v1/orders/calculate-priceз адресою звідки/куди та вагою. -
createDelivery()— створює реальну заявку при підтвердженні замовлення менеджером або автоматично при зміні статусу. - Обробник
OnSaleStatusOrder— хук на зміну статусу замовлення вb_sale_order.
Параметри модуля зберігаються в b_sale_delivery_service_params: API_TOKEN, SHOP_POINT_ADDRESS (адреса складу), AUTO_CREATE (створювати заявку автоматично).
Розрахунок вартості доставки
$response = $httpClient->post( 'https://robot.dostavista.ru/api/business/v1/orders/calculate-price', [ 'matter' => 'Товар з магазину', 'weight_kg' => $weightKg, 'points' => [ ['address' => $shopAddress], [ 'address' => $deliveryAddress, 'contact_person' => ['phone' => $phone], ], ], ], ['X-Authorizationtoken' => $apiToken] ); $price = $response['order']['payment_amount']; Відповідь містить payment_amount — суму до сплати (у місцевій валюті). Якщо адресу не визначено або вона виходить за зону покриття, API повертає помилку — обробляємо як «доставка недоступна».
Як автоматизувати створення заявок в Бітрікс?
Заявка створюється або автоматично при виборі покупцем способу доставки та підтвердженні замовлення, або вручну менеджером з адміністративної частини. Другий варіант кращий для магазинів, де потрібна перевірка наявності перед відправкою.
У b_sale_order_props зберігаємо DOSTAVISTA_ORDER_ID — ідентифікатор заявки в системі Dostavista. Він потрібний для:
- відстеження статусу заявки (polling або webhook)
- скасування заявки при скасуванні замовлення в Бітрікс
- передачі покупцю посилання для трекінгу кур'єра
Статуси та синхронізація
Dostavista підтримує вебхуки: при зміні статусу заявки система робить POST-запит на вказаний URL. Налаштовується в особистому кабінеті. На стороні Бітрікс створюємо обробник, який мапить статуси Dostavista на статуси замовлення:
| Статус Dostavista | Статус замовлення в Бітрікс |
|---|---|
awaiting_executor |
Передано в доставку |
active |
Кур'єр у дорозі |
completed |
Доставлено |
canceled |
Скасовано |
failed |
Помилка доставки |
Якщо вебхуки недоступні (немає білої IP), реалізуємо polling: агент Бітрікс раз на 5–10 хвилин опитує статус активних заявок через GET /api/business/v1/orders/{id}.
Трекінг кур'єра
Dostavista повертає в заявці поле courier.latitude/courier.longitude при активній доставці. Для магазинів, яким потрібно показувати покупцеві положення кур'єра на карті, реалізуємо AJAX-ендпоінт на стороні Бітрікс — він прокидює запит до Dostavista API і віддає координати.
Терміни
| Масштаб | Склад | Термін |
|---|---|---|
| Базова інтеграція | Розрахунок вартості + створення заявки | 3–4 дні |
| + Автостворення + статуси | Хук на статус + мапінг + polling | 5–6 днів |
| + Трекінг кур'єра | AJAX-ендпоінт + віджет на сайті | +2 дні |
Що входить в роботу
Ми надаємо повний цикл послуг: аналіз логістичних процесів, налаштування API-токенів та прав доступу, розробка кастомного модуля доставки з урахуванням специфіки магазину, реалізація обробників статусів (вебхуки або polling), створення AJAX-віджета трекінгу на карті, тестування в продакшні, документація та навчання менеджерів. Гарантуємо стабільну роботу інтеграції та оперативну підтримку після запуску. Якщо ви хочете автоматизувати доставку у своєму магазині — зв'яжіться з нами. Отримайте консультацію по вашому проєкту.







