2. Produk (Menu Makanan & Minuman)
Di Kasgo F&B, Produk = menu makanan, minuman, dessert, side dish โ semua yang dijual di kasir. Menu utama Produk bukan langsung daftar produk, melainkan hub dengan 7 sub-menu yang masing-masing tugasnya jelas.

| Sub-menu | Fungsi |
|---|---|
| Daftar Produk | Tambah / edit / hapus menu, lihat stok & harga |
| Mendekati Expired | Monitor batch produk yang akan/sudah kadaluarsa |
| Paket/Bundle | Gabungan beberapa menu jadi 1 paket harga khusus |
| Modifier/Add-on | Opsi tambahan: level pedas, topping, jenis kuah |
| Promo/Happy Hour | Diskon otomatis berdasarkan waktu (lihat section Promo) |
| Cetak Barcode | Cetak label barcode produk via printer thermal/label |
| Import Produk Masal | Import banyak produk sekaligus dari Excel/CSV |
A. Daftar Produk
Daftar semua menu โ bisa di-filter Semua / Aktif / Non Aktif, dicari di kolom search, atau di-scan barcode-nya. Per item ditampilkan: nama menu, badge kategori, harga, dan stok dengan satuan.
- Tab: Semua / Aktif / Non Aktif
- Filter Kategori: dropdown "Semua Kategori" untuk filter per kategori
- Search: ketik nama atau scan barcode (ikon barcode di kanan)
- Generate Barcode: ikon kuning kanan (auto-fill barcode untuk produk yang belum ada)
- Header: tombol + untuk tambah produk baru, ikon printer untuk cetak barcode batch

B. Tambah Produk Sederhana
- Di Daftar Produk, tap tombol + di pojok kanan atas header
- Halaman Tambah Produk terbuka โ form dibagi jadi beberapa card
- Isi tiap section, lalu tap + Simpan Produk di bawah
Section Foto Produk:
- Tap area kosong "Tambah Foto Produk" โ pilih dari kamera atau galeri
- Foto akan di-crop kotak (1:1)
Section Informasi Dasar:
- Nama Produk * (wajib)
- Barcode: kosongkan (auto-generate dengan ikon โจ bintang) atau scan dari kamera (ikon ๐ท)
3 Toggle penting:
- Tanpa Stok (default OFF) โ kalau ON, stok tidak akan dilacak (cocok untuk menu yang bahan bakunya dilacak terpisah, atau menu "unlimited")
- Produk dengan Varian โ aktifkan kalau menu punya varian ukuran/warna/temperatur. Lihat section C
- Modifier/Add-on โ aktifkan kalau menu punya opsi tambahan (level pedas, topping). Lihat section D
Section Manajemen Stok (icon hijau):
- Stok Awal (Opsional): default 0 โ kosongkan kalau Varian ON (stok akan dikelola per varian)
- Satuan * (wajib): pcs, porsi, gelas, dll
- Stok Minimum *: default 5 โ threshold untuk notifikasi stok menipis
Section Kategori:
- Pilih Kategori * โ dropdown dari kategori yang sudah dibuat
Section Informasi Harga:
- Harga Beli * (HPP, untuk hitung margin di laporan)
- Sub-card ๐ด Harga Jual:
- Dine-in * (wajib)
- Take Away (opsional โ kosongkan kalau sama dengan Dine-in)
- Delivery (opsional)


๐ก Harga Per Tipe Pesanan:
Khas Kasgo F&B. Cocok untuk toko yang jualan via GoFood/GrabFood dengan mark-up โ set harga Take Away/Delivery lebih tinggi untuk cover komisi platform. Kasir akan otomatis pakai harga sesuai Tipe Pesanan yang dipilih.
C. Tambah Produk dengan Varian
Varian cocok untuk menu dengan pilihan terstruktur yang berbeda harga/stok-nya. Contoh: Kopi (Hot/Ice), Minuman (S/M/L), atau kombinasi 2 dimensi (Size ร Suhu).
Setup:
- Di form produk, toggle Produk dengan Varian ON
- Section "Belum ada varian" muncul โ tap + Buat Varian
- Halaman Kelola Varian terbuka, tap + Buat Varian lagi
- Dialog Buat Varian muncul:
- Tipe Varian 1 * (misal "Size")
- Nilai Varian 1 * โ pisahkan dengan koma (misal "S,M,L")
- Tipe Varian 2 (opsional, misal "Suhu")
- Nilai Varian 2 (opsional, misal "Hot,Ice")
- Tombol Buat N Varian auto-update sesuai jumlah kombinasi (3 ร 2 = 6)
- Tap tombol โ daftar varian otomatis di-generate
- Per varian, tap chevron untuk isi: Harga Beli, Harga Jual per Tipe Pesanan, Stok, Stok Minimum, Barcode
- Tap Simpan hijau di bawah daftar



Stok dikelola per varian: kalau Varian ON, field "Stok Awal" di section utama hilang dan diganti banner "Stok dikelola per varian". Total stok = jumlah stok semua varian.

D. Modifier / Add-on
Modifier โ Varian. Modifier adalah opsi tambahan saat order โ yang dipilih per transaksi, bukan jadi item terpisah.
| Aspek | Varian | Modifier |
|---|---|---|
| Stok | Per varian sendiri | Tidak punya stok |
| Harga | Harga jual baru | Tambahan (+Rp) |
| Pemilihan | 1 varian per item | Bisa multiple atau wajib |
| Contoh | Size S/M/L, Hot/Ice | Topping, Level Pedas |
Cara Setup (di hub Produk โ Modifier/Add-on):
- Buka Produk โ Modifier/Add-on
- Tap + di header โ buat Modifier Group (misal "Topping", "Level Pedas")
- Per group, tambah opsi: Nama + Harga tambahan (misal "Sosis Jumbo +Rp 4.000")
- Set jumlah pilihan: Pilih 1 (single-select) atau Multi-select
- Toggle aktif/non-aktif group

Assign Modifier ke Produk:
- Buka detail produk โ toggle Modifier/Add-on ON
- Section "Belum ada modifier dipilih" muncul โ tap + Pilih Modifier
- Bottom sheet dengan daftar group muncul โ centang group yang mau di-assign
- Tap Selesai (tombol ungu)
- Saat produk di-tap di kasir, dialog modifier akan muncul otomatis sebelum item masuk keranjang

E. Paket / Bundle
Paket = gabungan beberapa produk dijual sebagai 1 item dengan harga khusus (biasanya lebih murah dari beli terpisah). Contoh: "PAKET 10" = 1 ES TEH + 1 MIE GAHAR @ Rp10.000.
Cara Buat:
- Hub Produk โ Paket/Bundle
- Tap + di header โ halaman Tambah Paket
- Section Informasi Paket:
- Nama Paket *
- Harga Paket per Tipe Pesanan: Dine-in * / Take Away / Delivery (sama seperti produk biasa)
- Section Foto Paket (opsional)
- Section Deskripsi (opsional)
- Section Komponen Paket: tap + Tambah untuk pilih produk yang termasuk dalam paket (qty per komponen)
- Tap Simpan Paket


Stok komponen otomatis berkurang: saat paket terjual, stok semua produk komponen dikurangi sesuai qty di paket. Kalau salah satu komponen stoknya habis, paket otomatis tidak bisa dijual.
F. Mendekati Expired
Halaman monitoring untuk batch produk yang punya tanggal kadaluarsa (relevan untuk bahan dasar / stok dengan expiry).
- 2 tab: Mendekati Expired (yang akan kadaluarsa) dan Sudah Expired
- Search by nama produk atau nomor batch
- Saat semua aman: empty state hijau "Tidak ada produk mendekati expired" / "Semua batch masih aman"

G. Cetak Barcode
Cetak label barcode produk via printer thermal/label. Berguna kalau Anda mau tempel barcode di kemasan menu (misal makanan beku) supaya kasir cukup scan.
- Hub Produk โ Cetak Barcode
- Daftar produk muncul dengan checkbox
- Centang produk yang mau dicetak (produk tanpa barcode ditandai dengan label oranye "Tanpa barcode" โ perlu generate dulu)
- Set jumlah label per produk (biasanya muncul di langkah berikutnya)
- Tap Cetak via printer label yang sudah di-pair

H. Import Produk Masal
Untuk input banyak menu sekaligus (migrasi dari sistem lama atau setup awal), pakai import Excel/CSV.
- Hub Produk โ Import Produk Masal
- Step 1 โ Download Template: tap Download Template Excel (rekomendasi) atau Download Template CSV
- Buka file di Excel / Spreadsheet, isi data produk di bawah baris "DATA START"
- Step 2 โ Import dari File: tap Pilih File โ upload yang sudah diisi
- Review preview โ konfirmasi import
Tips dari aplikasi:
- Excel direkomendasikan (bisa langsung edit tanpa convert)
- Produk varian: buat baris terpisah dengan nama yang sama โ sistem auto-group
- Kategori yang belum ada akan otomatis dibuat
- Modifier & Bundle tidak termasuk di import โ assign manual setelah produk masuk
