GetMenuByParams
Последнее изменение статьи: 02.12.2025 15:17
Описание
Запрос GetMenuByParams отвечает за получение меню от агента.
| Назначение | Запрос получения меню от агента |
|---|---|
| Тип запроса | Асинхронный/синхронный |
| Поддерживаемая версия агента | v2 |
| PluggetSystemType | RKMid |
При выполнение запроса 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
"isShowBlocked": bool
}
}
Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| taskType | Тип задачи. | ||
| async | Асинхронный вызов метода. Может быть либо синхронный, либо асинхронный. | ||
| sync | Синхронный вызов метода. Может быть либо синхронный, либо асинхронный. | ||
| timeout | int | Нет | Время ожидания ответа от агента в секундах, по умолчанию — 120 секунд. |
| objectId | int | Да | Код ресторана в системе лицензирования. |
priceTypeId | int | Нет | Идентификатор типа цены. Если не указан, используется тот, что указан в конфигурации. |
tradeGroupId | int | Нет | Идентификатор торговой группы. Если не указан, используется тот, что указан в конфигурации. |
| filterByKassPresets | bool | Нет | Значение по умолчанию — true. Если false, то будет передано полное меню, без фильтрации, с помощью команды RKeeper GetOrderMenu. У этой команды фильтрация учитывает настройки кассы, кассира и так далее. |
| menuSelectorCode | int | Нет | Код селектора меню для построения дерева категорий блюд и их дополнительной фильтрации. Если не указан, используется параметр DefaultMenuSelectorCode из раздела RKeeper:OrderCreationPreferences конфигурации Агента. Если и в конфигурации не задан код селектора — возвращается меню без учета селекторов. |
| orderCategoryCode | int | Нет | Код категории заказов, которые можно сделать по запрашиваемому меню. |
| isShowBlocked | bool | Нет | Если true, то возвращает меню с заблокированными (в стоп листе) блюдами. У таких блюд есть параметр UnAvailable = true и отсутствует цена (price = 0) |
Пример запроса по торговой группе
Для запроса по торговой группе предварительно проверьте:
- Параметр конфигурации агента 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
}
}
Пример запроса по категории заказа
Для запроса по категории заказа предварительно проверьте, чтобы был задан один из параметров:
- Параметр конфигурации агента RKeeper:OrderCreationPreferences:UseGetOrderMenuOnly принимал значение true
- Параметр запроса filterByKassPresets принимал значение true
- Параметр filterByKassPresets отсутствовал в запросе
- Параметр запроса orderCategoryCode указывал код существующей категории заказа.
Пример запроса
{
"taskType": "GetMenuByParams",
"params": {
"sync": {
"objectId": 1
},
"orderCategoryCode": 1
}
}
Запрос без фильтрации по селекторам
Для получения блюд без учета селекторов r_keeper, предварительно проверьте, чтобы:
- В запросе отсутствовал параметр menuSelectorCode
- В конфигурации отсутствовал параметр RKeeper:OrderCreationPreferences:DefaultMenuSelectorCode.
Формат ответа
{
"responseCommon": {
"taskGuid": "string",
"taskType": "GetMenuByParams",
"objectId": 0
},
"taskResponse": { // содержимое блока без парсинга на сервере
"lastUpdatedAt": "2019-28-T15:00:00+03:00",
"version": "number",
"menu": {
}
}
Параметр | Тип | Описание |
|---|---|---|
| taskType | string enum | Тип задачи |
| taskGuid | guid | Уникальный код этой задачи используется при получении задачи через очередь. |
| objectId | int | Код ресторана в системе лицензирования. |
| lastUpdatedAt | string | Время обновления меню в формате "2019-28-T15:00:00+03:00". |
| version | int | Версия данных в r_k 7 в справочнике «Меню». |
| menu | object | Содержимое блока menu смотрите в статье Menu. |
| error | Контейнер ошибок. |