Начать бесплатно

Расписание и happy-hour

Доступность блюд по времени, тайм-прайсинг и стоп-лист «86»

15 мин чтения Открыть этот экран в демо
На этой странице 14

Расписание меню, happy hour и стоп-лист «86»

Три инструмента, которые управляют доступностью блюд во времени:

  1. Расписание — блюдо или кастомное меню доступно только в заданные дни и часы (например, завтраки до 12:00 в будни, барное меню после 22:00).
  2. Happy hour — в заданное окно времени у блюда другая (обычно сниженная) цена.
  3. Стоп-лист «86» — мгновенно убрать позицию из продажи, когда продукт закончился, и так же быстро вернуть.

Все три правила вычисляются в реальном времени в часовом поясе локации — гость и кассир всегда видят актуальную картину.


Что нужно для запуска#

  • Часовой пояс локации. Все три правила считаются в поясе точки. Пояс не задан — берётся пояс страны точки, а без страны — страны вашего бренда (для cenaly.ru — Москва). Часы телефона гостя и кассы на окна не влияют: касса, QR-меню и сервер считают одинаково. Если точка в другом поясе, задайте его явно.
  • Позиции, категории или кастомные меню, к которым правило применяется.
  • Вторая цена — для happy hour.
  • Доступ кассира к стоп-листу — «86» снимается прямо на рабочем месте смены, кнопкой «Стоп-лист».

Расписание доступности#

Как задать расписание блюду#

  1. Откройте Меню в админ-панели.
  2. Найдите нужное блюдо в списке — рядом с переключателем активности есть иконка часиков.
    • Серые часики — расписание не задано (всегда доступно).
    • Зелёные — сейчас в рамках расписания.
    • Красные — сейчас за пределами расписания (блюдо скрыто/недоступно).
    • Янтарные — расписания нет, но у блюда задано правило happy hour.
  3. Нажмите на часики — откроется редактор «Расписание и цены».
  4. Включите флажок «Ограничить доступность по расписанию».
  5. Задайте дни недели и временны́е окна (формат ЧЧ:ММ–ЧЧ:ММ). Можно добавить несколько окон на один день (например, обед 12:00–15:00 и ужин 18:00–23:00).
  6. Для периодов через полночь (барное меню 22:00–03:00) пометьте окно как «overnight» — система корректно учтёт переход через ноль.
  7. Нажмите «Сохранить» — изменения публикуются на клиентском меню.

Расписание категории, кастомного меню и подборки#

Расписание можно задать не отдельному блюду, а целой группе позиций:

  • категории — например, «Завтраки» или «Бар»;
  • кастомному меню — «Бизнес-ланч», «Воскресный бранч»;
  • подборке товаров в магазине (retail) — например, «Ночные предложения».

Тогда все позиции этой группы автоматически становятся недоступны вне заданных часов.

Часики рядом с названием категории, кастомного меню или подборки работают так же, как часики блюда: один клик — открывается тот же редактор расписания и правил happy-hour.


Сезонное меню: даты «с–по»#

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

  1. Откройте часики у блюда, категории, своего меню или подборки.
  2. В разделе «Сезон (даты)» укажите «С» и/или «По». Обе даты включительно, пустое поле — без границы.
  3. При необходимости оставьте и недельное расписание: тогда действуют оба условия, например «завтраки с 01.12 по 28.02, с 08:00 до 11:00».
  4. Сохраните.

Даты считаются по календарю точки (её часовой пояс), как и окна расписания. Если заданы только даты без недельного окна, позиция продаётся весь день каждый день в эти даты. Ночное окно последнего дня сезона (например, 22:00–02:00) работает до утра. Вне сезона гость видит позицию серой, касса не даст её пробить, а сервер не примет заказ с ней.

Даты работают так же, как недельное окно: своё окно блюда главнее окна его категории и меню, а позиция из нескольких меню доступна, если её пускает хотя бы одно.

В приложениях кассы для Android, Windows и Ubuntu позиция вне сезона тоже серая, с подписью «Сейчас недоступно»: её нельзя добавить ни с плитки, ни сканером. Сезон включается сам в первую минуту нужного дня по календарю точки, перезапускать кассу не надо. Даты приложение получает вместе с меню точки после его обновления на сервере.


Новая цена с даты#

Повышение цен с 1 декабря можно запланировать заранее. До этой даты гости и касса видят текущую цену, а в нужный день новая включается сама.

  1. Откройте часики у блюда (раздел есть только у позиции).
  2. В разделе «Новая цена с даты» нажмите «+ Запланировать цену».
  3. Укажите «С даты», «Цену» и «Где»: «Все точки» или одну точку.
  4. Сохраните. В строке появится подпись «Вступит 01.12.2026», а на часиках блюда в списке меню — синяя точка; подсказка часиков показывает дату и цену.

Как выбирается цена:

  • Запись «Все точки» с наступлением даты заменяет и базовую цену, и цены точек, заданные раньше. Это «новый прайс сети».
  • Запись одной точки меняет цену только там. Если на одну дату есть запись сети и запись точки, в этой точке действует запись точки.
  • Из нескольких наступивших записей действует запись с самой поздней датой.
  • Дата наступает по календарю каждой точки: в Тбилиси новая цена включится на несколько часов раньше, чем в Москве.

Новую цену с первого дня применяют QR-меню, касса и серверная сверка оплаты. Переиздавать меню не нужно: будущие изменения уходят на витрину заранее.

Приложения кассы для Android, Windows и Ubuntu получают будущие цены вместе с меню точки. В нужный день новая цена встаёт на плитки сама, даже если касса не закрывалась с вечера: приложение сверяет дату точки раз в минуту или две. Своя цена склада (переопределение с причиной) по-прежнему сильнее цены с даты.

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

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

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

Окно «Расписание и цены» блюда: раздел «Сезон (даты)» с датами 01.12.2026–28.02.2027 и раздел «Новая цена с даты» со строкой «01.12.2026 · 450 · Все точки · Вступит 01.12.2026»
Рассмотреть экран

Happy hour (тайм-прайсинг)#

Happy hour — это правило, которое автоматически меняет цену блюда в определённое временно́е окно. Несколько правил можно совмещать; при одновременном действии нескольких побеждает наименьшая цена (лучшее предложение для гостя).

Настройка#

  1. Откройте редактор «Расписание и цены» для блюда, категории, своего меню или подборки (кнопка-часики).
  2. В разделе «Happy hour (тайм-прайсинг)» нажмите «+ Добавить правило».
  3. Задайте:
    • Название (например, «Happy hour») — отображается как подпись к скидке.
    • Когда действует — временно́е окно по дням недели (тот же редактор расписания).
    • Тип скидки: «Скидка в %» или «Фиксированная цена».
  4. Сохраните. Можно добавить несколько правил (разные часы, разные скидки).

На клиентском меню в период действия happy-hour обычная цена показывается зачёркнутой, рядом — цена со скидкой. В POS цена в тайле обновляется автоматически.


Настроить для сети#

Правило хранится у позиции или группы в аккаунте, а не как отдельное расписание каждой кассы. Начните с того, какие позиции должны участвовать:

Где открыть часики На что действует правило Уровень для сети
Блюдо На эту позицию Общее правило во всех точках, где она продаётся
Категория На позиции категории Общее правило аккаунта
Своё меню На включённые в него позиции Общее правило аккаунта
Подборка товаров На товары подборки Правило хранится у подборки аккаунта; если подборка ограничена точкой или набором точек, её охват ограничен ими. Без ограничения охват общий
  1. Откройте часики у выбранной позиции или группы и задайте время и цену по шагам выше.
  2. Проверьте часовой пояс каждой участвующей точки: окно «17:00–19:00» считается по её местному времени.
  3. Откройте меню и кассу нужной точки, проверьте цену и добавьте пробную позицию. Если действует ещё одно правило блюда или группы, победит самая низкая цена, а не сумма процентов.

У одной общей позиции нет отдельного поля расписания для каждой точки. Базовая цена по точке и расписание — разные настройки; изменение цены точки не создаёт отдельного happy hour.

Как цена по расписанию сочетается с промокодом и ручной скидкой, показано в разделе «Как складываются скидки, купоны и цена по расписанию»: там же расчёты и отличие кассы от автоматических акций витрины.


Стоп-лист «86»#

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

Убрать одну или несколько позиций#

  1. На кассе или KDS откройте «Стоп-лист». Вверху, в «Сейчас нет», видны уже остановленные позиции.
  2. Проверьте точку. В поле «Где» значение «Только здесь» означает стоп в этой точке; другие точки продолжают продавать.
  3. Найдите позицию по названию. Поиск учитывает её переводы. Нажмите «86» в строке либо отметьте несколько строк и нажмите общую кнопку «86 · …».
  4. Перед остановкой выберите срок в поле «На сколько»:
Срок Когда позиция вернётся
До отмены После ручного возврата
До конца дня В 23:59 текущего дня
До завтра В 06:00 следующего дня
Своё время В выбранный момент

Ориентируйтесь на строку «Вернётся в продажу»: момент считается по часам точки, а не телефона или компьютера сотрудника.

Панель стоп-листа кассы: поиск «блин», отмечены две позиции, раздел «Сейчас нет», охват «Во всех точках» и выбор срока

Остановить продажи во всех точках#

Управляющий выбирает «Во всех точках» и подтверждает «Убрать везде». Это отдельное действие: остановка в одной кухне не должна закрывать продажи соседям. Кнопка «86» в редакторе «Меню» ставит общий стоп.

Вернуть позиции#

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

Счётчик «осталось N порций»#

Когда блюда заведомо ограниченное количество — 12 порций пирога на день, — поставьте счётчик, и позиция сама уйдёт в стоп, когда порции кончатся.

  1. На кассе или KDS откройте «Стоп-лист» и найдите позицию.
  2. Нажмите «🔢 Порции» в её строке, введите число в поле «Осталось порций» и нажмите «Сохранить».
  3. Каждый принятый заказ этой точки списывает порции: и с кассы, и с QR-меню, витрины и киоска. Дозаказ в открытый счёт тоже списывает, удаление строки и отмена заказа порции возвращают.
  4. На нуле позиция попадает в «Сейчас нет» с подписью «закончилось по счётчику» и встаёт в стоп этой точки. На плитке кассы — «ЗАКОНЧИЛОСЬ», пока порции есть — остаток, например «ост. 5»; кассир получает уведомление.
  5. Испекли ещё — нажмите на чип «осталось 0», введите новое число: это новая партия, позиция вернётся в продажу. «Без счётчика» или «Вернуть» снимают ограничение совсем.
Окно «Стоп-лист» кассы: у позиции «Пирог дня» открыто поле «Осталось порций» со значением 12 и кнопками «Сохранить» и «Без счётчика»; у «Чизкейка» в «Сейчас нет» подпись «закончилось по счётчику»

Если позиция уже лежала в корзине гостя#

При оформлении сервер снова проверяет доступность, в том числе стоп-лист. При отказе гость получает перечень недоступных позиций; система не вырезает их из суммы молча. Попросите гостя проверить корзину и оформить заказ заново.

Агрегаторы доставки#

Отправка стопа в Wolt, Glovo, Яндекс Еду и Deliveroo реализована, но проверена на тестовых имитациях; боевые подключения не подтверждены. Локальный стоп точки туда пока не передаётся, а истечение срока общего стопа не отправляет автоматический возврат. Проверяйте доступность непосредственно в кабинете площадки.


Как гость видит недоступные позиции#

На клиентском меню блюдо, недоступное прямо сейчас (вне расписания или на стопе):

  • Отображается затемнённым (прозрачность снижена).
  • Кнопка «добавить в корзину» недоступна.
  • Под ценой появляется подсказка со временем: 🕒 09:00–12:00 — когда блюдо снова появится в продаже.
  • Блюдо, снятое через «86», помечено красным бейджем STOP (в магазине — плашкой «Распродано»), а по тапу открывается пояснение с иконкой 🚫.

Гость видит весь ассортимент — понимает, что есть в заведении, но не может заказать позицию вне её временно́го окна.


Как POS реагирует на расписание и happy-hour#

  • Плитки блюд, недоступных по расписанию или снятых через «86», приглушены: обычный официант в чек их не добавит. У сотрудника с правами администратора зала плитка остаётся нажимаемой — иначе он не смог бы снять стоп долгим нажатием.
  • Если у блюда действует happy-hour, в тайле отображается сниженная цена (обычная — зачёркнута).
  • Долгое нажатие по плитке ставит блюдо на стоп или снимает его — для сотрудников с правами администратора зала.
  • POS вычисляет время в часовом поясе локации так же, как клиентское меню, — расхождений нет.

Сменить период меню вручную#

Завтрак закончился раньше, а обеденное меню по расписанию откроется только в 12:00? Переключите период сразу:

  1. На кассе откройте «⋯ Ещё» → «👔 Панель управляющего» (нужны права на раздел «Меню» или PIN такого сотрудника).
  2. Выберите «🕐 Сменить период меню».
  3. В списке — ближайшие периоды своих меню и категорий с расписанием, например «Обед — по расписанию с 12:00 (через 1 ч 30 мин)». Выберите нужный.
  4. Плитки кассы сразу покажут обеденные позиции. QR-меню, киоск и экраны меню получат то же после обновления страницы (витрина раздаётся через CDN — это занимает немного времени).

Переключение снимается само, когда период начнётся по расписанию. Вернуть расписание раньше — «Вернуть по расписанию» в том же окне. Цены happy hour идут по настоящим часам: смена периода меняет только то, что доступно к заказу. Сервер заказа проверяет окна блюд по тем же часам периода, поэтому гость может оформить обеденную позицию сразу.

Касса в 10:30: «⋯ Ещё» → «👔 Панель управляющего» → «🕐 Сменить период меню» → «Обед · по расписанию с 12:00»; плитки завтрака гаснут, обеденные («Комплексный обед», «Лёгкий обед», «Селёдка под шубой») становятся активными
Что происходит в записи

В приложениях кассы для Android, Windows и Ubuntu кнопка 🕒 стоит в шапке приёма заказа. Она видна, пока у позиций есть расписание или действует переключение. Список и «Вернуть по расписанию» те же, право то же: нет права у текущего сотрудника — касса попросит PIN того, у кого оно есть. Без сети переключить нельзя. Позиции вне своего окна на такой кассе серые, с подписью «Сейчас недоступно»: их нельзя добавить ни с плитки, ни сканером.

Касса на планшете Android: приём заказа, поверх окно «Сменить период меню» со строкой «Сейчас: Обед, до 12:00», кнопкой «Вернуть по расписанию» и списком «Завтрак · начнётся в 08:00», «Обед · начнётся в 12:00»; плитки завтрака серые, подпись на них обрезана до «Сейчас»

Ограничения#

  • Стоп действует на позицию целиком, а не на отдельный вариант. В окне смены можно выбрать свою точку; общий стоп доступен управляющему. Мобильные и Windows-приложения админки пока учитывают только общий уровень.
  • Автоматический стоп по складским остаткам может не появиться в списке «Сейчас нет»: проверяйте также остатки.
  • Счётчик порций — веб-касса и KDS. Приложения кассы для Android, Windows и Ubuntu списывают порции на сервере, но остатка на плитке («ост. 5») пока не показывают и кнопки «🔢 Порции» в них нет. На cenaly.ru позиция уходит в стоп на витрине после того, как на кассе откроют рабочее место; заказ гостя сверх счётчика сервер отклоняет сразу.
  • Автовозврат из стоп-листа до агрегаторов не доезжает. Срок истекает, позиция возвращается у вас, а площадку об этом никто не будит.
  • Живых агрегаторов пока нет. Отправка «86» в Wolt, Glovo, Яндекс Еду и Deliveroo написана и проверена на моках; боевые подключения не сделаны.
  • Happy hour снижает цену, только если правило даёт цену ниже базовой, в своё окно — «скидка только для зала» отдельной осью не задаётся.
  • Витрина раздаётся через CDN. Изменение расписания доезжает до гостя не мгновенно.
  • Сезоны и цены с даты учитывают веб-касса, приложения кассы для Android, Windows и Ubuntu, QR-меню, киоск, экраны меню и сервер. Приложение официанта для Windows сезоны не учитывает. Выгрузки в агрегаторы и прайс-фиды получают цену при следующем обновлении меню точки.
  • Напечатанный ценник сам не меняется. Окно печати ценников и терминал сбора данных показывают цену, действующую сегодня по календарю точки. Ценник, напечатанный до даты, перепечатайте после неё. Залог или сбор к позиции в заказе гостя сервер тоже считает по цене на сегодня. Своя цена склада с причиной по-прежнему сильнее.
  • Ручную смену периода другая касса точки увидит не сразу: приложение и веб-касса той же точки получают её при следующем чтении настроек или обновлении страницы. Приложение официанта период не переключает, приложение официанта для Windows расписание позиций не учитывает.

Устранение неполадок#

Симптом Причина Что делать
Позиция всё ещё видна Стоп запрещает покупку, но не обязательно скрывает карточку; возможна задержка кэша Проверьте возможность заказа, нужную точку и уровень стопа; обновите страницу
Стоп или расписание заканчивается не вовремя Неверный часовой пояс точки Проверьте пояс и показанный момент возврата
Happy hour не применился на кассе Позиция или текущее время не входят в правило Проверьте окно времени и состав правила
Позиция вернулась сама Истёк выбранный срок стопа Если нужен ручной возврат, выбирайте «До отмены»
Позиция в «Сейчас нет» с подписью «закончилось по счётчику» Порции счётчика кончились Введите новое число порций или нажмите «Вернуть», чтобы снять счётчик
«Вернуть» не помогло Остался общий стоп, локальный стоп другой точки или ограничение остатка Проверьте нужный уровень и склад; общий стоп снимает управляющий
У агрегатора позиция продаётся Локальный стоп не передаётся; живые подключения не подтверждены Снимите позицию в кабинете площадки вручную

Частые вопросы#

Можно ли задать разные расписания для одного блюда в разных локациях?#

Расписание задаётся на уровне блюда (глобально). Если у вас несколько локаций в разных часовых поясах, время вычисляется в часовом поясе каждой конкретной локации — одно правило «завтрак до 12:00» будет работать по местному времени в каждой точке.

Что будет, если гость попытается заказать блюдо не по расписанию?#

Кнопка добавления в корзину заблокирована. Блюдо остаётся видным, но недоступным для заказа — гость понимает, что позиция есть в меню, и видит, когда она откроется.

Happy-hour распространяется на варианты и добавки?#

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

Нужно ли переиздавать меню после изменения расписания?#

Изменения расписания блюда публикуются автоматически при сохранении. Расписание кастомного меню также применяется при сохранении.

Можно ли поставить блюдо на стоп прямо из кассы?#

Да. Нажмите «Стоп-лист» на кассе: можно найти позицию, выбрать срок и остановить сразу несколько строк. Возвращаться в редактор меню не нужно.


Связанные разделы#

  • QR-меню — настройка клиентского меню, кастомные меню и разделы
  • Касса (POS) — приём заказов персоналом, реакция на расписание и happy-hour
  • Кухня (KDS) — экран кухни, получает только доступные заказы
  • Заказы — мониторинг и управление заказами
  • Мультилокации — часовые пояса задаются отдельно для каждой локации