Menu Pelanggan
Menu pelanggan adalah halaman web publik di handy.cafe/{your-slug}. Pelanggan membukanya dengan memindai kode QR pada meja mereka. Halaman ini menjelaskan alur pelanggan dari awal sampai akhir supaya Anda bisa menjelaskannya ke staf dan merencanakan peluncuran.
Struktur URL
Setiap meja punya URL unik berbentuk handy.cafe/{cafe-slug}/{table-code}. Kode QR meng-encode URL ini plus token berumur pendek yang membuktikan stiker itu autentik. Saat pelanggan memindai QR:
- Ponsel mereka membuka URL di browser bawaan.
- Halaman menyelesaikan slug dan kode meja terhadap cloud API.
- Jika meja berstatus
out_of_order, halaman menampilkan pemberitahuan tidak tersedia. - Jika meja berstatus
idle, halaman menjelaskan bahwa staf belum mendudukkan pelanggan dan meminta mereka memanggil bantuan. - Jika meja berstatus
in_use, halaman meminta kode keamanan 6 digit.
Verifikasi Kode Keamanan
Kode keamanan memastikan hanya pelanggan yang benar-benar duduk di meja itu yang bisa memesan. Ini mencegah seseorang yang melihat QR dari foto atau dari luar kafe membuat pesanan palsu.
Setelah pelanggan memasukkan kode:
- API memvalidasi kode terhadap nilai hash yang tersimpan pada meja.
- Jika valid, sesi dibuat dan token dikembalikan.
- Token disimpan dalam cookie (
hc_menu_session). Fallback Bearer token juga disimpan di local storage perangkat. Ini diperlukan pada Safari iPhone, yang bisa memblokir third-party cookie pada beberapa konfigurasi. - Pelanggan diarahkan ke menu.
Sesi berlaku selama 24 jam sejak diterbitkan. Jika pelanggan menutup browser lalu kembali di perangkat yang sama, sesi tetap bekerja dan mereka bisa masuk lagi tanpa verifikasi ulang.
Bahasa
Menu mendukung 24 bahasa: Arab, Jerman, Yunani, Inggris, Spanyol, Farsi, Prancis, Hindi, Indonesia, Italia, Jepang, Korea, Melayu, Polandia, Portugis, Rumania, Rusia, Thai, Tagalog, Turki, Ukraina, Urdu, Vietnam, dan Mandarin.
Pada kunjungan pertama, halaman memeriksa header Accept-Language dari browser dan memilih kecocokan terbaik. Pelanggan bisa mengganti bahasa kapan saja dengan pemilih di bagian atas menu. Bahasa yang dipilih akan diingat selama sesi.
Nama produk, deskripsi, dan bahan tidak diterjemahkan otomatis; semuanya tampil dalam bahasa apa pun yang Anda masukkan di editor menu. Label UI seperti "Tambah ke Keranjang", "Pembayaran", dan pesan alur pembayaran sepenuhnya dilokalkan.
Tema
Menu mendukung tema terang dan tema gelap. Default-nya menyesuaikan perangkat: jika sistem operasi pelanggan disetel ke mode gelap, menu akan terbuka dalam mode gelap. Toggle tema di bagian atas memungkinkan pelanggan berpindah.
Header Bermerek
Header di bagian atas menu menampilkan:
| Elemen | Sumber |
|---|---|
| Gambar Header | Diunggah dari Pengaturan > Kafetaria (opsional) |
| Logo | Diunggah dari Pengaturan > Kafetaria |
| Nama Tampilan | Dari profil bisnis Anda |
| Alamat | Dari profil bisnis Anda (ditampilkan di footer) |
| Telepon | Dari profil bisnis Anda (ditampilkan di footer) |
Sesuaikan kolom ini untuk kesan terbaik kepada pelanggan. Pelanggan akan mengenali merek ketika menu terlihat seperti papan nama fisik venue Anda.
Menjelajahi Menu
Menu dikelompokkan berdasarkan kategori. Di dalam kategori, produk ditampilkan dengan thumbnail, nama, deskripsi singkat, dan harga.
Mengetuk produk akan membuka lembar produk. Lembar ini menampilkan:
- Foto penuh.
- Deskripsi Markdown.
- Baris bahan.
- Chip waktu persiapan (hanya saat Tampilkan Waktu Siap di Menu aktif).
- Label satuan jika dikonfigurasi (misalnya "250 ml").
- Pemilih varian untuk kelompok varian apa pun yang ditempelkan pada produk.
- Pengatur jumlah.
- Tombol Tambah ke Keranjang.
Kelompok varian yang wajib akan memblokir tombol Tambah ke Keranjang sampai pelanggan memilih opsi.
Keranjang
Ikon keranjang berada di posisi tetap agar pelanggan bisa menjangkaunya dari layar mana pun. Isi keranjang bertahan saat navigasi di dalam situs; berpindah dari keranjang ke menu dan kembali lagi tidak akan menghilangkan item.
Keranjang memungkinkan pelanggan:
- Mengatur jumlah per baris.
- Menghapus satu baris.
- Menambahkan catatan opsional.
- Menyediakan nomor telepon (opsional).
Subtotal, PPN, dan total ditampilkan secara real-time.
Membuat Pesanan
Langkah Pembayaran menawarkan satu atau dua metode pembayaran tergantung konfigurasi Anda:
Tunai
Jika pembayaran online dinonaktifkan di pengaturan Anda, hanya Tunai yang ditampilkan. Pelanggan mengonfirmasi pesanan dan pesanan langsung dikirim. Pelanggan membayar kasir saat pesanan datang.
Online (Stripe Checkout)
Jika pembayaran online diaktifkan, Online muncul sebagai opsi. Saat dikirim:
- Pesanan dibuat dalam status pending.
- Stripe Checkout client secret dikembalikan.
- UI embedded Stripe terbuka inline. Pelanggan memasukkan detail kartu.
- Jika otorisasi berhasil, Stripe mengonfirmasi tagihan dan pesanan berpindah ke paid.
- Pelanggan melihat halaman sukses.
Pembayaran yang gagal atau ditinggalkan akan meninggalkan pesanan dalam status pending. Percobaan kedua bisa dilakukan dari sesi yang sama, atau staf dapat membatalkan pesanan dari dasbor Pesanan.
Halaman Sukses
Setelah pengiriman berhasil, pelanggan akan masuk ke halaman struk yang menampilkan:
- Nomor dan waktu pesanan.
- Setiap baris dengan jumlah, varian, dan total baris.
- Subtotal, PPN, dan total akhir.
- Metode pembayaran.
- Ikon status pembayaran (pending untuk cash; paid untuk online).
- CTA "Pesan Lagi" yang kembali ke menu dengan sesi tetap utuh.
- Tautan "Kembali ke Menu".
Polling Status Pesanan
Setelah pengiriman, tampilan pesanan pelanggan melakukan polling ke endpoint status untuk mencerminkan pembaruan dari dapur. Jika staf memindahkan item dari preparing ke ready, pelanggan melihat badge pada baris itu diperbarui otomatis dalam hitungan detik.
Ini berguna untuk pengambilan mandiri di konter. Pelanggan bisa tetap santai di meja sampai menu memberi tahu bahwa pesanan sudah siap.
Apa yang Tidak Bisa Dilakukan Pelanggan
- Pelanggan tidak bisa menjelajahi menu tanpa kode keamanan. Langkah verifikasi selalu wajib.
- Pelanggan tidak bisa memesan untuk meja yang
idleatauout_of_order. - Pelanggan tidak bisa mengedit atau membatalkan pesanan setelah dikirim. Pembatalan adalah aksi staf dari dasbor Pesanan.
Tips untuk Pengalaman Pelanggan yang Rapi
- Cetak stiker QR dengan nama kafe dan instruksi yang jelas seperti "Pindai untuk memesan. Minta kode pada staf." Kalau tidak, pelanggan kadang melewatkan langkah verifikasi.
- Jaga nama kategori dan produk tetap singkat. Nama yang panjang membungkus di ponsel dan mendorong gambar ke bawah layar.
- Unggah setidaknya satu foto per produk. Menu yang kaya gambar cenderung menghasilkan konversi lebih tinggi daripada menu yang hanya teks.
- Aktifkan Tampilkan Waktu Siap di Menu hanya setelah estimasi dinamis Anda cukup terlatih. Selama 30 hari pertama, nilai statis bisa terlalu generik.
- Jika venue Anda punya banyak bahasa, uji menu dari beberapa perangkat untuk memastikan pemilih bahasa dan tema bekerja seperti yang diharapkan.