Перейти к содержимому
Все статьи
Разработка

Сайт доставки еды: как задать выбор добавок и обязательных вариантов блюда

17 октября 2026 г.· 5 мин чтения
В допустимом учебном составе выбраны thin, две порции moz и tomato: итог 650 рублей. Замена tomato на white даёт 660 рублей, но нарушает заданный запрет пары moz и white.
Цена считается даже для недопустимой конфигурации и не служит разрешением принять заказ. Ограничения групп относятся к количеству порций. Открыть схему крупнее

Гость выбрал пиццу, написал «два сыра, белый соус» и оплатил заказ. На кухне выясняется, что одну добавку уже убрали из продажи, а выбранный соус нельзя приготовить для этого варианта. Красивой карточки блюда недостаточно: сайт доставки должен передать исполнимую конфигурацию с понятной ценой, а не набор пожеланий, который администратор расшифровывает после оплаты.

Разберите меню до проектирования карточки

Сначала отделите базовое блюдо, его обязательный вариант и дополнительные порции. Для пиццы это могут быть тип теста, добавки и соус. Для напитка — размер и дополнительные ингредиенты. Это разные правила выбора, даже если в интерфейсе все элементы выглядят одинаковыми кнопками.

Официальная справка Square, например, отдельно описывает обязательные модификаторы и ограничения выбора. Для собственного проекта важен сам принцип: у группы есть правило, у варианта — идентификатор и влияние на заказ. Не нужно считать комментарий к блюду надёжной заменой структурированным вариантам.

Составьте таблицу правил на одном блюде

Учебная конфигурация пиццы для задания на разработку
ГруппаСколько выбратьВарианты и доплатаОтдельная проверка
ТестоРовно одну единицуТонкое 0 ₽; пышное 50 ₽Нельзя выбрать два типа одновременно
СырОт нуля до двух порцийМоцарелла 60 ₽; другая добавка 80 ₽Вторая добавка сейчас в стоп-листе
СоусРовно одну единицуТоматный 30 ₽; белый 40 ₽В модели пара «моцарелла + белый» запрещена

Все ограничения и цены в таблице вымышлены для демонстрации. Запрет сочетания не является утверждением о составе продуктов или пищевой безопасности. В настоящем меню ограничения подтверждает ответственная команда ресторана; сведения об ингредиентах и аллергенах требуют отдельного процесса проверки.

Количество порций и количество разных вариантов — не одно и то же

«Можно добавить два сыра» может означать две порции одной добавки или два разных вида по одной порции. Нужно согласовать это до реализации. В инструменте ниже ограничение относится к сумме единиц внутри группы: две порции одной моцареллы занимают оба разрешённых места. Модель не считает их одним выбором только потому, что идентификатор один.

Если для вашего меню разрешены исключительно разные варианты, потребуется другое правило. Не пытайтесь исправить смысл только подписью поля: в интерфейсе и серверной проверке должно действовать одно определение. То же относится к включённым бесплатным порциям, половинкам пиццы и процентным доплатам — эта демонстрация их не рассчитывает.

Сначала проверьте конфигурацию, затем обсуждайте оплату

В учебном примере базовая цена равна 500 рублям. Гость выбрал тонкое тесто, две моцареллы и томатный соус. Добавки дают 120 рублей, соус — 30, итог одной конфигурации — 650. Обязательные группы заполнены, количество порций укладывается в границы, выбранных позиций из стоп-листа нет.

Замените томатный соус белым: арифметическая сумма станет 660 рублей, но выбранная в примере пара нарушит ограничение. Поэтому инструмент показывает расчёт отдельно от заключения по правилам. Существование числового итога не означает, что кухне можно отправить такую конфигурацию.

Как устроена локальная проверка

В первом наборе укажите группы, минимальное и максимальное количество единиц. Во втором — варианты, их группы, неотрицательные доплаты и доступность yes/no. В третьем — выбранные варианты и количество каждой порции. Дополнительно можно перечислить несовместимые пары, по одной в строке.

Инструмент суммирует выбранные единицы по группам и проверяет минимумы и максимумы. Затем отмечает варианты в стоп-листе и одновременно выбранные несовместимые пары. Он не меняет выбор автоматически и не предлагает удалять обязательную добавку ради прохождения проверки. Непонятный идентификатор или повтор одной строки выбора вызывает ошибку ввода, а не скрытое исправление заказа.

Где могут разойтись сайт и ресторанная система

Уточните источник базовой цены, доплат, стоп-листа и доступности групп. Если меню редактируется и на сайте, и в кассовой системе независимо, изменения могут конфликтовать. Условия обмена нужно проектировать по фактическим возможностям используемой ресторанной системы, а не обещать любую интеграцию по её названию.

Перед фиксацией заказа сервер должен снова проверить существенные условия: за время выбора позиция могла стать недоступной. Согласуйте поведение при изменении цены или состава. Молчаливо заменить соус или убрать добавку — не то же самое, что получить согласие гостя на новый вариант.

Что передать разработчику вместо списка кнопок

Подготовьте несколько карточек с правилами и ожидаемыми результатами: выбор по умолчанию, недостающая обязательная группа, лишняя порция, стоп-лист и конфликт двух вариантов. Отдельно опишите, как конфигурация выглядит в корзине, заказе администратора и сообщении кухне. Сохранённый заказ должен позволять понять, что именно подтвердил покупатель.

Страница разработки сайта ресторана поможет выбрать общий формат проекта: информационное меню, бронирование или заказ доставки. Правила конфигурации добавьте к заданию на корзину. Так стоимость и состав работ будут обсуждаться на конкретных сценариях приготовления и оформления, а не только на количестве экранов.

Проверить конфигурацию одного блюда

Границы групп применяются к сумме единиц, а не числу разных вариантов. Цена и состав учебные; нет проверки аллергенов, технологий приготовления, бесплатных порций, скидок, остатков ингредиентов или заказа нескольких блюд. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.

Материалы для проверки

Если нужна реализация

Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.

Создание сайта ресторана: меню, бронь столов и доставка Разработка приложения доставки еды для ресторана и кухни

Нужна помощь с проектом?

Обсудим задачу и предложим решение — от сайта до SaaS и защиты.

Связаться