Интеграция 1С-Битрикс со службой доставки Dostavista

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс со службой доставки Dostavista
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция 1С-Битрикс со службой доставки Dostavista

Dostavista — краудсорсинговая служба курьерской доставки «последней мили». Курьеры работают в режиме реального времени: заявка принимается за несколько минут, доставка выполняется в течение нескольких часов. API открытое, документация на русском. Используется для магазинов с быстрой доставкой: еда, цветы, фармацевтика, электроника.

Принцип работы 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 дня