Описание

Запрос GetMenuByParams отвечает за получение меню от агента. 

НазначениеЗапрос получения меню от агента
Тип запросаАсинхронный/синхронный
Поддерживаемая версия агентаv2
PluggetSystemTypeRKMid

При выполнение запроса GetMenuByParams учитывается нахождение блюда в стоп-листе:

  • Если блюдо включено в стоп-лист, оно не будет выводиться в поле "products": [] при выполнении запроса
  • Если блюдо отсутствует в стоп-листе, оно будет выводиться в поле "products": [] при выполнении запроса

Обновлять стоп-листы не требуется. 

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

{
  "taskType": "GetMenuByParams",
  "params": {
      "async": {
        "objectId": "number",
         "timeout": number
      },
      "sync": {
        "objectId": number,
        "timeout": number
      },
      "priceTypeId": number,
      "tradeGroupId": number,
      "filterByKassPresets": bool,
 
      "menuSelectorCode": number,
      "orderCategoryCode": number
  }
}
JSON

Параметр

Тип

Обязательный

Описание

taskType

Тип задачи.
async

Асинхронный вызов метода. Может быть либо синхронный, либо асинхронный.
sync

Синхронный вызов метода. Может быть либо синхронный, либо асинхронный.
timeoutintНетВремя ожидания ответа от агента в секундах, по умолчанию — 120 секунд.
objectIdintДаКод ресторана в системе лицензирования.

priceTypeId

intНет

Идентификатор типа цены. Если не указан, используется тот, что указан в конфигурации.

tradeGroupId

intНетИдентификатор торговой группы. Если не указан, используется тот, что указан в конфигурации.
filterByKassPresetsboolНет

Значение по умолчанию — true.

Если false, то будет передано полное меню, без фильтрации, с помощью команды RKeeper GetOrderMenu. У этой команды фильтрация учитывает настройки кассы, кассира и так далее.

menuSelectorCodeintНет

Код селектора меню для построения дерева категорий блюд и их дополнительной фильтрации.

Если не указан, используется параметр DefaultMenuSelectorCode из раздела RKeeper:OrderCreationPreferences конфигурации Агента.

Если и в конфигурации не задан код селектора — возвращается меню без учета селекторов.

orderCategoryCodeintНетКод категории заказов, которые можно сделать по запрашиваемому меню.

Пример запроса по торговой группе

Для запроса по торговой группе предварительно проверьте:

  • Параметр конфигурации агента RKeeper:OrderCreationPreferences:UseGetOrderMenuOnly принимал значение false или отсутствовал
  • Параметр запроса filterByKassPresets принимал значение false
  • Задан один из параметров:
    • Торговая группа в r_keeper
    • Параметр запроса tradeGroupId
    • Параметр конфигурации RKeeper:OrderCreationPreferences:TradeGroupId
  • Задан один из параметров:
    • Тип цены в r_keeper
    • Параметр запроса priceTypeId
    • Параметр конфигурации RKeeper:OrderCreationPreferences:PriceTypeId.

Пример запроса

{
 "taskType": "GetMenuByParams",
  "params": {
      "sync": {
        "objectId": 1
      },
      "priceTypeId": 1,
      "tradeGroupId": 1,
      "filterByKassPresets": false,
      "menuSelectorCode": 1
  }
}
JSON

Пример запроса по категории заказа

Для запроса по категории заказа предварительно проверьте, чтобы был задан один из параметров:

  • Параметр конфигурации агента RKeeper:OrderCreationPreferences:UseGetOrderMenuOnly принимал значение true
  • Параметр запроса filterByKassPresets принимал значение true
  • Параметр filterByKassPresets отсутствовал в запросе
  • Параметр запроса orderCategoryCode указывал код существующей категории заказа.

Пример запроса

{
  "taskType": "GetMenuByParams",
  "params": {
      "sync": {
        "objectId": 1
      },
      "orderCategoryCode": 1
  }
}
JSON

Запрос без фильтрации по селекторам

Для получения блюд без учета селекторов r_keeper, предварительно проверьте, чтобы:

  • В запросе отсутствовал параметр menuSelectorCode 
  • В конфигурации отсутствовал параметр RKeeper:OrderCreationPreferences:DefaultMenuSelectorCode.

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

{
 "responseCommon": {
   "taskGuid": "string",
   "taskType": "GetMenuByParams",
   "objectId": 0
 },
 "taskResponse": {  // содержимое блока без парсинга на сервере
   "lastUpdatedAt": "2019-28-T15:00:00+03:00",
   "menu": {
	}
}
JSON

Параметр

Тип

Описание

taskTypestring enumТип задачи
taskGuidguidУникальный код этой задачи используется при получении задачи через очередь.
objectIdintКод ресторана в системе лицензирования.
menuobjectСодержимое блока menu смотрите в статье Menu
error
Контейнер ошибок.