Lewati ke konten

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.
Bagian Varian & Modifier pada form produk

Pada form produk, buka bagian Varian lalu tekan Tambah Varian. Lembar Tambah Varian berisi:

KolomKeterangan
Nama VarianWajib & unik. Contoh: Large, Pedas, Merah.
Harga TambahanOpsional. Selisih harga dari harga dasar (Rp).
Harga Modal / HPP (opsional)Kosongkan untuk pakai HPP produk induk.
StokStok 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”).

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.

Pada produk (mode edit), buka bagian Modifier lalu tekan Tambah Grup.

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.

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.”

Opsi modifier bisa punya bahan bakunya sendiri, sehingga stok bahan ikut terpotong saat opsi terjual (mis. opsi Ekstra Keju memotong stok bahan Keju):

Lembar Bahan Baku per opsi modifier
  1. Pada daftar opsi di dalam grup, buka menu ⋮ pada opsi → pilih Kelola Bahan Baku.
  2. Lembar Bahan Baku — (nama opsi) terbuka, dengan keterangan “Stok bahan akan terpotong otomatis setiap opsi ini terjual.”
  3. 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.

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.