---
metadata:
  - name: generator
    content: Diplodoc Platform v5.19.6
alternate:
  - https://yandex.ru/dev/sdg-robot/en/use-cases.md
  - https://yandex.ru/dev/sdg-robot/ru/use-cases.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/sdg-robot/ru/llms.txt

# Популярные сценарии

## Нет свободных роботов для выполнения заказа {#no-free-courier}

Если в сервис поступило больше заказов, чем есть свободных роботов, при оценке заказа сервис присвоит ему статус `performer_not_found`. 

В этом случае есть два варианта поведения:

1 вариант, по умолчанию

: Заказ сразу же автоматически отменяется и получает статус `cancelled`. 

2 вариант

: Вы можете оставить заказ в режиме `performer_not_found` и повторять попытки найти свободного робота-исполнителя в течение определенного времени. Для этого при [создании заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/create_handler_claims_create_post) укажите время, до которого должен продолжаться поиск. Этот параметр нужно передать в теле запроса в блоке `conditions` в поле `search_until`. Это поле должно содержать значение даты и времени, указывающее, когда поиск должен прекратиться.

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

Текущий статус заказа можно посмотреть при запросе [информации о заказе](https://yandex.ru/dev/sdg-robot/ru/ref/claims/info_handler_claims_info_post). 

## Выбор робота-исполнителя для заказа {#select-performer}

Обычно робота-исполнителя для заказа [выбирает и назначает сервис](https://yandex.ru/dev/sdg-robot/ru/quick-start.md). Но вы можете самостоятельно выбрать робота и назначить его на заказ. 

1. Запросите [список свободных роботов](https://yandex.ru/dev/sdg-robot/ru/ref/couriers/search_handler_couriers_search_post) — в запросе в поле `shift_status_in` укажите `free`. Вы можете указывать и [другие статусы](https://yandex.ru/dev/sdg-robot/ru/ref/couriers/search_handler_couriers_search_post#couriershiftstatus).

    {% cut "Запрос" %}

    ```bash
    POST /couriers/search
    ```

    ```json
    {
        "filters": { 
            "shift_status_in": "free"
        }
    }
    ```

    {% endcut %}

    В ответе возвращается список роботов, их статусы и координаты. Выберите робота и запомните его VIN-номер.

1. [Создайте заказ](https://yandex.ru/dev/sdg-robot/ru/ref/claims/create_handler_claims_create_post), указав VIN-номер выбранного робота в блоке `conditions` в параметре `vin`. 

    {% cut "Запрос" %}

    ```bash
    POST /claims/create?idempotency_key=<your_idempotency_key>
    ```  

    ```json
    {
        "route_points": [
            {
            "address": {
                "coordinates": [
                    55.733989, 
                    37.588116
                ]
            },
            "point_id": "0",
            "type": "source",
            "visit_order": 0
            },
            {
            "address": {
                "coordinates": [
                    55.735120, 
                    37.642817
                ]
            },
            "point_id": "1",
            "type": "destination",
            "visit_order": 1
            }
        ],
        "external_order_id": "Order #1",
        "conditions": {
            "vin": "<your_selected_vin>"
        }
    }
    ```

    {% endcut %}   

## Партнер или клиент отменил заказ {#cancelled}

Вы можете [отменить заказ](https://yandex.ru/dev/sdg-robot/ru/ref/claims/cancel_handler_claims_cancel_post) вплоть до момента, пока не подтверждено получение груза клиентом.

Если груз еще не находится в роботе, заказ после отмены сразу получает статус `cancelled`. 

Если груз уже находится в роботе, но еще не [подтверждена](https://yandex.ru/dev/sdg-robot/ru/ref/claims/confirm_exchange_handler_claims_confirm_exchange_post) его доставка, при отмене запускается возврат груза в точку погрузки:

1. [Отмените заказ](https://yandex.ru/dev/sdg-robot/ru/ref/claims/cancel_handler_claims_cancel_post).

1. Проверяйте [статус заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/info_handler_claims_info_post):

    Пока робот везет груз в точку погрузки, заказ находится в статусе `returning`. 

    Когда робот приезжает в точку погрузки, заказ получает статус `return_arrived`. 

1. [Откройте крышку](https://yandex.ru/dev/sdg-robot/ru/ref/claims/open_hatch_handler_claims_open_hatch_post) чтобы забрать груз, и заказ перейдет в статус `ready_for_return_confirmation`. 

1. [Подтвердите](https://yandex.ru/dev/sdg-robot/ru/ref/claims/confirm_exchange_handler_claims_confirm_exchange_post), что забрали груз, и заказ получит статус `returned`. 

1. После этого заказ автоматически переходит в статус `cancelled`.

## Клиент вернул заказ {#returned}

Если робот доставил груз клиенту, а клиент отказался его забирать, верните груз в точку погрузки:

1. Если клиент уже закрыл крышку робота, он снова [открывает крышку](https://yandex.ru/dev/sdg-robot/ru/ref/claims/open_hatch_handler_claims_open_hatch_post). 

1. Клиент кладет груз и [закрывает крышку](https://yandex.ru/dev/sdg-robot/ru/ref/claims/close_hatch_handler_claims_close_hatch_post).

1. Вместо подтверждения, что груз получен, запустите процедуру [отмены заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/cancel_handler_claims_cancel_post).

1. Проверяйте [статус заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/info_handler_claims_info_post):

    Пока робот везет груз в точку погрузки, заказ находится в статусе `returning`. 

    Когда робот приезжает в точку погрузки, заказ получает статус `return_arrived`. 

1. [Откройте крышку](https://yandex.ru/dev/sdg-robot/ru/ref/claims/open_hatch_handler_claims_open_hatch_post) чтобы забрать груз, и заказ перейдет в статус `ready_for_return_confirmation`. 

1. [Подтвердите](https://yandex.ru/dev/sdg-robot/ru/ref/claims/confirm_exchange_handler_claims_confirm_exchange_post), что забрали груз, и заказ получит статус `returned`. При подтверждении автоматически выполняется закрытие крышки робота, отдельно этот запрос выполнять не обязательно.

1. После этого заказ автоматически переходит в статус `cancelled`.

## Клиент не забрал заказ {#missed}

Когда робот приезжает в точку доставки груза, он ждет, когда клиент заберет заказ. По умолчанию время ожидания не ограничено. 

Если вы хотите ограничить время ожидания, укажите его при [создании заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/create_handler_claims_create_post) для конкретной точки в параметре `waiting_time` (в секундах). Если клиент не забрал заказ в течение этого срока, заказ автоматически отменяется и выполняется [процедура возврата заказа](#returned).

## Задержка доставки {#delayed}

Время доставки заказа может увеличиться из-за текущей ситуации на дорогах или неисправности робота. В процессе выполнения заказа сервис постоянно пересчитывает планируемое время доставки (ETA). Актуальное время возвращается в ответе на запрос [информации о заказе](https://yandex.ru/dev/sdg-robot/ru/ref/claims/info_handler_claims_info_post) в поле `eta`. 

## Заказ не может быть доставлен {#incident}

Если с роботом случилась неисправность и заказ не может быть доставлен, он будет автоматически отменен. В ответе на запрос [информации о заказе](https://yandex.ru/dev/sdg-robot/ru/ref/claims/info_handler_claims_info_post) будет возвращен статус `cancelled`.

После этого вам нужно [связаться с поддержкой](https://yandex.ru/dev/sdg-robot/ru/support.md) и обсудить варианты решения проблемы.

## Список часто используемых точек {#geo-points}

Если у вас есть набор геоточек, которые часто используются как точки погрузки или доставки заказов, вы можете внести их координаты в [список доступных точек](https://yandex.ru/dev/sdg-robot/ru/ref/claims/list_points_geo_points_list_post). 

Этот список вы можете предоставлять клиентам в интерфейсе вашего онлайн-сервиса или мобильного приложения, чтобы упростить и ускорить оформление заказов. 

Чтобы внести точки в список, [обратитесь в службу поддержки](https://yandex.ru/dev/sdg-robot/ru/support.md).

<!-- ## В одном заказе несколько точек погрузки и доставки {#multi-order} 

При [создании заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/create_handler_claims_create_post) в массиве `route_points` можно указать несколько точек погрузки `type` = `source` и несколько точек доставки `type` = `destination`. Порядок посещения указывается для каждой точки в поле `visit_order`, нумерация начинается с 0. -->


{% include notitle [feedback](_includes/feedback-96015e8dc7c1.md) %}
