Express
Экспресс-доставка заказов мерчанта за короткий интервал времени.
Экспресс-доставка
Экспресс-доставка позволяет продавцу выполнять срочную курьерскую доставку заказа покупателю. В API такой способ доставки определяется значением EXPRESS в delivery_type.
Доступность экспресс-доставки определяется существующей конфигурацией локации и полигона. В delivery_options для Express указываются поддерживаемый тип доставки, сроки и ограничения доставки. Поле calculation_mode определяет способ расчёта условий доставки и является опциональным для сохранения обратной совместимости.
Поддерживаются два режима:
STATIC— стоимость и сроки доставки определяются параметрамиdelivery_options. Еслиcalculation_modeне передан, сохраняется существующее статическое поведение.DYNAMIC— используется для Express-доставки, когда стоимость и сроки зависят от конкретного адреса и состава заказа. В этом случае витрина получает актуальные варианты доставки методом POST/v1/polygon/delivery-options/calculate.
Динамический расчёт доставки
При calculation_mode = DYNAMIC витрина сначала определяет по конфигурации полигона, что для локации доступен EXPRESS, после чего передаёт в /v1/polygon/delivery-options/calculate локацию, адрес доставки и состав заказа.
Продавец возвращает доступные варианты с интервалом доставки и стоимостью. Результат расчёта имеет ограниченный срок действия, заданный expires_at. calculation_id используется для идентификации и трассировки расчёта и не является бронированием варианта доставки.
Фактическую стоимость доставки уже созданного заказа витрина получает существующим методом /v1/order/dbs/delivery-cost/get.
Весовые товары
Для весовых товаров окончательный вес и цена могут быть определены продавцом после комплектации заказа. Фактические данные передаются методом POST /v1/order/dbs/exemplar/set.
В exemplar.weight передаётся фактический вес экземпляра товара, а merchant_price, currency_code и vat позволяют передать его фактическую стоимость. После получения этих данных витрина выполняет необходимые проверки и пересчёт связанных цен заказа.
Если фактические параметры нарушают правила витрины, возвращается ошибка STOREFRONT_RULE_VIOLATION, а изменения не применяются. Обновление выполняется атомарно. Изменять данные экземпляра можно только до перехода заказа в статус DELIVERING.
Отслеживание экспресс-доставки
Для заказов с delivery_type = EXPRESS состояние доставки можно получить методом POST /v1/dbs/tracking/get.
Метод возвращает историю движения заказа по этапам:
SEARCHING → ASSIGNED → PICKED_UP → ON_THE_WAY → DELIVERED.
После назначения курьера доступны его контактные данные и, при наличии, информация о транспортном средстве. В процессе доставки также возвращается последнее известное местоположение курьера и координаты места доставки.
Метод предполагает периодический опрос со стороны витрины. Данные отслеживания доступны во время доставки и в течение 24 часов после DELIVERED.
Существующий механизм кода вручения заказа для Express не изменяется.