Решения · Рестораны и HoReCa
Меню по QR-коду, которое читается на телефоне, в полумраке, на трёх языках — и не ставит ни одного cookie.
Меню заведения — это не брошюра: в нём цены и объёмы должны быть точными, оно часто меняется и читается людьми, говорящими на трёх языках. Мы строим меню как данные, генерируем страницу из них и проверяем перед каждой публикацией, в том числе что цены идут вниз в каждой категории и что каждая фотография существует.
Уже построеноДва цифровых меню в production, проверяемые снаружи сегодня. Первое: 119 продуктов в 21 категории, с ценой, объёмом, составом и фотографией, плюс короткий текст представления и набор рекомендаций по сочетанию для каждого продукта; генератор имеет 402 строки, а проверка перед публикацией — 233 строки и 16 блоков. Второе, сайт-сестра с тем же движком: 146 продуктов в 31 категории, генератор на 377 строк, проверка на 210 строк с 14 блоками, а непрерывная интеграция регенерирует страницу из источников и отклоняет изменение, если результат отличается от файла в репозитории. Оба отвечают 200, и ни один не ставит cookie — проверено мной 06.09.2026. Мы также говорим, что это две работы с одним и тем же движком и одним и тем же владельцем, а не две независимые работы.
Отсканированный PDF по QR-коду не решает ничего из того, что заведение должно решать. В нём нельзя искать, он не переводится, на телефоне не масштабируется нормально и его нельзя изменить без повторной печати кода. А меню часто меняется: кухня убирает блюдо, бар получает другой бренд, цена позиции растёт. Меню — это набор данных, который меняется еженедельно, а не документ, напечатанный один раз.
Поэтому мы рассматриваем его как данные. Реальные источники — это несколько структурированных файлов: товары, описательные тексты, рекомендации по сочетанию, переводы, — а написанный на Python генератор собирает из них одну страницу. В одном из заведений: 119 товаров в 21 категории, каждый с ценой, объёмом, составом и фотографией, плюс 119 коротких текстов и 119 наборов «с чем сочетается». В другом: 146 товаров в 31 категории. Страница не редактируется напрямую — она пересобирается.
Перевод не ограничивается кнопками. Румынский — основа, а русский и английский покрывают категории, наименования, объёмы, составы, 82 ярлыка вкуса и все описательные тексты. В городе, где соседний стол заказывает на другом языке, меню, переведённое наполовину, раздражает сильнее, чем непереведённое: оно заставляет думать, что вы можете прочитать всё.
Часть, которую мы считаем самой важной и которую никто не просит в брифе: корзина, список избранного и разделение счёта работают в браузере, без аккаунта и без сервера, а сайт не ставит ни одного cookie и не запрашивает ничего у стороннего домена. Это не обещание из политики конфиденциальности — это правило, заданное автоматическими проверками, которые запускаются перед каждой публикацией и отклоняют изменение, если появился какой-либо трекер, какой-либо внешний ресурс или какой-либо шрифт, взятый у кого-то ещё.