© Tillypad, 2004-2023
© Tillypad, 2004-2023
Баллы в системе Тиллипад предназначены для повышения статуса клиента. Списание баллов в счет оплаты блюд не было предусмотрено ранее.
В протокол стыковки с мобильным приложением добавлен поток DiscountSum, где поле type_ID (необязательное поле) содержит nttp_ID заметки гостевого счета. Заметка гостевого счета обязательно должна быть уникальной и иметь тип данных вещественное, и Sum
– сумма для списания в счет оплаты.
При сохранении счета в систему модуль стыковки сохраняет указанную сумму в заметку к счету. Если заметка не указана, берется заметка по умолчанию из настроек модуля.
Скидка пересчитывает стоимость блюд с учетом применения указанной суммы как абсолютной скидки на счет с учетом предыдущих программ лояльности.
При этом скидка проверяет, что не превышен максимально допустимый процент от общей суммы счета, который может быть оплачен баллами. Процент указывается для подразделения в заметке (уникальная, вещественное). Так как сумма может быть использована не полностью, например, при условии, что баллами можно оплатить не более 50% стоимости, то использованная сумма указывается в отдельной заметке к счету.
После пересчета скидки счет сохраняется в систему Тиллипад.
Передает в модуль стыковки список сумм скидок, которые должны быть применены как абсолютная скидка (поток DiscountSum).
Перед сохранением счета в систему, сохраняет указанную сумму в специальную заметку к гостевому счету. При этом, если в потоке DiscountSum не указан type_ID (=nttp_ID), то подставляет nttp_ID по умолчанию (указывается в настройках).
Производит расчет скидки.
Пишет в отдельную заметку использованную сумму скидки.
В данных запроса информации по гостевым счетам постоянного клиента в потоке AppliedDiscountSum в поле Sum возвращает сумму примененной скидки к счету, для того чтобы мобильное приложение могло произвести анализ по примененной сумме скидки.
Если для счета указана сумма в специальной заметке, то вычисляется максимальная сумма от общей суммы счета, которая может быть оплачена скидкой.
Применяет абсолютную скидку на счет.
В отдельной заметке сохраняет примененную сумму скидки
Предварительно для корректной работы в настройках модуля должны быть указаны note-type-Id (Сумма заявленной абсолютной скидки на счет) и applied-note-type-Id (Сумма примененной абсолютной скидки на счет) заметок (значения полей nttp_ID tp_NoteTypes), сами заметки должны быть настроены в системе, как и привилегия с типом программы лояльности Абсолютная скидка от мобильного приложения. В сам запрос
/post-guest
добавляется вкладка вида:
"discountSum": [ { "type_ID": "60D367B5-15D2-D24D-8A74-A28F40C8CB9D", "sum": 25 } ]
Поле type_ID необязательное к заполнению – id заметки может быть взят из настроек модуля, поле sum должно быть заполнено суммой скидки без кавычек (числовое поле).
В итоге тело запроса /post-guest может выглядеть таким образом:
{ "gest_Name": "Points0000001", "gest_ClientPhone": "+7(456)999-99-99", "gest_ClientAddress": "<Address><Village Caption=\"Город\" Key=\"True\">Санкт-Петербург</Village><Street Caption=\"Улица\" Key=\"True\">Ленина</Street><House Caption=\"Дом\" Key=\"True\">1</House><Building Caption=\"Корпус\" Key=\"True\">1</Building><Apartment Caption=\"Квартира\" Key=\"True\">12</Apartment><Entrance Caption=\"Подъезд\">1</Entrance><Floor Caption=\"Этаж\">2</Floor><Intercom Caption=\"Домофон\">24</Intercom> <Comment Caption=\"Комментарий\">комментарий</Comment></Address>", "guestDeliveries": { "gsdlv_cncpt_ID": "B719499B-9DFC-BA47-B027-0F390028946E", "gsdlv_dlvrst_ID": 0, "gsdlv_dlvrmt_ID": 1, "gsdlv_IsAutoStart": 0, "gsdlv_SendSooner": 1, "gsdlv_CookingTime": 1800, "gsdlv_DeliveryTime": 1800, "gsdlv_NeedConfirmation": 1, "gsdlv_GeoRegionID": 10, "gsdlv_CashAmount": 5000, "gsdlv_pytp_ID_Prepaid": "7EDA47CA-B67E-CB41-BF80-467D7C9086B0", "gsdlv_PayDescription": "description" }, "orders": [ { "ordr_Name": "01", "orderItems": [ { "orit_mitm_ID": "FBE3CE39-94AA-D149-A993-1628A1092830", "orit_mvtp_ID": "5224EB11-E8BE-1846-98C6-895B4B449B91", "orit_Volume": 1, "orit_Count": 2, "orit_Price": 350 } ] } ], "discountSum": [ { "sum": 100 } ] }
Для получения информации о баллах существующего гостевого счета или счетов можно использовать запросы
/get-guest?guest-id=<guid счета>
или
/get-guests?client-id=<guid клиента>
Данные по сумме заявленной и примененной скидки будут отображены во вкладках discountSum и appliedDiscountSum:
"discountSum":[{"type_ID":"60D367B5-15D2-D24D-8A74-A28F40C8CB9D","sum":90.0}], "appliedDiscountSum":[{"type_ID":"0412C97B-AF11-2447-88D9-B40FA0EB996D","sum":45.0}]