Интеграция 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-виджета трекинга на карте, тестирование в продакшене, документация и обучение менеджеров. Гарантируем стабильную работу интеграции и оперативную поддержку после запуска. Если вы хотите автоматизировать доставку в своём магазине — свяжитесь с нами. Получите консультацию по вашему проекту.







