Описание


НазначениеЗапрос получения меню из кеша сервера
Тип запросаСинхронный

Для оптимизации времени получения ответа передавайте в заголовке gzip

Меню обновляется автоматически ежедневно утром в 8:00 и вечером, в 23:30 Обновить не по расписанию меню можно с помощью метода UpdateMenu.

Формат запроса

{
  "taskType": "GetMenu",
  "params": {
    "sync": {
      "objectId": 0,
      "timeout": 0
    }
  }
}

Описание параметров

ПараметрТипОбязательныйОписание
taskType

Тип задачи
sync

Синхронный метод
timeoutint-Время ожидания ответа от агента в секундах, по умолчанию 120 секунд
objectIdint+Код ресторана в системе лицензирования


Формат ответа


1Все значения - строки: ид, название, цена. Везде
2У продукта может быть только 1 схема
3Про min\max-count: если оба значения не указаны, то это группа чекбоксов (наши текущие Дополнительные ингредиенты), т.е. выбираешь сколько тебе хочется
4Про min\max-count: если оба значения указаны, то это группы клонированных радио-батонов (имена групп будут автоматически пронумерованы, например, Соус 1, Соус 2), причем если min != max, то в N=max-min групп добавится вариант «Не выбрано»
{
 "responseCommon": {
   "taskGuid": "string",
   "taskType": "GetMenu",
   "objectId": 0
 },
 "taskResponse": {  
   "lastUpdatedAt": "2019-01-28T15:00:00+03:00",
   "menu": {
      "categories": [
        { //категория верхнего уровня
	 "id": "string",
	 "name": "string"
        },
        { //дочерняя категория
	 "id": "string",
	 "parentId": "string",
	 "name": "string"
        }
      ],
      "products": [
        { //вариант блюда с модификаторами или комбо
         "id": "string",
         "categoryId": "string",
         "name": "string",
         "price": "string",
         "schemeId": "string",
         "description": "string", // описание блюда или продукта
"excise":"string",
"exciseCode":"string", "imageUrls": ["string1", "string2"], // массив картинок "measure" : { "value": "string", // размер порции "unit": "string" // единица измерения: кг, литр, шт. Значение не словарное } }, { //простое блюдо "id": "string", "categoryId": "string", "name": "string", "price": "string", "description": "string", // описание блюда или продукта "imageUrls": ["string1", "string2"], // массив картинок "measure" : { "value": "string", // размер порции "unit": "string" // единица измерения: кг, литр, шт. Значение не словарное
         ],
         "protein": "string",
         "fat": "string",
         "carbohydrates": "string",
         "kcal": "string",
         "globalTradeItemNumbers": "string",
       "alcoholCodes": "string"

      } ], "ingredientsSchemes": [ { "id": "string", "ingredientsGroups": [ { "id": "string", "minCount": 0, "maxCount": 0 }, { "id": "string" } ] } ], "ingredientsGroups": [ { "id": "string", "name": "string", "ingredients": [ "string" ] } ], "ingredients": [ { "id": "string", "name": "string", "price": "string", "description": "string", // описание ингредиента
"excise":"string",
"exciseCode":"string", "imageUrls": ["string1", "string2"], // массив картинок "measure" : { "value": "string", // размер порции "unit": "string" // единица измерения: кг, литр, шт. Значение не словарное } ] } }


ПараметрТипОписание
taskGuidguidУникальный код этой задачи используется при получении задачи через очередь
taskTypestring enumТип задачи
objectIdintКод ресторана в системе лицензирования
error
Контейнер ошибок, внутри детализация по связанным системам
- wsError
Ошибки, получаемые от сервиса WhiteServer
– codeintКод ошибки
– extCodestringРасширенный код ошибки
– descstringОписание ошибки

Запрос

{
  "taskType": "GetMenu",
  "params": {
    "sync": {
      "objectId": 199990106,
      "timeout": 60
    }
  }
}

Успешный ответ

пример json меню

Ответ с ошибкой

{
  "responseCommon": {
    "taskGuid": "fa1bdcbf-1e96-425c-9159-eb57d4accb6f",
    "taskType": "UpdateMenu",
    "objectId": 199990106,
 
  },
  "error": {
    "wsError": {
      "code": 82,
      "desc": "Меню объекта не найдено"
    }
  }
}