Produk
Gambaran Umum
Produk adalah katalog barang/jasa yang dijual oleh suatu bisnis: mencakup segala hal yang bisa dimasukkan kasir ke dalam tagihan, mulai dari secangkir kopi, layanan jasa, hingga paket bundling. Produk adalah entitas inti yang menjadi muara bagi seluruh fitur POS lainnya — seperti varian, modifier, stok, daftar harga, tagihan, hingga laporan penjualan. Oleh karena itu, aturan terkait produk paling banyak digunakan di seluruh sistem. Produk dikelola pada tingkat organisasi: didefinisikan satu kali untuk seluruh bisnis, kemudian diaktifkan sesuai kebutuhan di masing-masing outlet. Produk terbagi menjadi tiga jenis:
| Aspek | Varian |
|---|---|
| Goods | Barang fisik ("Barang") |
| Service | Layanan non-fisik, durasi bersifat opsional ("Jasa") |
| Bundle | Paket kombinasi yang terhubung ke definisi bundle (kelompok produk turunan yang bisa dipilih) |
Alur Pengguna
- Buka menu Pengaturan → Produk → Daftar Produk.
- Masukkan Informasi Dasar produk seperti nama, jadikan sebagagai favorit, dan gambar.
- Lanjutkan dengan mengisi Informasi Umum produk seperti harga jual, harga pokok, kode produk, barcode, referensi, keterangan produk, tipe produk, lacak inventaris, pajak, satuan, kategori, merek.
Tipe Produk: Paket Bundle
Produk berjenis bundle terhubung ke definisi bundle: kelompok produk turunan yang dapat dipilih dengan batasan jumlah (jumlah item maksimal, item gratis, atau harga khusus per item). Harga saat penjualan akan mengikuti aturan penetapan harga bundle pada tagihan.
Aturan
- Gambar: produk dapat memiliki satu gambar utama (hero image) dan beberapa gambar galeri; gambar pertama akan dijadikan gambar mini (thumbnail) di katalog.
- Reference (teks referensi bebas), deskripsi, dan Favorite (penanda produk favorit untuk akses cepat di backoffice) bersifat opsional.
- Hanya produk yang diatur untuk dilacak stoknya yang akan masuk ke sistem stok.
- Kode Produk berfungsi sebagai identitas unik produk dalam satu organisasi. Pengguna dapat mengisinya sendiri; jika dikosongkan, sistem akan membuatkan kode otomatis berformat PRD-NNNNNN. Kode bersifat unik per organisasi dan dapat diubah di kemudian hari.
- Setiap produk wajib memiliki nama dan tepat satu kategori. Penambahan merek (brand) dan pajak bawaan (default tax) bersifat opsional.
- Harga Jual wajib diisi. Harga Pokok Penjualan / HPP (Cost price) bersifat opsional.
- Satuan adalah unit pengukuran/tampilan opsional yang diambil dari daftar tetap (satuan, kg, g, mg, l, ml, pcs, pack, box, carton) atau nilai kustom bebas.
- Durasi berlaku untuk produk berjenis jasa/layanan (service), ditulis dengan format 4w:2d:1h:1m (weeks:days:hours:minutes, masing-masing unit maksimal ditulis satu kali).
Barcode
- Barcode adalah kode yang dapat dipindai pada fisik barang — bisa berupa kode GTIN bawaan pabrik (EAN-13 / UPC-A) untuk barang bermerek, atau label internal buatan toko untuk barang tanpa merek/buatan sendiri.
- Barcode bersifat unik dalam satu organisasi: satu kode barcode merujuk pada satu item barang yang dijual di katalog merchant tersebut. Kode barcode yang sama sangat wajar jika digunakan oleh organisasi lain (misal dua toko berbeda menjual produk bermerek yang sama dari pabrik), sehingga batasan keunikan tidak berlaku lintas organisasi.
- Jika sudah melengkapi Informasi Dasar dan Informasi Umum, lanjutkan dengan mengatur Atribut Varian dan Modifier produk.
Varian
Produk dapat memiliki atribut varian (misal: Ukuran × Warna). Sistem akan membuatkan satu varian untuk setiap kombinasi atribut saat awal pembuatan.

Modifier
Item dari atribut modifier dapat dipasangkan ke produk beserta pengaturan harga khususnya (price override). Aturan lengkapnya diatur dalam fitur Modifier.

- Lanjutkan dengan mengatur inventaris fisik produk.
Modifier
Inventaris Fisik sifatnya opsional untuk mencatat dimensi fisik: berat (kg/g/mg) dan ukuran (m/cm/mm), seluruh nilainya harus berupa angka positif.
- Jika data produk sudah lengkap, simpan produk. Produk yang baru dibuat akan langsung aktif.
Peran dan Hak Akses
| Aspek | Varian |
|---|---|
| Manajer (Backoffice) | Akses penuh (CRUD) pada produk: mengedit bidang katalog, gambar, varian, link bundle, serta ketersediaan produk di tiap cabang |
| Kasir (Cahier) | Menggunakan katalog saat transaksi di kasir — termasuk memindai barcode untuk mencari produk. Tidak dapat mengedit data produk |
Pemindaian dan Pencarian Barcode
- Kasir dapat mencari produk dengan memindai barcode menggunakan kamera atau dengan mengetik/menempelkan kodenya. Sistem akan mencocokkan kode tersebut ke produk utama — atau ke varian spesifik jika kode barcode tersebut milik suatu varian.
- Proses pemindaian toleran terhadap normalisasi format: format 12-digit (UPC-A) dan kesetaraan 13-digit (EAN-13 dengan angka nol di depan) akan merujuk ke item yang sama. Jadi, produk fisik yang sama tetap akan cocok meskipun disimpan dalam satu format dan dipindai menggunakan format lainnya.
- Pemindaian barcode hanya akan menemukan produk yang statusnya aktif di outlet tempat kasir bertugas — produk yang tidak dijual di outlet tersebut tidak akan ditemukan.
- Kode yang tidak dikenali akan menampilkan pesan "produk tidak ditemukan" dan tidak pernah diabaikan begitu saja oleh sistem.


Ketersediaan dan Lifecycle
- Produk yang baru dibuat akan langsung aktif. Produk yang nonaktif tidak dapat dijual dan disembunyikan dari tampilan kasir.
- Aktivasi outlet: katalog dikelola di tingkat organisasi; setiap outlet mengaktifkan sebagian produk yang dijual di tempatnya. Kasir hanya melihat produk yang aktif di cabangnya. Buka menu Outlet ➜ Daftar Outlet lalu pilih produk, masukkan produk yang akan digunakan di outlet yang sudah dipilih.

- Penghapusan bersifat permanen. Menghapus produk juga akan menghapus variannya, tautan modifier, gambar, tautan bundle, serta status aktivasi di cabang. Produk yang pernah tercatat dalam tagihan/transaksi tidak dapat dihapus — riwayat transaksi harus tetap mencatat referensi produk tersebut.
Penetapan Harga saat Penjualan
Setiap unit yang dijual memiliki harganya sendiri: menggunakan harga produk utama, atau harga mutlak varian jika produk memiliki varian. Penambahan harga modifier, daftar harga (pricelist), dan pajak akan dikalkulasi saat tagihan dibuat.
Kondisi Khusus
- Memasukkan kode produk yang sudah ada di organisasi akan ditolak.
- Memasukkan barcode yang sudah terhubung ke produk atau varian lain dalam organisasi yang sama akan ditolak — termasuk jika menggunakan format 12-digit maupun 13-digit dari nomor yang sama.
- Atribut varian yang tidak memiliki item tidak dapat menghasilkan kombinasi varian.
- Menghapus produk yang sudah pernah dijual akan ditolak oleh sistem.
- Menonaktifkan produk adalah alternatif aman dari penghapusan: riwayat transaksi lama tetap terjaga utuh.
Ringkasan Batasan
| Aturan | Berlaku Untuk |
|---|---|
| Nama wajib diisi | Produk |
| Jenis harus berupa goods / service / bundle | Produk |
| Memiliki tepat satu kategori | Produk |
| Harga wajib diisi | Produk |
| Kode produk unik per organisasi | Produk |
| Barcode unik dalam satu organisasi jika diisi | Produk, Varian |
| Pemindaian barcode hanya mencari produk yang aktif di outlet terkait | Pencarian / Pemindaian Kasir |
| Nilai berat/dimensi harus berupa angka positif | Inventaris Produk |
| Format durasi Nw:Nd:Nh:Nm, tiap unit maksimal ditulis satu kali | Jasa/Service |
| Pembuatan ulang varian membutuhkan tindakan eksplisit dari admin | Produk |
| Tidak bisa dihapus jika sudah pernah tercatat pada tagihan transaksi | Produk |