Varian & Modifier
Varian dan Modifier sama-sama diatur dari form produk, tetapi berbeda fungsi:
- Varian — versi berbeda dari satu produk (mis. Large/Small, Pedas/Tidak, Merah/Biru), bisa punya harga tambahan, HPP, dan stok sendiri.
- Modifier — pilihan tambahan saat checkout (mis. Tingkat Kepedasan, Ekstra Keju), dikelompokkan dalam grup.
Varian
Section titled “Varian”Pada form produk, buka bagian Varian lalu tekan Tambah Varian. Lembar Tambah Varian berisi:
| Kolom | Keterangan |
|---|---|
| Nama Varian | Wajib & unik. Contoh: Large, Pedas, Merah. |
| Harga Tambahan | Opsional. Selisih harga dari harga dasar (Rp). |
| Harga Modal / HPP (opsional) | Kosongkan untuk pakai HPP produk induk. |
| Stok | Stok awal varian. Opsional, dilacak terpisah per varian. |
| Isi Varian (satuan resep) | Hanya muncul bila produknya punya resep. Pengali takaran resep saat varian ini terjual — isi 30 untuk varian 30 ml. Kosong = 1. |
- Tekan Simpan untuk menambah varian ke daftar.
- Hapus varian dengan menggeser barisnya; edit dengan menekannya.
- Validasi: semua varian harus punya nama (“Semua varian harus memiliki nama”) dan nama harus unik (“Nama varian harus unik”).
Varian di kasir
Section titled “Varian di kasir”Saat produk bervarian ditambahkan ke keranjang, kasir menampilkan lembar Pilih Varian: nama varian, harga tambahan (+Rp/-Rp), dan stok (“Stok: X” atau Habis). Varian yang habis tidak bisa dipilih.
Modifier
Section titled “Modifier”Pada produk (mode edit), buka bagian Modifier lalu tekan Tambah Grup.
Grup modifier
Section titled “Grup modifier”Lembar Tambah Grup Modifier:
- Nama Grup — wajib (“Nama grup tidak boleh kosong”). Contoh: Tingkat Kepedasan, Ukuran.
- Tipe Pilihan:
- Pilih 1 (Single) — “Pelanggan hanya dapat memilih satu opsi”.
- Boleh Banyak (Multi) — “Pelanggan dapat memilih beberapa opsi”.
- Batas Pilihan — hanya muncul untuk tipe Multi. Keterangan: “Kosongkan kalau tidak dibatasi”.
- Minimal pilihan (hint “Contoh: 1”) dan Maksimal pilihan (hint “Contoh: 3”) — keduanya opsional dan independen.
- Validasi: harus berupa angka (“Angka saja”); minimal tidak boleh negatif (“Minimal 0”); maksimal minimal 1 (“Minimal 1”); minimal tidak boleh lebih besar dari maksimal (“Min > maks” pada kolom minimal, “Maks < min” pada kolom maksimal).
- Kolom yang sudah terisi menampilkan tombol × (“Hapus batas”) untuk mengosongkannya kembali.
- Wajib Dipilih — jika aktif, pelanggan harus memilih minimal satu opsi (“Pelanggan harus memilih minimal satu opsi”).
Grup yang punya batas eksplisit menampilkan chip tambahan di daftar grup (mis. “Min 2”, “Maks 3”, “Tepat 2”, atau “2–3 pilihan”), di samping chip Wajib/Opsional dan Boleh banyak/Pilih 1 yang sudah ada.
Opsi modifier
Section titled “Opsi modifier”Di dalam grup, tambahkan opsi lewat lembar Tambah Opsi Modifier:
- Nama Opsi — wajib. Contoh: Pedas, Sedang, Ekstra Keju.
- Harga Tambahan — opsional (Rp).
- Jadi Pilihan Default — jika aktif, opsi ini terpilih otomatis.
Bila belum ada grup: “Belum ada grup modifier.”
Bahan baku per opsi modifier
Section titled “Bahan baku per opsi modifier”Opsi modifier bisa punya bahan bakunya sendiri, sehingga stok bahan ikut terpotong saat opsi terjual (mis. opsi Ekstra Keju memotong stok bahan Keju):
- Pada daftar opsi di dalam grup, buka menu ⋮ pada opsi → pilih Kelola Bahan Baku.
- Lembar Bahan Baku — (nama opsi) terbuka, dengan keterangan “Stok bahan akan terpotong otomatis setiap opsi ini terjual.”
- Tekan Tambah Bahan, pilih bahan baku beserta jumlahnya, lalu tekan Simpan. Muncul “Bahan baku opsi disimpan”.
Opsi yang sudah punya bahan menampilkan chip jumlah bahannya (mis. “2 bahan”). Setiap opsi terjual, stok bahannya berkurang otomatis; bila transaksi di-void/refund, stoknya dikembalikan. Di Riwayat Stok bahan, pergerakan ini tercatat sebagai Terpotong modifier dan Pengembalian modifier.
Modifier di kasir
Section titled “Modifier di kasir”Saat checkout, produk bermodifier membuka lembar pemilih. Tiap grup modifier tampil dengan badge wajib/opsional, lalu:
- Grup Single — pilihan radio.
- Grup Multi — pilihan checkbox. Bila grup punya batas maksimal, muncul penghitung “n/x dipilih” di sebelah nama grup; begitu mentok maksimal, opsi yang belum dipilih otomatis nonaktif (yang sudah terpilih tetap bisa dilepas).
- Bila grup mewajibkan 2 pilihan atau lebih dan belum terpenuhi, muncul pengingat “Pilih minimal N”.
Di bawah daftar grup ada kolom Catatan (hint “Contoh: tanpa gula, extra hot…”) dan pengatur Jumlah, lalu tombol Tambahkan ke Keranjang. Total harga otomatis menjumlahkan harga dasar (+ varian bila ada) dan semua modifier terpilih × jumlah. Tombol nonaktif selama batas minimal grup manapun belum terpenuhi.