1. Kasir (Transaksi POS)
A. Untuk Kasir: Buka Shift Dulu
โ ๏ธ PENTING: Buka shift dulu sebelum transaksi supaya kas & penjualan 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: isi Catatan Pembukaan (mis. "Kas dari bank", "Shift pagi")
- Tap tombol biru Buka Kasir
- Status di home berubah jadi Shift Aktif (card hijau, ada hint "Tap untuk tutup kasir")

B. Proses Transaksi Dasar
- Masuk ke Kasir:
- Tap menu Kasir dari dashboard
- Atau tap card Tap untuk mulai shift / Buka Kasir di Home

Halaman Home โ entry ke Kasir via menu atau card shift - Pilih Produk:
- Tap card produk di grid kiri
- Tombol "+ Tambah" di card produk untuk tambah cepat
- Scan barcode via icon di search bar (atas kiri)
- Search produk via search bar (Cari nama / scan barcode)
- Filter kategori via dropdown Semua Kategori

Halaman Kasir โ kiri grid produk + search/filter, kanan panel Keranjang - Tambah ke Keranjang:
- Produk single-unit langsung masuk Keranjang (qty 1)
- Produk multi-unit/varian membuka dialog Tambah โ atur Jumlah, Harga Jual per unit, Diskon item, dan Catatan, lalu tap Tambah
- Ubah jumlah di Keranjang: tap tombol
โ/+di item - Hapus item: tap icon tong sampah merah
- Stok otomatis divalidasi

Dialog Tambah untuk produk multi-unit/varian - Lanjut Pembayaran:
- Setelah semua produk masuk, tap Bayar (kanan bawah, sebelah Tahan)
- Akan masuk ke halaman Konfirmasi Pembayaran
C. Konfirmasi Pembayaran
Setelah tap Bayar di Kasir, masuk halaman Konfirmasi Pembayaran. Halaman ini scrollable dengan section sticky Total Pembayaran & tombol Proses Pembayaran di bawah.
1. KERANJANG BELANJA
- Review semua item, qty, & harga
- Tap chip + Tambah di kanan atas untuk balik ke kasir tambah produk lagi
2. CUSTOMER (Opsional)
- Default: Walk-in Customer
- Tap + Pilih untuk attach customer terdaftar (penting untuk tracking loyalty & piutang)
- Atau ketik Nama (Opsional) untuk catat nama tanpa harus terdaftar
3. PESANAN PO (Opsional)
- Toggle Simpan sebagai Pre-Order ON kalau pesanan akan diambil di kemudian hari
- Stok dan pembayaran ditahan sampai pesanan PO diselesaikan

4. DISKON & BIAYA TAMBAHAN
- Diskon: input nilai + dropdown unit
- Pilih Rp untuk diskon nominal (mis.
10000= Rp 10.000) - Pilih % untuk diskon persentase (mis.
10= 10%)
- Pilih Rp untuk diskon nominal (mis.
- PPN: toggle ON untuk tambah pajak. Persentase ditampilkan langsung di label (mis. "PPN 11%") โ atur tarif di Pengaturan โ Pengaturan Bisnis
- Biaya Tambahan: biaya ekstra non-ongkir
- Biaya Ongkir: biaya pengiriman (terpisah dari Biaya Tambahan)
5. Tipe Order (jika Mode Resto/Cafe Aktif)
- Dine In โ makan di tempat
- Take Away โ bawa pulang
- Delivery โ antar
Section ini hanya muncul kalau Mode Bisnis Resto/Cafe diaktifkan di Pengaturan.
6. Catatan (Opsional)
Field Catatan Tambahan untuk keterangan umum transaksi (mis. "ditarik kembali besok", "untuk acara X").
7. DETAIL PEMBAYARAN
- Subtotal โ total sebelum diskon/pajak/biaya
- Baris diskon, pajak, biaya tambahan, ongkir muncul kalau diisi
- TOTAL BELANJA โ angka besar yang harus dibayar
8. METODE PEMBAYARAN
- Split Pembayaran (toggle): aktifkan kalau customer bayar dengan beberapa metode (mis. sebagian Cash + sebagian Transfer)
- Metode Pembayaran: dropdown (Cash / Transfer / QRIS / dll). Tarif & metode bisa dikelola di Pengaturan โ Metode Pembayaran
- Quick amount: chip Pas (sesuai total), 80K / 90K / 100K / 150K (pembulatan ke atas), Lainnya (input manual)
- Jumlah Bayar: nominal uang yang diterima dari customer
- Kembalian: otomatis terhitung (merah kalau kurang bayar)
- Kalau metode QRIS: tombol Lihat QRIS muncul โ tap untuk tampilkan QR Code di modal. Customer scan untuk bayar

9. Proses Pembayaran
- Tap tombol Proses Pembayaran (biru, sticky di bawah)
- Transaksi berhasil โ masuk halaman Sukses (lihat section D. Setelah Transaksi Berhasil)
D. Setelah Transaksi Berhasil
Halaman Pembayaran Berhasil menampilkan:
- No. Transaksi (mis.
TRX-0948) โ referensi unik untuk transaksi ini - Detail Pembayaran: Total Belanja, Jumlah Bayar, Kembalian
- Pilihan Aksi โ 5 tombol di card bawah
5 Pilihan Aksi:
- ๐จ๏ธ Cetak Struk โ print ke printer Bluetooth (jika belum pair, muncul preview struk)
- ๐ผ๏ธ Bagikan Struk โ share struk sebagai gambar (WhatsApp, dll)
- ๐ Bagikan PDF โ share struk sebagai file PDF
- ๐ Transaksi Baru โ langsung mulai transaksi baru, Keranjang kosong
- ๐ Ke Home โ kembali ke dashboard

E. Transaksi Produk Varian
Untuk produk varian (mis. obat dengan bentuk Cair / Tablet, atau baju ukuran/warna):
- Tap card produk varian (chip VARIAN tampil di atas nama)
- Muncul bottom-sheet Pilih Varian dengan list varian:
- Nama varian (mis. CAIR, TABLET)
- Harga per varian (mis. Rp5.000)
- Stok tersedia (mis. Stok: 23)
- Tap salah satu varian โ dialog meluas, tampil tombol Ubah di kanan untuk ganti pilihan
- Atur Jumlah (default 1) via tombol
โ/+ - Opsional: Tambah Diskon per item, Tambah Catatan
- Tap tombol hijau Tambah di bawah

Catatan:
- Varian dengan stok 0 tidak bisa ditambahkan
- Validasi stok otomatis โ qty tidak bisa lebih dari stok
F. Transaksi Produk Multi-Unit (Mode Grosir)
Untuk produk dengan beberapa satuan (mis. Pcs, Pak, Lusin, Karton). Bisa berdiri sendiri, atau digabung dengan varian.
- Tap card produk multi-unit (chip MULTI UNIT tampil)
- Di dialog Tambah, muncul section Pilih Satuan: berisi chip-chip satuan
- Tiap chip menampilkan:
- Nama satuan (mis. PCS, PAK)
- Harga per satuan
- Konversi ke satuan dasar (mis. (12 PCS) di bawah PAK)
- Tap chip satuan yang diinginkan โ harga & subtotal otomatis adjust
- Atur Jumlah, lalu tap Tambah

Contoh:
- Beli 1 PAK Antangin @ Rp 60.000 (isi 12 PCS)
- Atau beli 5 PCS @ Rp 5.000/PCS
- Stok tetap dihitung dalam satuan dasar (PCS)
G. Transaksi dengan Batch (Produk Kadaluarsa)
Jika produk punya batch dengan kadaluarsa:
- Saat tambah produk ke keranjang
- Muncul dialog Pilih Batch
- Sistem otomatis pakai FIFO (First In First Out):
- Batch paling lama masuk dipilih duluan
- Batch mendekati expired diprioritaskan
- Bisa pilih batch manual jika perlu
- Tap Lanjutkan
Manfaat:
- Barang lama terjual duluan
- Minimalisir produk kadaluarsa
- Tracking lebih rapi
G2. Split Payment (Bayar dengan Beberapa Metode)
Customer bisa bayar satu transaksi dengan lebih dari 1 metode pembayaran. Contoh: sebagian tunai + sebagian transfer + sebagian QRIS.
Langkah:
- Di halaman Konfirmasi Pembayaran, aktifkan toggle Split Payment
- Muncul dialog untuk tambah entry pembayaran
- Untuk setiap entry, pilih:
- Metode Pembayaran (Tunai, Transfer, QRIS, dll)
- Jumlah yang dibayar via metode tersebut
- Tambah entry lain sampai total cocok dengan total belanja
- Sistem otomatis validasi: total entry = total tagihan
- Tap Proses Pembayaran
๐ก Tips:
- Split payment tetap menghasilkan 1 transaksi (bukan 2+ transaksi terpisah)
- Laporan Metode Pembayaran akan menghitung setiap entry secara terpisah
- Struk menampilkan rincian semua metode yang dipakai
G3. Simpan Pesanan (Open Order โ Mode Resto)
โ ๏ธ Fitur ini aktif kalau Mode Resto/Cafe ON di Pengaturan Bisnis.
Fitur untuk simpan pesanan yang belum dibayar (customer masih makan, atau meja belum checkout). Pesanan tersimpan sebagai Open Order dan bisa dipanggil ulang.
Simpan Pesanan:
- Buat pesanan di Kasir seperti biasa
- Di Konfirmasi Pembayaran, pilih order type (Dine-In, Take Away, atau Delivery)
- Isi nomor meja (jika Dine-In) dan instruksi dapur (opsional)
- Tap tombol Simpan Pesanan (bukan Proses Pembayaran)
- Pesanan tersimpan tanpa mengurangi stok (menunggu pembayaran)
- KOT (Kitchen Order Ticket) otomatis tercetak ke dapur (jika printer KOT terhubung)
Buka Pesanan yang Sudah Disimpan:
- Di halaman Kasir, tap tombol Open Orders (biasanya di header, menampilkan jumlah pesanan)
- Muncul bottom sheet berisi daftar pesanan aktif
- Tap pesanan untuk membuka kembali
- Bisa tambah/hapus item, lalu lanjut ke pembayaran
๐ก Use Case:
- Resto โ meja A masih makan, meja B order baru
- Cafe โ customer tambah pesanan sebelum bayar
- Food court โ antri, siapkan pesanan paralel
H. Untuk Kasir: Tutup Shift
Di akhir shift/hari:
- Di dashboard, tap card hijau Shift Aktif (ada hint "Tap untuk tutup kasir")
- Muncul halaman Tutup Kasir (tema merah) dengan info shift: tanggal dibuka, durasi shift, kasir, dan Kas Awal
- Di section HITUNG FISIK UANG: hitung manual semua uang tunai di laci kasir, lalu masukkan di field Jumlah Uang Aktual (Rp)
- Opsional: isi Catatan Penutupan (mis. "ada selisih kembalian", "1 lembar palsu")
- Tap tombol biru Tutup Kasir
- Masuk halaman Detail Shift (tema ungu) yang menampilkan ringkasan lengkap:
- Info Shift โ Kasir, Dibuka, Ditutup, Durasi Shift
- KAS AWAL โ saldo awal saat buka shift
- PENJUALAN HARI INI โ Total Transaksi, Tunai (Cash), Non-Tunai, Total Penjualan
- PENGELUARAN โ total pengeluaran selama shift
- HITUNGAN SISTEM & SELISIH (VARIANCE):
- Hitungan Sistem = Kas Awal + Penjualan Tunai โ Pengeluaran (Cash). Hasil "Seharusnya" Rp [X]
- UANG AKTUAL (DIHITUNG) โ yang kamu input tadi
- SELISIH โ bandingan dua angka di atas:
- Hijau "LEBIH" โ uang di laci lebih dari hitungan sistem
- Merah "KURANG" โ ada uang yang hilang/tidak tercatat
- Pas (Rp 0) โ sempurna, tidak ada selisih
- Aksi yang tersedia di Detail Shift:
- Cetak Struk โ print rekap shift ke printer Bluetooth
- Kirim ke Owner โ share rekap shift ke owner (mis. via WhatsApp)
- Recalculate โ refresh hitungan sistem kalau perlu
- Kembali ke Home โ tutup detail dan balik ke dashboard



๐ก Tips:
- Selalu hitung uang fisik dengan teliti
- Jika variance besar, cek ulang transaksi
- Variance wajar: ยฑRp 1.000 - 5.000