iikoFront API SDK

Возможность запретить фронту изменять переданные из АПИ значения продолжительности и зоны доставки

[ v9preview1  v9  ]

Начиная с V9Preview1 появилась возможность запретить фронту менять рассчитанные внешним ГРиКом и переданные из АПИ значения продолжительности и зоны доставки.

В доставочный заказ IDeliveryOrder добавлено новое поле FixedRestrictions, с помощью которого можно или разрешать фронту заменять значения продолжительности доставки Duration и зоны Zone на те, которые фронт получает из “своего” ГРиК, или, наоборот, не давать редактировать поля Duration и Zone, оставив в них полученные из АПИ данные.

Для того, чтобы воспользоваться новым функционалом, нужно при создании доставки из АПИ в аргументах метода IEditSession.CreateDeliveryOrder передать не пустое значение продолжительности доставки в параметре TimeSpan? duration и в параметре bool fixedRestrictions передать true. Если при этом нужно передать и зафиксировать зону доставки, в параметре string zone также должно быть не пустое значение. При IDeliveryOrder.FixedRestrictions = true фронт не вызывает проверку ГРиК для данной доставки и, таким образом, оставляет значения продолжительности и зоны доставки неизменными.

Значение IDeliveryOrder.FixedRestrictions автоматически сбрасывается фронтом на false только при смене режима обслуживания IOrderType.

Изменить значение поля IDeliveryOrder.FixedRestrictions можно с помощью нового метода IEditSession.ChangeDeliveryFixedRestrictions.

При вызове методов редактирования доставочного заказа - изменения продолжительности доставки IEditSession.ChangeDeliveryDuration или зоны IEditSession.ChangeDeliveryZone - фронт применит новые параметры, оставив IDeliveryOrder.FixedRestrictions без изменения.

Если доставка с IDeliveryOrder.FixedRestrictions = true дошла до (старого) Call Center и ее изменили так, что вызвался ГРиК, флаг IDeliveryOrder.FixedRestrictions сбрасывается в false, а поля IDeliveryOrder.Duration и IDeliveryOrder.Zone будут отредактированы - в них запишутся значения, которые вернул ГРИК.