Модификаторы


Модель: библиотека + привязка

Модификаторы (размеры, добавки) устроены как общая библиотека групп, которые привязываются к блюдам:

  • Группа имеет режим цены и правила выбора: pricing_mode (replace — цена заменяет цену блюда; add — прибавка), минимум/максимум выбора и флаг «обязательно».
  • Опция внутри группы имеет цену: для replace это абсолютная цена выбора, для add — дельта (прибавка).
  • Группа создаётся один раз и привязывается к нескольким блюдам; правка группы меняет её сразу на всех привязанных блюдах.

Вкладка «Модификаторы»

{primary} Редактирование самой группы (имена опций, цены) живёт ТОЛЬКО на вкладке «Модификаторы». В редакторе блюда — только привязка и переопределения.

Пресеты

Пресет задаёт pricing_mode + min/max + «обязательно» согласованно:

Пресет Режим Выбор Поведение
Выбрать один · цена заменяет replace один мин 1, макс 1, обязательно — «Размер»
Выбрать один · доплата (+) add один мин 1, макс 1, обязательно
Любое количество · доплата (+) add мульти мин 0, без максимума — «Добавки»
До N · доплата (+) add мульти мин 0, макс N

Создание группы

На вкладке Модификаторы → Добавить группу:

  1. Введите название группы (например, «Размер»).
  2. Выберите пресет.
  3. Заполните опции: название и цену. Для add рядом с ценой показывается «+»; без доплаты — оставьте 0. Для replace пустая цена значит «как у блюда» (гость увидит цену блюда), а 0 — блюдо с этим вариантом бесплатно.
  4. Сохранить.

Группа модификаторов

Счётчик «в N блюдах» в списке показывает, на скольких блюдах используется группа. Удаление группы с использованием запрашивает подтверждение и открепляет её от блюд.

Опции и «по умолчанию»

  • Добавить вариант — добавляет опцию; последнюю удалить нельзя.
  • «По умолчанию» (только для replace + один): помечает предвыбранную опцию. На гостевой эта опция выбрана при открытии — иначе «поедут» цена и валидация.

Общая правка

Группа — общая. Изменив цену опции в библиотеке, вы меняете её на всех блюдах, где группа привязана. Это проверяется на гостевой: правка цены «S» отражается в чипе размера у каждого такого блюда.

Цена по размеру (Advanced)

Иногда добавка стоит по-разному в зависимости от размера. Это настраивается в блоке «Дополнительно» у add-группы:

  1. Откройте add-группу (например, «Добавки») и раскройте «Дополнительно».
  2. Включите «Цена зависит от другой группы» и выберите группу-источник (single-select, обычно «Размер»).
  3. Заполните сетку: цена каждой опции для каждого размера.

Цена по размеру

На гостевой при выборе размера дельта добавки и итог меняются по сетке.

{info} Пустая ячейка сетки = базовая цена опции (столбец «Обычная»); если драйвер-размер не выбран — тоже фолбэк на базу. Чтобы при каком-то размере добавка была бесплатной, поставьте в ячейке 0 — пустая ячейка нулём не считается.

Переопределения для блюда

Группа общая, но её правила можно переопределить для конкретного блюда — в редакторе блюда, раздел Модификаторы:

  • Прикрепить/открепить группу (переключатель). Привязка не меняет общую группу — другие блюда не затрагиваются.
  • Обязательно, Мин, Макс — переопределения только для этого блюда.

Привязка и переопределения

{success} Важно (required ↔ минимум): на гостевой авторитетен selection_min. Сняв «Обязательно» у группы на блюде, вы ставите минимум 0 — и кнопка «Добавить» перестаёт блокироваться. Включив обратно — блокируется до выбора.

Переопределение min/max действует только для этого блюда; другое блюдо с той же группой использует её собственные значения.