GetMenu
Последнее изменение статьи: 30.10.2025 13:06
Описание
| Назначение | Запрос получения меню из кеша сервера |
| Тип запроса | Синхронный |
Для оптимизации времени получения ответа передавайте в заголовке gzip
Меню обновляется автоматически один раз в день в 12.00 по МСК. Обновить не по расписанию меню можно с помощью метода UpdateMenu.
Формат запроса
{
"taskType": "GetMenu",
"params": {
"sync": {
"objectId": 0,
"timeout": 0
}
}
}Описание параметров
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| taskType | Тип задачи | ||
| sync | Синхронный метод | ||
| timeout | int | - | Время ожидания ответа от агента в секундах, по умолчанию 120 секунд |
| objectId | int | + | Код ресторана в системе лицензирования |
Формат ответа
{
"responseCommon": {
"taskGuid": "string",
"taskType": "GetMenu",
"objectId": 0
},
"taskResponse": {
"lastUpdatedAt": "2019-28-T15:00:00+03:00",
"version": "number",
"menu": {
// Содержимое блока menu можно посмотреть здесь: https://docs.rkeeper.ru/ws/menu-77464440.html
}
}
CODE
| Параметр | Тип | Описание |
|---|---|---|
| taskGuid | guid | Уникальный код этой задачи используется при получении задачи через очередь |
| taskType | string enum | Тип задачи |
| objectId | int | Код ресторана в системе лицензирования |
| error | Контейнер ошибок, внутри детализация по связанным системам | |
| - wsError | Ошибки, получаемые от сервиса White Server | |
| – code | int | Код ошибки |
| – extCode | string | Расширенный код ошибки |
| – desc | string | Описание ошибки |
Модель для меню (содержимое раздела taskResponse → menu)
| 1 | Все значения - строки: ID, название, цена. Везде |
| 2 | У продукта может быть только 1 схема |
| 3 | Про min\max-count: если оба значения не указаны, то это группа чекбоксов (наши текущие Дополнительные ингредиенты), т.е. выбираешь сколько тебе хочется |
| 4 | Про min\max-count: если оба значения указаны, то это группы клонированных радио-батонов (имена групп будут автоматически пронумерованы, например, Соус 1, Соус 2), причем если min != max, то в N=max-min групп добавится вариант «Не выбрано» |
{
"type": "string",
"categories":[
{
"id":"string",
"name":"string",
"parentId": "string"
}
],
"classifications": [
{
"id": "string",
"code": "string",
"name": "string",
"parentId": "string"
}
],
"products":[
{
"guid":"string",
"id":"string",
"categoryId":"string",
"name":"string",
"code":"string",
"price":"string",
"minPrice": "string"
"originalPrice: number,
"schemeId":"string",
"description":"string",
"excise":"string",
"exciseCode":"string",
"imageUrls":[
"string1",
"string2"
],
"measure":{
"value":"string",
"unit":"string",
"priceMode": "string",
"qntDecDigits": "string",
"changeQntOnce": "true/false",
"joinMode": "string"
},
"classificationIds": [
"string1",
"string2"
],
"protein": "string",
"fat": "string",
"carbohydrates": "string",
"kcal": "string",
"globalTradeItemNumbers": "string",
"alcoholCodes": "string",
"openPrice": boolean
"dishTaxes": {
"groupName": "НДС 10%",
"taxes": [
{
"taxName": "НДС",
"rateName": "10,00 %",
"rate": 10
}
]
}
}
],
"ingredientsSchemes":[
{
"id":"string",
"ingredientsGroups":[
{
"id":"string",
"minCount":number,
"maxCount":number,
"changesPrice":true/false
}
]
}
],
"ingredientsGroups":[
{
"id":"string",
"name":"string",
"ingredients":[
"string"
]
}
],
"ingredients":[
{
"id":"string",
"name":"string",
"code":"string",
"price":"string",
"originalPrice: number,
"schemeId":"string",
"description":"string",
"excise":string,
"exciseCode":string,
"dishId":number,
"imageUrls":[
"string1",
"string2"
],
"measure":{
"value":"string",
"unit":"string"
}
}
]
}
CODE
Описание полей можно посмотреть в базе знаний.
Примеры
Запрос
{
"taskType": "GetMenu",
"params": {
"sync": {
"objectId": 199990106,
"timeout": 60
}
}
}Успешный ответ
Ответ с ошибкой
{
"responseCommon": {
"taskGuid": "fa1bdcbf-1e96-425c-9159-eb57d4accb6f",
"taskType": "UpdateMenu",
"objectId": 199990106,
},
"error": {
"wsError": {
"code": 82,
"desc": "Меню объекта не найдено"
}
}
}