Доработка программного обеспечения

Чтобы подключить тарифы «robot» и «robot_d2d», доработайте своё программное обеспечение. В этом разделе описаны необходимые изменения.

Опции доставки роботом

Проверка доступности тарифа

Перед созданием заказа проверьте доступность тарифов «robot» или «robot_d2d» для торговой точки.

Проверку доступности выполняйте через метод IntegrationV2OfferCalculate.

  • Получив в ответе taxi_class: robot, отобразите в приложении опцию «Доставка роботом». Клиент должен явно подтвердить согласие спуститься к роботу для получения заказа.
  • Получив в ответе taxi_class: robot_d2d, отображать опцию выбора для клиента необязательно: тариф предполагает доставку курьером на последней миле, спускаться к роботу не потребуется.

Партнёр может самостоятельно принять решение о выборе тарифа.

Если маршрут заказа не обслуживается роботами, либо свободных роботов в наличии нет, предложение по тарифу не появится.

Создание заказа

Для создания заказа используйте метод IntegrationV2ClaimsCreate. Установите параметр taxi_class в значение robot или robot_d2d.

Обязательные параметры для создания заказа роботом:

  • ClientRequirements.taxi_class:robot или robot_d2d;
  • assign_robot: true — передавайте на том же уровне, что и taxi_class;
  • skip_confirmation: true — исключает требование SMS-подтверждения. В будущем параметр будет игнорироваться для роботов.

Примечание

Существует возможность создания черновика заказа сразу через метод IntegrationV2ClaimsCreate, пропустив проверку доступности тарифов методом IntegrationV2OfferCalculate.

Если роботы недоступны, создание черновика завершится ошибкой.

Перед созданием черновика заказа рекомендуем проверить доступность тарифа через запрос вариантов доставки.

Обработка информации о заявке

В ответе метода IntegrationV2ClaimsInfo для заказа, который выполняет робот:

  • PerformerInfo.transport_type будет равно robot или robot_d2d;
  • PerformerInfo.courier_name указан номер робота.

При поломке робота в пути сервис автоматически переназначает заказ на курьера. Если переназначить заказ не удалось, заказ отменяется, а в поле performer_cancel_reasons будет указана причина отмены. Возможные значения:

  • rover_technical_problem — техническая проблема с роботом;
  • rover_no_road — нет маршрута для робота;
  • restaurant_closed — точка погрузки (ресторан) закрыта;
  • rover_empty — робот пуст (заказ не был погружен);
  • rover_incident — инцидент с роботом (например, столкновение);
  • rover_full_cancel — полная отмена по инициативе робота.

Также для заказа роботом:

  • ClientRequirements.taxi_class и MatchedCar.client_taxi_class будут равны robot или robot_d2d;
  • V2ResponseCargoPoint.handover_status может принимать значения pending, initialized, complete, skipped.

Оповещение сотрудников и управление крышкой

Настройте систему оповещения сотрудников о прибытии робота для погрузки или выгрузки. Реализуйте интерфейс для открытия крышки робота с помощью методов IntegrationV1RobotHandoverInitialize и IntegrationV1RobotHandoverInfo.

Крышка закрывается автоматически, если на точке погрузки настроено подтверждение размещения заказа. Если подтверждение не настроено, крышку можно закрыть только механически — нажав кнопку «Закрыть крышку» на корпусе робота или надавив на крышку.

Получение заказа клиентом

Для тарифа robot: предупредите клиента, что нужно спуститься к роботу. Для открытия крышки используйте метод IntegrationV1RobotHandoverInitialize. Вызывается, когда точка маршрута в статусе arrived. После получения заказа клиент закрывает крышку механически — нажав кнопку «Закрыть крышку» на корпусе робота или надавив на крышку. Подтверждение получения заказа на точке выгрузки не предусмотрено.

Для тарифа robot_d2d: процесс получения заказа клиентом аналогичен стандартному сценарию курьерской доставки после передачи заказа от робота курьеру. Дополнительно можно реализовать в клиентском приложении отображение этапов доставки с участием робота и курьера, включая статусы передачи заказа между ними.

Типовой сценарий использования

  1. Проверка доступности.

    Запросите варианты доставки через IntegrationV2OfferCalculate.

  2. Создание заказа.

    Создайте заказ через IntegrationV2ClaimsCreate с параметрами робота.

  3. Отслеживание статуса.

    Получите информацию о заказе через методы IntegrationV2ClaimsInfo и IntegrationV1RobotHandoverInfo.

  4. Управление крышкой.

    Откройте крышку робота с помощью IntegrationV1RobotHandoverInitialize. Подтвердите завершение обмена с роботом методом IntegrationV1RobotHandoverConfirm.

  5. Обработка инцидентов.

    При возникновении проблем следуйте инструкциям из раздела Возможные проблемы.

  6. Завершение доставки.

    Доставка считается завершённой в момент закрытия крышки — после вручения заказа клиенту или при возврате заказа.

Следующая