MenuLabБаза знаний Быстрый старт API

PUBLIC API V1 · ДЛЯ РАЗРАБОТЧИКОВ

Меню и ID блюд

Каталог, варианты, модификаторы и стоп-лист для заказа.

Содержание

Зачем нужно меню

Чтобы передать заказ, нужны ID блюд и модификаторов MenuLab: их передают в items[].dish_id и items[].modifiers[].option_id при POST /orders. Меню берётся из ресторана — цены, фото, стоп-лист и доступность всегда актуальны.

Все методы требуют права menu:read.

Всё меню одним запросом

GET /menu/full — категории с блюдами внутри. Удобно для первой загрузки каталога на сайте или в приложении.

Отдельно доступны:

Метод Что возвращает
GET /menu/categories Категории
GET /menu/dishes Блюда; фильтры category_id, is_popular, is_new, is_vegetarian, is_vegan. По умолчанию — только доступные
GET /menu/dishes/{id} Одно блюдо
GET /menu/modifiers Группы модификаторов с вариантами
GET /menu/stop-list Блюда, временно снятые с продажи

Блюдо

Основные поля:

Поле Описание
id ID блюда — его передают в dish_id заказа
name, full_name Название. Для показа гостю используйте full_name: у вариантов name — имя родительского блюда, а full_name — с размером, например «Пепперони 25 см»
price, price_cents Цена строкой и в копейках. Для расчётов используйте price_cents
image_url Фото
product_type Обычное блюдо, вариант или комбо
variants Варианты (размеры) блюда — у каждого свой id и цена
modifiers Группы модификаторов блюда
flags.is_available, flags.is_in_stop_list Можно ли заказать сейчас

Варианты и модификаторы

  • Если у блюда есть variants, в заказ передавайте id конкретного варианта, а не родительского блюда.
  • Модификатор — группа (type: single — один вариант, multiple — несколько), у неё is_required, min_selections, max_selections и список options.
  • В заказ передаётся ID варианта модификатора: "modifiers": [{"option_id": 15, "quantity": 1}].

Стоп-лист

GET /menu/stop-list возвращает блюда, которые ресторан временно не продаёт: dish_id, причину и resume_at — когда блюдо вернётся в продажу. Перед оформлением заказа не показывайте гостю такие блюда: заказ с ними ресторан не примет.

Как часто обновлять

Меню меняется редко, стоп-лист — в течение дня. Кэшируйте меню на 10–30 минут, стоп-лист запрашивайте при открытии корзины. Отдельного события об изменении меню нет — обновляйте кэш по времени.

Нужны ключи или права для интеграции? Их выдаёт администратор ресторана в бэк-офисе: Настройки → Интеграции → API-клиенты.