Раньше, чтобы реализовать «мягкие зоны» для водителей приходилось задействовать сложную схему с опциональными тэгами. Теперь у нас есть функционал опциональных зон: у машин появилось поле optional_zones. В нем можно задать список необязательных зон, и числовое значение, которое будет вычитаться из стоимости решения при соблюдении опционального зонирования. Кроме того, числовое значение можно задавать отрицательным, для случаев когда мы хотим наоборот предотвратить выполнение заказов в определенной зоне.
Пример задания опциональных зон:
«vehicles»: [
{
«id»: 1,
«optional_zones»: [
{
«zone»: «zone_1»,
«value»: 1000
}
]
},
{
«id»: 2,
«optional_zones»: [
{
«zone»: «zone_2»,
«value»: -1000
}
]
}
]
За доставку первой машиной заказа из zone_1 из стоимости маршрута будет вычитаться 1000. Для второй машины для zone_2 указан отрицательный бонус, за доставку заказов из этой зоны стоимость маршрута будет увеличена на 1000.
При этом никаких жестких ограничений по зонам не добавляется.