Перерасчет лояльности при изменении заказа
Введение
В этой статье будет рассмотрена следующая ситуация: гость сделал заказ и хочет оплатить часть заказа бонусами, и использовать подарок. Затем он заказал ещё одно блюдо. При этом:
- Гость уже существует в базе гостей заведения
- Бонусный баланс гостя — 100 бонусов
- Бонусами можно оплатить не более 50% заказа
- У гостя подарок на Напиток.
Для перерасчета лояльности при изменении заказа:
- Получите информацию о госте
- Подсчитайте лояльность для заказа
- Зафиксируйте применение скидки
- При изменении заказа сбросьте заказ и примененную лояльность
- Пересчитайте лояльность для заказа
- Зафиксируйте новое применение лояльности
- Завершите заказ, при необходимости списав или начислив бонусы.
Схема взаимодействия
Запросы
Получите данные о госте с помощью запроса:
Так как гость уже существует в базе, то в ответе вернется информация о нем. Гость заказал горячее и напиток. На напиток у него есть подарочный купон.
Отправьте запрос для подсчета лояльности указанного заказа:
В ответе вернется информация о скидке на напиток и лимит оплаты на горячее.
Теперь оплату бонусами необходимо зафиксировать. Подтвердите заказ с использованием скидок, используя запрос:
В какой-то момент гость решил заказать еще десерт. Для корректной работы системы лояльности необходимо сбросить заказ и примененные скидки. Для этого используйте запрос:
После добавления нового блюда пересчитайте лояльность на заказ:
В ответе вернется информация о скидке на напиток лимитах на оплату десерта и горячего. Лояльность снова необходимо зафиксировать. Подтвердите заказ с использованием скидок, используя запрос:
Осталось закрыть заказ с примененными бонусами. Для этого используйте запрос:
Готово, заказ закрыт с учетом скидки и оплаты бонусами.