1. Kasir (Pesanan & Pembayaran)
A. Untuk Kasir: Buka Kasir (Shift) Dulu
โ ๏ธ Wajib buka kasir (shift) sebelum transaksi supaya kas tercatat ke shift yang benar.
- Di dashboard, tap card ungu Tap untuk mulai shift / Buka Kasir
- Muncul halaman Buka Kasir dengan info Kasir & Tanggal otomatis terisi
- Isi Kas Awal โ jumlah uang tunai di laci kasir saat ini
- Opsional: Catatan Pembukaan
- Tap tombol biru Buka Kasir
- Status di home berubah jadi Shift Aktif (card hijau, ada hint "Tap untuk tutup kasir")

B. Pilih Tipe Pesanan
Saat masuk halaman Kasir pertama kali, dialog Pilih Tipe Pesanan muncul untuk transaksi ini:
Dine-in
Makan di tempat, pakai meja
Take Away
Bungkus / bawa pulang
Delivery
Antar ke alamat customer

Setelah pilih, muncul halaman Kasir lengkap dengan:
- Header: Kasir + icon meja (kanan atas) untuk akses Pesanan Terbuka
- Search bar + barcode/scan icons
- Chip tipe pesanan: Dine-in (selected, merah) / Take Away / Delivery โ bisa diganti kapan saja
- Filter kategori: dropdown Semua Kategori
- 3 Tab kategori produk:
- Produk (default, oranye) โ semua menu
- Paket (badge angka) โ paket bundling/menu set
- Favorit โ produk yang di-bookmark via icon bookmark di card produk
- Per produk card: image, nama, kategori chip, badge ADD-ON kalau ada modifier, stok info (merah kalau low), harga, tombol + Tambah, icon bookmark (kanan atas) untuk toggle Favorit
- Right panel: Keranjang dengan total & tombol Bayar

๐ก Custom Order Type:
Selain 3 tipe default, Anda bisa buat custom order type di Pengaturan โ Tipe Pesanan โ misalnya GoFood, GrabFood, ShopeeFood dengan persentase komisi yang berbeda. Setiap tipe bisa punya harga sendiri per produk (Harga per Tipe Pesanan).
C. Tambah Menu ke Keranjang
- Cari & Pilih Menu:
- Tap menu dari grid produk
- Search via search bar
- Filter kategori (Makanan, Minuman, Dessert, dll)
- Scan barcode (tap ikon barcode)
- Kalau Menu Punya Varian:
- Dialog Pilih Varian muncul (contoh: Kopi โ Hot/Ice, Size S/M/L)
- Pilih varian yang diinginkan
- Harga & stok otomatis menyesuaikan varian yang dipilih
- Kalau Menu Punya Modifier / Add-on:
- Produk dengan modifier ditandai badge ADD-ON oranye di card
- Saat tap + Tambah, dialog Tambah punya field tambahan Add-on / Modifier (clickable card)
- Tap card โ dialog Add-on / Modifier (header ungu) terbuka dengan grup-grup modifier:
- Per grup ada label + indicator "Pilih 1" atau "Pilih min-max"
- Radio button untuk grup Pilih 1 (single select), mis. LEVEL pedas
- Checkbox untuk grup multi-select, mis. TOPING
- Tiap opsi tampilkan harga tambahan (mis. +Rp1.000, +Rp4.000) dengan teks ungu
- Total harga di Subtotal update real-time saat pilih opsi berbayar
- Tap Konfirmasi (ungu) untuk apply modifier, kembali ke dialog Tambah

Dialog Tambah produk dengan field Add-on / Modifier 
Dialog Add-on / Modifier dengan grup-grup - Catatan per Item (untuk Dapur):
- Di cart, tap item โ isi catatan
- Contoh: "Tidak pakai bawang", "Pedas level 5", "Extra sauce"
- Catatan ini otomatis ikut ke KOT (Kitchen Order Ticket)
- Ubah Quantity / Hapus Item:
- Tap +/- untuk ubah qty
- Swipe atau tap X untuk hapus
- Pilih Customer (opsional): untuk tracking loyalty / debt
- Pilih Meja (jika Dine-in): tap daftar meja aktif
- Tap Lanjut Bayar atau Simpan Pesanan
D. Simpan Pesanan (Open Order) vs Lanjut Bayar
Di restoran, biasanya pesanan masuk dulu ke dapur sebelum customer bayar. Kasgo F&B mendukung dua alur:
Alur 1: Simpan Pesanan (Open Order / Pre-Order)
- Setelah tambah semua menu, tap Simpan Pesanan
- Input info: tanggal & jam ambil (untuk Pre-Order catering/kue), meja (jika dine-in), customer, catatan, nomor antrian (jika takeaway)
- Tap Simpan
- KOT otomatis tercetak ke printer dapur
- Pesanan masuk ke daftar Open Order / Pre-Order (belum bayar, belum kurangi stok)
- Kasir lanjut terima order baru tanpa menunggu customer bayar
- Saat customer mau bayar, buka lagi dari Open Order / menu Pre-Order โ Lanjut Bayar
Untuk Pre-Order catering / kue / nasi kotak yang diambil di hari lain, lihat detail di Panduan Pre-Order.
Alur 2: Lanjut Bayar Langsung
- Tap Lanjut Bayar langsung setelah tambah menu
- Masuk ke halaman Konfirmasi Pembayaran (3 step)
- Selesaikan pembayaran
- KOT tercetak bersamaan dengan struk
๐ Lihat Daftar Pesanan Terbuka:
- Di header Kasir, tap icon meja di kanan atas untuk buka bottom sheet Pesanan Terbuka
- Header bottom sheet: "Pesanan Terbuka โ N pesanan aktif"
- Per pesanan tampilkan: nomor meja, customer, jumlah item, total, waktu buat
- Tap 1 pesanan untuk lanjut edit atau bayar
- Tombol + Pesanan Baru di bawah untuk mulai pesanan baru sambil ada yang aktif
- Meja yang dipakai Pesanan Terbuka otomatis berstatus OCCUPIED
- Empty state: "Belum Ada Pesanan Terbuka โ Tambah produk ke keranjang lalu klik 'Simpan Pesanan'"

E. Konfirmasi Pembayaran (2 Step)
Halaman konfirmasi pembayaran Kasgo F&B pakai stepper 2 langkah: Detail (rincian pesanan + Tipe Pesanan + Diskon/Biaya/Pajak) โ Bayar (metode & jumlah).
Step 1: Detail
- Review semua item di keranjang (nama, qty, modifier/add-on, catatan, subtotal)
- Card Tipe Pesanan (Dine-in / Take Away / Delivery) โ bisa diganti di sini
- Pelanggan (opsional, tap untuk pilih dari database)
- Nomor Meja (jika Dine-in) atau Alamat Antar (jika Delivery) โ Take Away tidak munculkan field ini, nomor antrian auto
- Diskon (Rp / %), Biaya Lain, Pajak / Service Charge (sesuai pengaturan toko)
- Total tagihan ditampilkan di bagian bawah
- Tap tombol Lanjut ke Pembayaran โ Step 2
Step 2: Bayar
- Pilih Metode Pembayaran (Tunai, Transfer, QRIS, BON/Piutang)
- Input Uang Diterima (untuk metode Tunai) โ atau pakai quick amount (Uang Pas, 50K, 100K, 200K)
- Kembalian auto-hitung
- Bisa Split Payment (bagi ke beberapa metode) โ tombol di bawah daftar metode
- Tap Selesaikan Pembayaran โ struk & KOT siap cetak



F. Split Bill (Bagi Tagihan)
Fitur untuk membagi satu bill ke beberapa pembayar โ umum di restoran saat makan rame-rame.
3 Jenis Split:
1. BY_AMOUNT โ Bagi Berdasarkan Nominal
Setiap orang bayar nominal yang berbeda-beda. Kasir input jumlah tiap pembayar, total harus sama dengan total tagihan.
2. BY_PERSON โ Bagi Rata per Orang
Total dibagi rata ke sejumlah orang. Kasir input jumlah orang, sistem hitung otomatis per orang.
3. BY_ITEM โ Bagi per Item
Setiap orang bayar untuk item yang mereka pesan. Kasir assign item ke pembayar masing-masing.
Cara Pakai:
- Di Step 2 (Bayar), tap chip Split Payment di bagian bawah daftar metode
- Halaman Split Bill terbuka dengan stepper Pilih Mode โ Bagi Tagihan โ Pembayaran
- Pilih mode: Bagi per Nominal, Bagi per Orang, atau Bagi per Item
- Assign amounts/persons/items sesuai mode
- Setiap pembayar bisa pakai metode pembayaran berbeda (Tunai + QRIS, dll)
- Sistem validasi total split = total tagihan; transaksi tetap 1 transaksi induk dengan multiple payment record

G. Nomor Antrian (Take-away Queue)
Untuk pesanan Take Away, sistem otomatis menerbitkan nomor antrian โ tidak ada field input manual di Step 1. Cukup pilih Tipe Pesanan = Take Away, sistem yang generate.
- Auto-generate saat transaksi disimpan/dibayar
- Tercetak di struk dan KOT
- Auto-reset setiap hari jam 00:00
๐ก Use Case:
Customer datang โ order โ bayar โ terima struk dengan nomor antrian โ tunggu panggilan. Dapur tempel KOT ke makanan dengan nomor yang sama untuk hindari salah panggil.
H. Kitchen Order Ticket (KOT)
KOT adalah struk pesanan untuk dapur, cetak ke printer Bluetooth. Setelah pembayaran berhasil, halaman Pembayaran Berhasil menyediakan tombol ungu Cetak KOT di sebelah Cetak Struk.
Isi KOT:
- Nama toko + waktu
- Nomor transaksi (format
TRX-YYYYMMDD-####) - Nomor meja (jika Dine-in) atau Nomor Antrian (jika Take Away)
- Nama customer (jika dipilih)
- Daftar item dengan:
- Nama menu + qty
- Modifier / add-on yang dipilih (topping, level, dll)
- Catatan per item (pedas, tanpa bawang, extra sauce)

๐จ๏ธ Butuh Printer Bluetooth Terhubung:
Cetak KOT cuma jalan kalau printer Bluetooth sudah pair & izin Bluetooth diberikan. Kalau belum, akan muncul "Izin Bluetooth tidak diberikan". Pair printer dulu di Pengaturan โ Printer Bluetooth.
โ ๏ธ Kasgo F&B belum punya Kitchen Display System:
KOT cuma cetak ke printer Bluetooth, tidak ada layar khusus dapur (KDS) dengan status Pending/Cooking/Ready. Staff dapur masak berdasarkan KOT yang tercetak.
I. Reorder dari Riwayat (Pesan Lagi)
Untuk customer yang sering pesan menu sama (misal pelanggan rutin yang pesan paket meeting), langsung clone transaksi lama.
- Buka menu Riwayat di home
- Cari transaksi yang mau di-reorder (bisa filter per tanggal / pelanggan)
- Tap card transaksi โ halaman detail terbuka
- Tap tombol Pesan Lagi
- Sistem clone semua item ke keranjang Kasir baru โ termasuk varian, modifier, dan catatan per item
- Lanjut ke konfirmasi pembayaran seperti biasa
Catatan: Stok divalidasi ulang saat reorder. Kalau ada menu yang sudah tidak aktif atau habis, sistem skip item itu & kasih notifikasi.
J. Untuk Kasir: Tutup Kasir
Di akhir shift:
- Dari home, tap card hijau Shift Aktif (atau menu Tutup Kasir)
- Halaman Tutup Kasir menampilkan:
- Card pink โ Shift Dibuka (tanggal/jam), Durasi Shift, Kasir
- Kas Awal โ jumlah modal kas saat buka shift
- Penjualan Hari Ini โ Total Transaksi, breakdown per metode (Cash, dll), Total Penjualan
- Di card Hitung Fisik Uang: hitung uang tunai fisik di laci, input ke field Jumlah Uang Aktual (Rp)
- Opsional: Catatan Penutupan (max 500 karakter) โ tulis kalau ada selisih atau kejadian tertentu
- Scroll ke bawah, tap tombol Tutup Kasir
- Sistem hitung selisih (variance) di backend โ expected cash tidak ditampilkan ke Kasir untuk mencegah penyesuaian angka

๐ก Tips:
- Hitung uang fisik dengan teliti sebelum close
- Variance > Rp 10.000 โ review transaksi shift ini
- Owner bisa lihat detail variance & expected cash di Laporan Riwayat Shift