Меню для клієнтів
Меню для клієнтів - це публічна вебсторінка за адресою handy.cafe/{your-slug}. Клієнти відкривають її, скануючи QR-код на своєму столі. Ця сторінка описує увесь шлях клієнта від початку до кінця, щоб ви могли пояснити його персоналу і спланувати запуск.
Структура URL
Кожен стіл має унікальний URL у форматі handy.cafe/{cafe-slug}/{table-code}. QR-код кодує цей URL разом із короткоживучим токеном, який доводить справжність наклейки. Коли клієнт сканує QR:
- Телефон відкриває URL у браузері за замовчуванням.
- Сторінка звіряє slug і код столу через хмарний API.
- Якщо стіл має стан
out_of_order, сторінка показує повідомлення про недоступність. - Якщо стіл має стан
idle, сторінка пояснює, що персонал ще не посадив клієнта, і просить звернутися по допомогу. - Якщо стіл має стан
in_use, сторінка запитує 6-значний код безпеки.
Перевірка коду безпеки
Код безпеки гарантує, що замовлення може робити лише клієнт, який сидить саме за цим столом. Це запобігає шахрайським замовленням від людини, яка побачила QR на фото або стоїть поза межами кафе.
Після того як клієнт вводить код:
- API перевіряє код за хешованим значенням, збереженим на столі.
- Якщо код правильний, створюється сеанс і повертається токен.
- Токен зберігається в cookie (
hc_menu_session). Резервний Bearer token також зберігається в локальному сховищі пристрою. Це потрібно для iPhone Safari, який у деяких конфігураціях може блокувати сторонні cookie. - Клієнт перенаправляється до меню.
Сеанс дійсний 24 години від моменту видачі. Якщо клієнт закриє браузер і повернеться на тому самому пристрої, сеанс все одно працюватиме, і він зможе зайти знову без повторної перевірки.
Мови
Меню підтримує 24 мови: арабську, німецьку, грецьку, англійську, іспанську, фарсі, французьку, гінді, індонезійську, італійську, японську, корейську, малайську, польську, португальську, румунську, російську, тайську, тагальську, турецьку, українську, урду, в'єтнамську та китайську.
Під час першого відкриття сторінка аналізує заголовок Accept-Language із браузера та вибирає найкращу відповідність. Клієнт може змінити мову будь-коли через перемикач угорі меню. Обрана мова запам'ятовується на час сеансу.
Назви товарів, описи та інгредієнти не перекладаються автоматично - вони відображаються тією мовою, яку ви ввели в редакторі меню. Елементи інтерфейсу, такі як "Додати в кошик", "Оформити" та повідомлення платіжного процесу, повністю локалізовані.
Тема
Меню підтримує світлу та темну тему. Типово використовується режим, що враховує пристрій: якщо операційна система клієнта налаштована на темний режим, меню відкривається в темній темі. Перемикач теми вгорі дає змогу змінити її вручну.
Фірмовий заголовок
Заголовок у верхній частині меню показує:
| Елемент | Джерело |
|---|---|
| Верхнє зображення | Завантажується в Налаштування > Кафетерія (необов'язково) |
| Логотип | Завантажується в Налаштування > Кафетерія |
| Відображуване ім'я | Із профілю вашого закладу |
| Адреса | Із профілю закладу (показується внизу) |
| Телефон | Із профілю закладу (показується внизу) |
Налаштуйте ці поля, щоб створити найкраще враження. Клієнти краще впізнають бренд, коли меню виглядає як фізичні вивіски вашого закладу.
Перегляд меню
Меню згруповане за категоріями. Усередині категорії товари показуються з мініатюрою, назвою, коротким описом і ціною.
Натискання на товар відкриває картку товару. На ній показуються:
- Повне фото.
- Опис у Markdown.
- Рядок інгредієнтів.
- Індикатор часу приготування (лише коли ввімкнено Показувати час приготування в меню).
- Позначка одиниці, якщо вона налаштована (наприклад, "250 ml").
- Вибір варіантів для всіх груп варіантів, прив'язаних до товару.
- Лічильник кількості.
- Кнопка "Додати в кошик".
Обов'язкові групи варіантів блокують кнопку "Додати в кошик", доки клієнт не обере опцію.
Кошик
Іконка кошика розташована постійно, щоб клієнт міг дістатися до нього з будь-якого екрана. Вміст кошика зберігається під час переходу між сторінками на сайті; перегляд меню, кошика і назад не втрачає позиції.
Кошик дає змогу клієнту:
- Змінювати кількість у кожному рядку.
- Видаляти рядок.
- Додавати необов'язкову примітку.
- Вказувати номер телефону (необов'язково).
Проміжний підсумок, ПДВ і загальна сума показуються в реальному часі.
Оформлення замовлення
Крок Оформити пропонує один або два способи оплати залежно від налаштувань:
Готівка
Якщо онлайн-оплату вимкнено в налаштуваннях, показується лише Cash. Клієнт підтверджує замовлення, і воно одразу надсилається. Коли замовлення прибуде, клієнт платить касиру.
Онлайн (Stripe Checkout)
Якщо онлайн-оплату ввімкнено, з'являється варіант Online. Після підтвердження:
- Замовлення створюється у стані очікування.
- Повертається client secret для Stripe Checkout.
- Вбудований інтерфейс Stripe відкривається прямо на сторінці. Клієнт вводить дані картки.
- Після успішної авторизації Stripe підтверджує списання, і замовлення переходить у стан paid.
- Клієнт бачить сторінку успіху.
Невдалі або покинуті платежі залишають замовлення в стані очікування. Повторну спробу можна зробити в межах того самого сеансу, або персонал може скасувати замовлення з панелі Замовлення.
Сторінка успіху
Після успішного оформлення клієнт потрапляє на сторінку чека, де показуються:
- Номер і час замовлення.
- Кожен рядок із кількістю, варіантами та сумою рядка.
- Проміжний підсумок, ПДВ і загальна сума.
- Спосіб оплати.
- Значок статусу платежу (pending для готівки; paid для онлайн).
- Кнопка "Place Another Order", яка повертає в меню без втрати сеансу.
- Посилання "Back to Menu".
Опитування статусу замовлення
Після надсилання замовлення перегляд клієнта періодично опитує endpoint статусу, щоб відображати оновлення з кухні. Якщо персонал переведе позицію з preparing у ready, клієнт побачить, як значок у рядку оновиться автоматично протягом кількох секунд.
Це зручно для самообслуговування на видачі. Клієнт може спокійно чекати за столом, доки меню не покаже, що замовлення готове.
Чого клієнти не можуть робити
- Клієнти не можуть переглядати меню без коду безпеки. Крок перевірки завжди обов'язковий.
- Клієнти не можуть робити замовлення для столів у стані idle або out_of_order.
- Клієнти не можуть редагувати або скасовувати замовлення після надсилання. Скасування виконує персонал із панелі Замовлення.
Поради для зручного досвіду клієнтів
- Друкуйте QR-наклейки з назвою кафе та чіткою інструкцією на кшталт "Скануйте, щоб замовити. Запитайте код у персоналу." Інакше клієнти іноді пропускають крок перевірки.
- Тримайте назви категорій і товарів короткими. Довгі назви переносяться на мобільних і зсувають зображення нижче першого екрана.
- Завантажуйте принаймні одне фото на кожен товар. Меню з великою кількістю зображень конвертує краще, ніж лише текст.
- Вмикайте Показувати час приготування в меню лише після того, як динамічна оцінка навчиться. Перші 30 днів статичне значення може бути занадто щедрим або занадто жорстким, і клієнти це помічають.
- Перед відкриттям для клієнтів протестуйте весь шлях самі з телефону. Скануйте реальний QR, введіть код, зробіть тестове замовлення і переконайтеся, що воно з'явилося на вашій панелі.