Перерывы в работе курьера
Перерывы в работе курьера можно задавать не только при планировании, но и после передачи маршрутов в Мониторинг и даже в процессе выполнения маршрута. На карте перерывы не отображаются, но учитываются при расчете ETA.
Добавить перерыв
Чтобы добавить курьеру перерывы в маршрут, отправьте POST-запрос к ресурсу work_breaks.
В запросе укажите company_id и route_id — ID компании и ID маршрута.
В теле запроса укажите:
rest_duration_s— длительность перерыва в секундах (минимальное значение: 1);work_time_range_till_rest— время работы до отдыха, формат: [D.]HH[:MM[:SS]] - [D.]HH[:MM[:SS]].
Запрос
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X POST -d @<Путь_до_файла_в_кодировке_UTF-8> https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/work_breaks
Файл
{
"work_time_range_till_rest": "01:00:00-01:30:00",
"rest_duration_s": 3600
},
{
"work_time_range_till_rest": "02:30:00-03:00:00",
"rest_duration_s": 1800
}
Результат
{
"break_id": 1,
"sequence_pos": 0,
"work_time_range_till_rest": "01:00:00 - 01:30:00",
"rest_duration_s": 1800
},
{
"break_id": 2,
"sequence_pos": 1,
"work_time_range_till_rest": "02:30:00 - 03:00:00",
"rest_duration_s": 1800
}
Получить информацию о перерывах
Чтобы получить информацию о перерывах курьера на маршруте, отправьте GET-запрос к ресурсу work_breaks. Возможны следующие статусы перерывов:
planned— запланирован;started— начался;finished— завершился.
Запрос
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X GET -d https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/work_breaks
Результат
{
"id": 1,
"sequence_pos": 0,
"work_time_range_till_rest": "01:00:00 - 01:30:00",
"rest_duration_s": 3600,
"status": "planned",
"start_at": 1769743980
},
{
"id": 2,
"sequence_pos": 1,
"work_time_range_till_rest": "02:30:00 - 03:00:00",
"rest_duration_s": 1800,
"status": "planned",
"start_at": 1769802180
}
Удалить перерыв
Чтобы удалить перерыв, отправьте DELETE-запрос к ресурсу work_breaks.
Запрос
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X DELETE -d https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/work_breaks/<id-перерыва>
Результат
{
"id": 1,
"sequence_pos": 0
}
Пример бизнес-кейса
Что требуется сделать
Нужно добавить несколько перерывов курьеру после того, как он начал движение по маршруту, и отследить, как это повлияет на ожидаемое время прибытия estimated_service_time (ETA) по заказам.
Как реализовать сценарий
-
Чтобы получить актуальную информацию о маршруте, отправьте запрос к ресурсу route-info. Для заказа с
id=410522528ETA составляет 16:38.Пример запроса
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X GET -d https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/route-info?route_id=<id-маршрута> -
Запланируйте два перерыва по 10 минут:
- первый — не позднее чем через 40 минут работы;
- второй — не позднее чем через 70 минут работы.
Для этого отправьте запрос к ресурсу work_breaks и задайте время работы до отдыха и длительность перерывов (в секундах).
Пример запроса
{ "work_time_range_till_rest": "00:30:00-00:40:00", "rest_duration_s": 600 }, { "work_time_range_till_rest": "01:00:00-01:10:00", "rest_duration_s": 600 }Пример ответа
{ "id": 4974223, "sequence_pos": 0 }, { "id": 4974224, "sequence_pos": 1 } -
Чтобы увидеть, как изменилось ожидаемое время прибытия, повторно отправьте запрос к ресурсу route-info. Для заказа
id=410522528новое ETA — 16:50 (заказ будет доставлен после перерыва). -
Для проверки текущего статуса перерывов отправьте запрос к ресурсу work_breaks.
Пример ответа
{ "id": 4974223, "sequence_pos": 0, "work_time_range_till_rest": "00:30:00 - 00:40:00", "rest_duration_s": 600, "status": "started", "start_at": 1770039360 }, { "id": 4974224, "sequence_pos": 1, "work_time_range_till_rest": "01:00:00 - 01:10:00", "rest_duration_s": 600, "status": "planned", "start_at": 1770044160 }