Пошаговая инструкция
Набор модификаторов задаёт правила выбора для товара. Сам набор ещё не является начинкой или соусом: реальные варианты добавляются внутри него как modifiers и затем подключаются к карточкам продуктов.
Сначала пройдите walkthrough со скриншотами. Точки показывают, куда нажимать; видео показывают реальный ввод названия, раскрытие переводов, проверку switches, заполнение лимитов, сохранение, меню строки, Edit и раскрытие Set type.
Поля на этом экране
Список наборов
Как заполнять: Сначала откройте Modifier Sets и проверьте, не создан ли уже нужный набор: начинки, соусы, размеры, добавки или спецификации.
Зачем: Дубли усложняют карточки продуктов, кассу, отчёты и будущие ответы AI-агентов.
Add
Как заполнять: Нажмите Add, чтобы открыть реальную форму Set of Modifiers.
Зачем: В этой форме задаются название, переводы, режим выбора, лимиты и правила связи с продуктом.
Название
Как заполнять: Введите короткое понятное название набора на текущем языке интерфейса.
Зачем: Это название видят сотрудники, касса, карточки продуктов, заказы, отчёты и подсказки поддержки.
Переводы
Как заполнять: Откройте меню переводов и заполните все языки, включённые в компании.
Зачем: Мультиязычный каталог должен показывать один и тот же набор на языке пользователя.
Product specification
Как заполнять: Включайте только если набор описывает спецификацию продукта, а не обычную добавку.
Зачем: Спецификация объясняет свойства товара; модификатор меняет выбор клиента, цену, состав или заказ.
Link a modifier to a product
Как заполнять: Оставляйте включённым, если модификаторы должны быть реальными product-записями.
Зачем: Такая связь нужна для цены, складского списания, отчётов и корректного состава заказа.
Set without photos
Как заполнять: Включайте для простых текстовых вариантов; оставляйте выключенным, когда модификатору нужна визуальная карточка.
Зачем: Фото помогают клиентам и кассирам быстрее распознавать добавки.
Only one
Как заполнять: Выбирайте для размера, типа теста, степени прожарки или другого взаимоисключающего выбора.
Зачем: Заказ не должен позволять выбрать несколько значений там, где допустимо только одно.
Several
Как заполнять: Выбирайте для начинок, соусов, добавок и extras, где можно выбрать несколько позиций.
Зачем: Этот режим позволяет одному продукту иметь несколько модификаторов одновременно.
Minimum per modifier
Как заполнять: Введите минимальное количество для одной конкретной позиции внутри набора.
Зачем: Для optional-добавок обычно 0; для обязательного отдельного выбора может быть 1.
Maximum per modifier
Как заполнять: Введите максимум для одной конкретной позиции.
Зачем: Поле ограничивает повторный выбор одной и той же добавки.
Minimum in this set
Как заполнять: Введите минимальное количество вариантов, которое нужно выбрать во всём наборе.
Зачем: Используйте 1, когда клиент обязан выбрать хотя бы один вариант.
Maximum in this set
Как заполнять: Введите общий максимум выбранных модификаторов во всём наборе.
Зачем: Это защищает правила продукта, стоимость, кухонный процесс и списание ингредиентов.
Save
Как заполнять: Сохраняйте только после проверки названий, переводов, switches, режима и лимитов.
Зачем: Несохранённый набор нельзя надёжно подключить к продуктам.
Edit
Как заполнять: Откройте меню строки и нажмите Edit, если нужно изменить правила или добавить модификаторы.
Зачем: Форма редактирования показывает набор после сохранения и даёт доступ к Editing modifiers.
Set type
Как заполнять: Откройте список Set type и выберите With photos или Text only.
Зачем: Режим отображения должен соответствовать тому, как сотрудники и клиенты узнают модификаторы.
Add modifier
Как заполнять: Нажимайте + Add modifier после создания набора.
Зачем: Сам набор задаёт правила, но в заказе выбираются конкретные модификаторы внутри него.
Подключение к продуктам
Как заполнять: После создания набора подключите его в карточках продуктов, где эти варианты должны появляться.
Зачем: Набор не появится в checkout, пока продукт не ссылается на него.
Частые ошибки
- Создать набор модификаторов, но не добавить внутрь реальные модификаторы.
- Заполнить название только на одном языке, когда компания использует несколько языков.
- Использовать Only one для начинок или добавок, где нужно разрешить несколько вариантов.
- Поставить Minimum in this set больше, чем Maximum in this set.
- Сделать максимум для одного модификатора меньше обязательного минимума.
- Выключить Link to product, хотя для модификатора нужна цена, склад или отчётность.
- Использовать Product specification для обычных платных добавок.
- Сохранить набор и забыть подключить его к продукту.
- Менять set_options напрямую в Supabase и не обновлять company.loadoptions.
Техническая таблица для AI-агентов
Этот блок ниже пользовательской инструкции. Он нужен поддержке, автоматизациям и будущим AI-агентам, которые будут объяснять поведение модификаторов из Supabase set_options, products и заказов.
| Поле | Хранится как | Назначение | Почему важно |
|---|---|---|---|
| ID набора | set_options.id | Уникальный идентификатор набора модификаторов. | Продукты, заказы, импорт, поддержка и AI-агенты используют ID вместо видимого названия. |
| Компания | set_options.company | Рабочая область, которой принадлежит набор. | Не даёт наборам разных компаний смешиваться между собой. |
| Названия | set_options.name[] | Список переводов названия в формате Language/Text. | Касса, клиентские экраны, карточки продуктов, чеки, отчёты и агенты должны видеть читаемое название. |
| Минимум для одного модификатора | set_options.min | Минимальное количество для одной позиции внутри набора. | Предотвращает неправильный выбор, когда у конкретного модификатора есть свой диапазон. |
| Максимум для одного модификатора | set_options.max | Максимальное количество для одной позиции внутри набора. | Ограничивает повторный выбор одной добавки. |
| Продукты / модификаторы | set_options.products[] | ID модификаторов, подключённых к набору. | Набор остаётся только правилом, пока внутри него нет конкретных модификаторов. |
| Минимум в наборе | set_options.minset | Минимальное количество выбранных вариантов во всём наборе. | Используется для обязательных групп, например выбрать хотя бы одну начинку. |
| Максимум в наборе | set_options.totalMax | Максимальное количество выбранных вариантов во всём наборе. | Контролирует общее число модификаторов на один продукт. |
| Связь с продуктом | set_options.connectoProduct | Показывает, связаны ли модификаторы с product-записями. | Связанные модификаторы могут влиять на каталог, цену, склад, заказ и отчёты. |
| Only one | set_options.onlyone | Делает набор одиночным выбором. | Нужно для размера, типа основы или любого выбора, где допустимо только одно значение. |
| Text only / без фото | set_options.textonly | Управляет показом набора без фотографий. | Текстовый режим подходит для простых вариантов; фото нужны для визуального выбора. |
| Product specification | set_options.specifications | Помечает набор как спецификацию продукта. | Спецификация описывает продукт, а обычный модификатор меняет выбор клиента или состав заказа. |
| Условные правила | set_options.conditions_option[] | Правила показа или скрытия опций по предыдущему выбору. | Помогает исключать несовместимые комбинации и объяснять недоступные варианты. |
| Show-only | set_options.showonly | Устаревший флаг отображения, если он есть в старых строках. | Поддержка и миграции должны учитывать старые записи. |
| Создано | set_options.created_at | Время создания строки. | Полезно для аудита, поддержки и проверки свежести настройки. |
| Маркер обновления | company.loadoptions | Timestamp перезагрузки наборов модификаторов. | После backend-изменений приложение должно обновить данные Options. |
| Подключение к продукту | products.list_options[] | ID наборов, подключённых к карточке продукта. | Набор влияет на продажи только после подключения к продукту. |
| Продукт-модификатор | products.type = modif | Конкретный вариант внутри набора. | Сыр, грибы, соус и другие варианты должны быть реальными модификаторами, если у них есть цена или склад. |
| Снимок в заказе | orders.items[].optionID / optionFromeProduct | Выбранный набор и модификатор, сохранённые в позиции заказа. | Исторический заказ должен помнить выбранную опцию даже после переименования набора. |