Angka stok yang salah adalah racun pelan: satu selisih kecil hari ini, dan dalam sebulan tidak ada yang percaya laporan stok maupun penjualan. Saat membangun modul inventori yang terhubung ke POS Dexova, prinsip utamanya adalah stok tidak pernah 'di-set', ia hanya berubah lewat kejadian yang tercatat.
Stok adalah hasil dari kejadian, bukan angka yang diedit
Godaan terbesar adalah menyimpan satu kolom 'jumlah stok' dan meng-update-nya langsung. Sekali dua developer meng-update bersamaan, atau satu proses gagal di tengah, angkanya salah dan tidak ada cara tahu kenapa.
Pendekatan yang lebih jujur: setiap penjualan, pembelian, retur, dan penyesuaian adalah pergerakan stok yang tercatat. Jumlah saat ini adalah akumulasi pergerakan — sehingga selalu ada jawaban untuk 'kenapa stoknya segini'.
Retur dan void harus menutup lingkaran
Ini titik yang paling sering bocor: transaksi POS yang di-void atau barang yang diretur harus mengembalikan stok secara otomatis. Kalau penjualan mengurangi stok tapi retur tidak menambahkannya kembali, sistem penjualan dan sistem stok pelan-pelan berpisah.
Karena POS dan inventori berbagi kebenaran yang sama, void di kasir dan pengembalian stok adalah satu alur yang tidak bisa setengah jalan — keduanya berhasil atau keduanya batal.
Multi-gudang: mutasi yang bisa ditelusuri
Begitu ada lebih dari satu lokasi, 'stok' tidak lagi satu angka tapi angka per gudang. Perpindahan barang antar-gudang adalah mutasi: keluar dari satu, masuk ke yang lain, tercatat sebagai pasangan yang seimbang.
Yang membedakan sistem serius dari spreadsheet: setiap keping stok punya cerita lengkap tentang di mana ia berada dan bagaimana ia sampai di sana.
Ringkasan
Inventori yang akurat lahir dari satu prinsip: jangan pernah mengedit angka stok, catat kejadian yang mengubahnya. Tutup lingkaran retur/void, dan buat mutasi antar-gudang bisa ditelusuri. Hasilnya adalah laporan yang benar-benar bisa dipercaya.