← На сайт Меню

Управление меню

Блюда, сезоны, категории и рубрики — переключайте раздел ниже.

Разделы

Создать сезон

Рубрики (подкатегории)

Верхний уровень меню задаётся в базе и здесь не редактируется. Ниже — только рубрики внутри категории; рубрику можно перенести в другую категорию при правке.

Куда добавить блюдо

Объёмы и цены (напитки)

Несколько вариантов: укажите мл и цену в каждой строке. Поле «Цена» сверху — минимальная из вариантов, обновляется при сохранении.

Сначала загрузите метаданные.

Блюда активного сезона

Актуальное меню сейчас

По умолчанию: база + блюда активного сезона.

Как пользоваться панелью

Краткий порядок работы. Все запросы к API идут с заголовком X-Admin-Token — токен задаётся на сервере (переменная ADMIN_TOKEN в Docker / окружении).

1. Токен и доступ

  1. Вставьте токен в поле. Кнопка «Сохранить в браузере» хранит его только в этом устройстве/браузере (локально).
  2. «Синхронизировать всё» подгружает подкатегории, сезоны и списки блюд — нажмите после ввода токена или при «пустых» селекторах.
  3. «Сброс кеша меню» нужен, если вы меняли данные напрямую в PostgreSQL на сервере: иначе витрина меню на сайте может показывать старое (кеш в Redis, до ~5 минут).

2. Сезоны

В «Текущий сезон» отображаются сезоны из базы. Один из них отмечен как активный — его блюда попадают в публичное меню (вместе с основным каталогом, если блюда туда помечены). «Сделать активным» — переключить активный сезон. Создать — новая строка в списке. Удалить можно любой сезон, кроме единственного в базе. После правок смотрите подсказки на странице — они совпадают с выбранным сезоном в селекторе.

3. Рубрики (подкатегории)

Верхний уровень — только «Кухня» и «Напитки» (задаётся в базе, здесь не редактируется). В этой вкладке вы создаёте рубрики внутри категории (завтраки, кофе и т.д.), меняете порядок, переименовываете, при необходимости переносите рубрику в другую категорию. У блюд в меню витрина группируется по рубрике — без рубрики блюдо привязать к разделу нельзя.

4. Форма блюда

  • Куда класть: основной каталог, сезон (активный) или сразу и то и другое — чекбоксами в блоке «Куда добавить блюдо».
  • Выберите категорию и рубрику (сначала создайте рубрику во вкладке «Рубрики»).
  • Несколько объёмов/цен для напитков — в блоке «Объёмы и цены»; для блюд с одной ценой достаточно полей цена и, при необходимости, граммы или мл.
  • Картинка/видео: загрузка файла или внешняя ссылка. Сохранение отправляет JSON на API (файл при загрузке уходит на /admin/upload).
  • Редактирование: в «Списки блюд» нажмите «Правка» у позиции — форма заполнится; после сохранения снова «Синхронизировать» при сомнениях.

5. Списки блюд

Два списка: блюда выбранного (активного) сезона и актуальное меню сейчас (как на сайте: база + активный сезон; опция «весь каталог» показывает больше для отладки). Поиск фильтрует по названию. Кнопки: в сезон / из сезона, в основной каталог, удаление — работают через API, после действия списки обновляйте кнопкой «Обновить» или «Синхронизировать».

6. Полный сброс базы на сервере

Это делается не из браузера, а по SSH, скриптом backend/sql/reset_all_data_kitchen_drink.sql в PostgreSQL, затем сброс кеша меню (кнопка на этой странице) или рестарт Redis. Подробности в деплой-доке проекта. Перед сбросом сделайте бэкап pg_dump.

Безопасность

Не пересылайте токен в мессенджерах, не публикуйте в репозитории. Меняйте токен, если подозрение на утечку. Публичный сайт открыт без токена; API админки — только с верным X-Admin-Token.