Meniul clientului
Meniul clientului este pagina web publică de la handy.cafe/{your-slug}. Clienții o accesează scanând codul QR de la masa lor. Această pagină descrie fluxul complet al clientului, ca să îl puteți explica personalului și să vă planificați lansarea.
Structura URL-ului
Fiecare masă are un URL unic de forma handy.cafe/{cafe-slug}/{table-code}. Codul QR codifică acest URL plus un token cu durată scurtă care dovedește că autocolantul este autentic. Când clientul scanează QR-ul:
- Telefonul lui deschide URL-ul în browserul implicit.
- Pagina rezolvă slug-ul și codul mesei prin API-ul cloud.
- Dacă masa este
out_of_order, pagina afișează un mesaj că nu este disponibilă. - Dacă masa este
idle, pagina explică faptul că personalul nu a așezat încă clientul și îi cere să solicite ajutor. - Dacă masa este
in_use, pagina solicită codul de securitate din 6 cifre.
Verificarea codului de securitate
Codul de securitate asigură că doar clientul așezat la masă poate plasa comenzi. Îl împiedică pe cineva care a văzut QR-ul dintr-o fotografie sau din afara cafenelei să facă comenzi frauduloase.
După ce clientul introduce codul:
- API-ul validează codul față de valoarea hash-uită stocată pe masă.
- Dacă este valid, se creează o sesiune și este returnat un token.
- Token-ul este stocat într-un cookie (
hc_menu_session). O variantă de rezervă Bearer token este păstrată și în storage-ul local al dispozitivului. Acest lucru este necesar pe iPhone Safari, care poate bloca cookie-urile third-party în anumite configurații. - Clientul este redirecționat către meniu.
Sesiunea este valabilă 24 de ore de la emitere. Dacă clientul închide browserul și revine pe același dispozitiv, sesiunea tot funcționează și poate reintra fără o nouă verificare.
Limbi
Meniul suportă 24 de limbi: arabă, germană, greacă, engleză, spaniolă, farsi, franceză, hindi, indoneziană, italiană, japoneză, coreeană, malay, poloneză, portugheză, română, rusă, thailandeză, tagalog, turcă, ucraineană, urdu, vietnameză și chineză.
La prima vizită, pagina inspectează antetul Accept-Language din browser și alege cea mai bună potrivire. Clientul poate schimba limba oricând folosind selectorul din partea de sus a meniului. Limba aleasă este reținută pentru sesiune.
Numele produselor, descrierile și ingredientele nu sunt traduse automat; ele apar în limba în care le-ați introdus în editorul de meniu. Etichetele din interfață precum "Add to Cart", "Checkout" și mesajele fluxului de plată sunt localizate complet.
Temă
Meniul suportă o temă deschisă și o temă închisă. Implicitul este adaptat dispozitivului: dacă sistemul de operare al clientului este setat pe modul întunecat, meniul se deschide în modul întunecat. Un comutator de temă din partea de sus îi permite clientului să schimbe aspectul.
Antetul branduit
Antetul din partea de sus a meniului afișează:
| Element | Sursa |
|---|---|
| Header Image | Încărcată din Settings > Cafenea (opțional) |
| Logo | Încărcat din Settings > Cafenea |
| Display Name | Din profilul afacerii |
| Address | Din profilul afacerii (afișată în subsol) |
| Phone | Din profilul afacerii (afișat în subsol) |
Personalizați aceste câmpuri pentru cea mai bună impresie asupra clientului. Clienții recunosc brandul când meniul arată ca semnalistica fizică a locației dvs.
Navigarea prin meniu
Meniul este grupat pe categorii. În interiorul unei categorii, produsele sunt afișate cu miniatură, nume, descriere scurtă și preț.
Atingerea unui produs deschide fișa produsului. Fișa afișează:
- Fotografia completă.
- Descrierea în Markdown.
- Linia cu ingredientele.
- Indicatorul cu timpul de preparare (doar când Show Prep Time on Menu este activat).
- Eticheta de unitate, dacă este configurată (de exemplu "250 ml").
- Selectoarele de variante pentru grupurile de variante atașate produsului.
- Controlul cantității.
- Butonul Add to Cart.
Grupurile de variante obligatorii blochează butonul Add to Cart până când clientul selectează o opțiune.
Coșul
Pictograma coșului este plasată într-o locație persistentă, astfel încât clienții să poată ajunge la el de oriunde. Conținutul coșului persistă în timpul navigării în site; trecerea din coș în meniu și înapoi nu pierde articolele.
Coșul îi permite clientului să:
- Ajusteze cantitatea pe linie.
- stearga o linie.
- Adauge o notă opțională.
- Introducă un număr de telefon (opțional).
Subtotalul, TVA-ul și totalul sunt afișate în timp real.
Plasarea comenzii
Pasul Checkout oferă una sau două metode de plată, în funcție de configurare:
Cash
Dacă plata online este dezactivată în setări, este afișată doar opțiunea Cash. Clientul confirmă comanda și aceasta este trimisă imediat. Clientul plătește casierul când comanda ajunge.
Online (Stripe Checkout)
Dacă plata online este activată, Online apare ca opțiune. La trimitere:
- Comanda este creată în stare pending.
- Este returnat un client secret de Stripe Checkout.
- Interfața Stripe incorporată se deschide inline. Clientul introduce detaliile cardului.
- La autorizare reușită, Stripe confirmă debitarea și comanda trece în paid.
- Clientul vede pagina de succes.
Plățile eșuate sau abandonate lasă comanda în stare pending. Se poate face o a doua încercare din aceeași sesiune sau personalul poate anula comanda din panoul Orders.
Pagina de succes
După o trimitere reușită, clientul ajunge pe o pagină de bon care afișează:
- Numărul și ora comenzii.
- Fiecare linie cu cantitatea, variantele și totalul liniei.
- Subtotalul, TVA-ul și totalul general.
- Metoda de plată.
- Iconița stării plății (pending pentru cash; paid pentru online).
- Un CTA "Place Another Order" care îl întoarce la meniu cu sesiunea intactă.
- Un link "Back to Menu".
Polling pentru starea comenzii
După trimitere, vizualizarea clientului asupra comenzii interoghează endpoint-ul de stare pentru a reflecta actualizările din bucătărie. Dacă personalul mută un articol din preparing în ready, clientul vede cum insigna de pe linie se actualizează automat în câteva secunde.
Acest lucru este util pentru ridicarea de la tejghea în regim self-service. Clientul se poate relaxa la masă până când meniul îi spune că comanda este gata.
Ce nu pot face clienții
- Clienții nu pot răsfoi meniul fără codul de securitate. Pasul de verificare este întotdeauna obligatoriu.
- Clienții nu pot plasa comenzi pentru mese care sunt
idlesauout_of_order. - Clienții nu pot edita sau anula o comandă după ce a fost trimisă. Anularea este o acțiune de personal din panoul Orders.
Sfaturi pentru o experiență curată a clientului
- Imprimați autocolantele QR cu numele cafenelei și o instrucțiune clară, precum "Scanați pentru a comanda. Cereți codul personalului." Altfel, clienții ratează uneori pasul de verificare.
- Păstrați numele categoriilor și ale produselor scurte. Denumirile lungi se rup pe mobil și împing imaginile sub pliul ecranului.
- Încărcați cel puțin o fotografie pentru fiecare produs. Meniurile bogate în imagini convertesc mai bine decât cele bazate doar pe text.
- Activați Show Prep Time on Menu abia după ce estimarea dinamică a fost antrenată. În primele 30 de zile, valoarea statică poate fi prea generoasă sau prea strânsă, iar clienții observă asta.
- Testați singur fluxul complet de pe telefon înainte de a deschide pentru clienți. Scanați un QR real, introduceți codul, plasați o comandă de test și verificați că apare în panoul dvs.