Waiter позволяет работать с базой зарегистрированных гостей и пользоваться механиками лояльности и внутренних платежей при использовании на предприятии системы отличной от iikoCard5.
...
Для взаимодействия используются:
Поддерживают по http универсальные методы взаимодействия с плагином вейтера:
...
Для поддержки интеграции стороннему серверу системы лояльности необходимо реализовать у себя нижеперечисленные методы REST API. http можно реализовывать через nancy или Рекомендуем ASP.NetNET использовать в качестве Web Server.
...
API
Expand |
---|
title | Привязка гостя (Чекин) |
---|
|
Content-Type | application/json | Method | POST | Path | orders/{id}/checkin |
ParametersParameters | Type | Description |
---|
id (path) | UUID | Id заказа | Body | CheckinRequest | Тело запроса |
Payload Code Block |
---|
| {
"Value": "149725735",
"WaiterPin": "12345"
} |
ResponsesStatus Code | Content | Description |
---|
204 No Content | - | БРД гость был успешно привязан к заказу плагином внешней системы. | 200 OK | CheckinResponse | БРД гость не был привязан. WaiterMessage содержит сообщение, которое увидит официант во всплывающем окне. |
Response sample Code Block |
---|
| {
"WaiterMessage": "LoyaltySystem error!"
} |
DTOCheckinRequest Anchor |
---|
| checkinRequest |
---|
| checkinRequest |
---|
|
Property | Type | Description |
---|
Value | String | Отсканированное или введённое вручную значение идентификатора гостя. | WaiterPin | String | ПИН-код текущего официанта. |
CheckinResponse Anchor |
---|
| checkinResponse |
---|
| checkinResponse |
---|
|
Property | Type | Description |
---|
WaiterMessage <required> | String | Сообщение, которое будет отображено официанту во всплывающем окне. |
|
Expand |
---|
|
Content-Type | application/json |
---|
Method | DELETE | Path | orders/{id}/checkin |
ParametersPayload Code Block |
---|
| {
"WaiterPin": "12345"
} |
ResponsesStatus Code | Content | Description |
---|
204 No Content | - | Приложение отобразит стандартное сообщение об успешной операции. | 200 OK | UncheckinResponse | Используется для отображения кастомного сообщения официанту. Например: о неудачной попытке отвязать гостя от заказа. |
Response sample Code Block |
---|
| {
"WaiterMessage": "Guest couldn't be unbinded!"
} |
DTOUncheckinRequest Anchor |
---|
| uncheckinRequest |
---|
| uncheckinRequest |
---|
|
Property | Type | Description |
---|
WaiterPin | String | ПИН-код текущего официанта. |
UncheckinResponse Anchor |
---|
| uncheckinResponse |
---|
| uncheckinResponse |
---|
|
Property | Type | Description |
---|
WaiterMessage <required> | String | Сообщение, которое будет отображено официанту во всплывающем диалоговом окне. |
|
Expand |
---|
title | Получение лояльности |
---|
|
RequestMethod | GET | Path | orders/{id}/loyalty |
ParametersParameters | Type | Description |
---|
id (path) | UUID | Id заказа |
Request sample Code Block |
---|
GET http://{plugin_host}/orders/{order_id}/loyalty |
Code Block |
---|
curl -X 'GET' \
'http://{plugin_host}/orders/{order_id}/loyalty' |
plugin_host - хост, на котором развернуто API плагина внешней системы лояльности order_id - Id заказа ResponseStatus Code | Content-Type | Description |
---|
204 No Content | - | Данных по лояльности нет | 200 OK | application/json | Передача информации о подарочных блюдах и кошельках гостя. | 200 OK | multipart/form-data (спецификация) | Передача информации о подарочных блюдах, кошельках гостя и фотографии гостя. |
Вам не нужно реализовывать все ответы. Выберите один или несколько, которые подходят для вашей задачи. Response sample Code Block |
---|
| Method: GET
Code: 200 (OK)
Content-Type: application/json
{
"ProductSKUs":
[
"11015",
"11068",
"10549"
],
"UserWallets":
[
{
"Id": "f87b4e69-2f01-46e7-9577-0b1b1534e121",
"Name": "Rewards",
"Balance": 142.15
},
{
"Id": "5837a0b7-d509-4245-9062-1bf56f0db807",
"Name": "Deposit",
"Balance": 1000.57
}
],
"Suggestions":
[
"Suggestion 1",
"Suggestion 2"
]
} |
Code Block |
---|
Method: GET
Code: 200 (OK)
Content-Type: multipart/form-data
--BOUNDARY
Content-Type: application/json
Content-Disposition: form-data; name=loyalty
{"productSKUs":[],"userWallets":[],"suggestions":[],"waiterMessage":null}
--BOUNDARY
Content-Disposition: form-data; name=photo
/*массив байтов фотографии*/
--BOUNDARY-- |
DTOLoyaltyResponse Anchor |
---|
| loyaltyResponse |
---|
| loyaltyResponse |
---|
|
Property | Type | Description |
---|
Suggestions | List<string> | Текстовые подсказки. | ProductSKUs | Array<String>List<String> | Артикул блюд, которые будут отображены официанту на странице чекина. Используется для отображения подарков и т.п. Официант может кликнуть на блюдо, добавив его к заказу. | UserWallets | Array<List<ClientWallet> | Список кошельков гостя для отображения официанту. | WaiterMessage | String | Note |
---|
Используется исключительно для отображения сообщения о неуспешном выполнении операции. |
|
ClientWalletProperty | Type | Description |
---|
Id <required> | UUID | Идентификатор кошелька | Name <required> | String | Название кошелька | Balance <required> | Decimal | Баланс кошелька |
|
Expand |
---|
title | Получение лимитов оплат бонусами и депозитом |
---|
|
Content-Type | application/json |
---|
Method | GET | Path | orders/{id}/paymentLimits |
ParametersParameters | Type | Description |
---|
id (path) | UUID | Id заказа |
ResponseResponse sample Code Block |
---|
| {
"BonusSum": 50.7,
"DepositSum": 137.89
} |
DTOPaymentLimitsResponse Anchor |
---|
| paymentLimits |
---|
| paymentLimits |
---|
|
Property | Type | Description |
---|
BonusSum | decimal | Доступная сумма для оплаты бонусами по заказу. | DepositSum | decimal | Доступная сумма для оплаты депозитом по заказу. |
|
...