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-клиенты.