Stok & Inventori
Aplikasi Kasir untuk Manajemen Stok di Toko

Ringkasan Cepat
Akurasi stok dibangun dari identitas produk dan pencatatan setiap pergerakan, bukan dengan mengganti saldo ketika hasil fisik berbeda dari laporan.
- Stok yang terlihat banyak belum tentu tersedia untuk dijual, dan stok sistem belum tentu sama dengan barang fisik.
- Aplikasi Kasir Toko dapat membantu mempertemukan penjualan dengan persediaan, tetapi hasilnya bergantung pada identitas produk, disiplin receiving, transfer, retur, opname, serta kontrol akses.
- Aplikasi tidak dapat menebak pergerakan yang tidak pernah dicatat.
Ringkasan dibuat untuk membantu pembaca memahami poin utama. Gunakan isi artikel lengkap sebagai sumber penjelasan.
Stok yang terlihat banyak belum tentu tersedia untuk dijual, dan stok sistem belum tentu sama dengan barang fisik. Aplikasi Kasir Toko dapat membantu mempertemukan penjualan dengan persediaan, tetapi hasilnya bergantung pada identitas produk, disiplin receiving, transfer, retur, opname, serta kontrol akses. Aplikasi tidak dapat menebak pergerakan yang tidak pernah dicatat.
Tujuan manajemen stok bukan mengejar angka sempurna tanpa konteks. Toko perlu mengetahui barang apa yang tersedia, dipesan, dipesan pelanggan, rusak, kedaluwarsa, atau berada di lokasi lain. Dengan status dan jejak yang benar, pembelian serta pelayanan dapat mengambil keputusan dari data yang lebih dapat dipercaya.
Jawaban singkat
Mulailah dengan katalog unik, satuan yang konsisten, dan lokasi stok yang jelas. Catat setiap event—penerimaan, penjualan, transfer, retur, konsumsi internal, kerusakan, serta adjustment—menggunakan referensi, waktu, pengguna, dan alasan.
Lakukan cycle count berbasis risiko, rekonsiliasi selisih sampai akar penyebab, dan gunakan reorder sebagai rekomendasi yang mempertimbangkan demand, lead time, minimum order, stok dalam perjalanan, serta arus kas. Uji seluruh alur sebelum mengandalkan laporan untuk pembelian.
Bentuk model persediaan yang benar
Bedakan on hand, available, reserved, in transit, damaged, quarantine, dan expected. Satu angka “stok” menyembunyikan kemampuan sebenarnya untuk memenuhi transaksi. Definisi status harus sama pada kasir, gudang, pembelian, serta laporan.
| Status | Makna | Boleh dijual? | Sumber perubahan |
|---|---|---|---|
| On hand | fisik tercatat di lokasi | tergantung status | receiving/transfer |
| Available | siap dialokasikan | ya | on hand dikurangi hold |
| Reserved | dialokasikan ke pesanan | tidak untuk pesanan lain | order |
| In transit | sedang berpindah | belum | transfer/shipment |
| Damaged | rusak dan dipisahkan | tidak | inspeksi |
| Quarantine | menunggu pemeriksaan | tidak | receiving/retur |
| Expected | dipesan belum diterima | belum | purchase order |
Tentukan apakah stok boleh negatif. Membiarkan negatif dapat menjaga transaksi berjalan, tetapi juga menutupi masalah receiving atau integrasi. Bila diizinkan, buat alert, owner, dan batas waktu penyelesaian.
Rapikan katalog dan identitas produk
Setiap produk atau varian yang berbeda stoknya membutuhkan kode unik. Catat nama singkat yang mudah dicari, kategori, merek, ukuran, warna, satuan, harga, pajak, pemasok, status, dan kode scan bila relevan. Hindari menggunakan satu SKU untuk berbagai varian.
Barcode mempercepat identifikasi, bukan menggantikan master data. GS1 menjelaskan barcode sebagai simbol yang dapat dipindai untuk membawa identifier dan, pada jenis tertentu, atribut seperti batch atau tanggal. Pilih standar serta cara pemberian nomor sesuai rantai pasok bisnis; jangan mencetak kode acak yang berpotensi bentrok tanpa tata kelola.
Atur pembuatan dan perubahan produk melalui role. Merge duplikasi harus mempertahankan histori transaksi. Produk yang tidak lagi dijual dinonaktifkan, bukan dihapus jika sudah memiliki riwayat.
Kelola satuan dan kemasan
Toko dapat membeli karton, menyimpan pack, dan menjual unit. Sistem perlu menyimpan konversi yang eksplisit. Perubahan isi kemasan dari supplier tidak boleh diam-diam mengubah histori atau saldo.
Uji pembulatan untuk barang timbang atau pecahan. Tentukan presisi quantity dan biaya, serta perlakuan sisa yang tidak dapat dijual. Label rak dan dokumen receiving perlu memakai satuan yang dipahami staf.
Kesalahan konversi dapat menciptakan selisih berlipat. Batasi siapa yang mengubah faktor konversi dan tinjau seluruh item terdampak sebelum menerapkan perubahan.
Catat receiving berdasarkan bukti
Receiving membandingkan barang fisik dengan purchase order atau dokumen pemasok. Catat item, kuantitas, satuan, kondisi, batch, tanggal, lokasi, biaya, dan selisih. Penerimaan sebagian tidak boleh menutup sisa order secara otomatis.
Pisahkan barang yang belum diperiksa. Produk salah, rusak, atau masa simpannya tidak memenuhi aturan ditempatkan pada status yang tidak dapat dijual. Foto atau dokumen dapat dilampirkan bila membantu klaim.
Jangan mencatat sesuai invoice bila kuantitas fisik berbeda. Finance, procurement, dan gudang membutuhkan jejak yang sama untuk menyelesaikan invoice, klaim, dan saldo stok.
Hubungkan penjualan dan reservasi
Saat transaksi final, aplikasi mengurangi item serta lokasi yang benar. Pesanan yang belum selesai dapat membuat reservasi, tetapi aturan pembatalan serta kedaluwarsa perlu jelas agar stok tidak tertahan selamanya.
Bundling membutuhkan bill of materials. Produk paket mengurangi komponennya sesuai konfigurasi. Bila pelanggan dapat mengganti item, modifier juga harus memengaruhi stok bila relevan.
Retur penjualan tidak otomatis kembali menjadi available. Periksa kondisi, kemasan, batch, dan alasan. Produk layak dapat direstock; produk rusak masuk lokasi terpisah; refund diproses berdasarkan kebijakan dan pembayaran awal.
Kendalikan transfer antar lokasi
Transfer minimal mempunyai nomor, asal, tujuan, item, quantity, pengirim, penerima, waktu, dan status. Pisahkan requested, approved, picked, dispatched, received, disputed, serta closed. Stok in transit tidak boleh tersedia di dua lokasi sekaligus.
Penerima menghitung barang, bukan sekadar menekan “terima semua”. Selisih, kerusakan, atau item salah dicatat dan ditugaskan untuk investigasi. Transfer yang terlalu lama terbuka membutuhkan alert.
Untuk toko kecil dengan ruang depan dan gudang belakang, prinsip yang sama tetap berguna. Lokasi logis mengurangi pencarian dan membantu mengetahui apakah masalah terjadi saat picking, perpindahan, atau penjualan.
Jalankan cycle count dan stock opname
Stock opname total berguna pada momen tertentu, tetapi cycle count memberi pemeriksaan lebih rutin dengan gangguan lebih kecil. Kelompokkan produk berdasarkan nilai, kecepatan, risiko kehilangan, masa simpan, dan histori selisih.
Proses count sebaiknya blind bila memungkinkan agar petugas tidak terpengaruh angka sistem. Hitungan besar atau selisih material diverifikasi ulang oleh orang berbeda. Selama count, kendalikan transaksi yang dapat mengubah lokasi.
Adjustment dilakukan setelah review dan memakai reason code. Simpan quantity sistem, quantity fisik, selisih, nilai, waktu, pengguna, approval, dan akar penyebab. Tren reason code membantu memperbaiki receiving, layout, pelatihan, atau kontrol.
Atur reorder dengan parameter nyata
Reorder point dapat mempertimbangkan permintaan selama lead time dan safety stock. Namun demand historis harus dibersihkan dari stockout, peluncuran, promosi, atau kejadian luar biasa. Lead time diukur dari approval sampai barang tersedia, bukan hanya janji pemasok.
Sebelum membuat purchase order, periksa:
- available dan reserved per lokasi;
- open purchase order serta in transit;
- penjualan dan stockout yang teramati;
- lead time aktual dan variasinya;
- minimum order dan kelipatan kemasan;
- kapasitas ruang serta masa simpan;
- promosi, musim, dan perubahan harga;
- budget serta arus kas.
Sistem boleh menghasilkan saran, tetapi buyer meninjau exception. Pantau overstock, dead stock, stockout, dan order yang datang terlambat untuk memperbaiki parameter.
Kelola batch, serial, dan kedaluwarsa
Produk tertentu memerlukan batch, serial, tanggal produksi, atau kedaluwarsa. Informasi tersebut ditangkap saat receiving dan mengikuti transfer serta penjualan. FEFO membantu memprioritaskan masa simpan terdekat bila sesuai kategori.
Alert kedaluwarsa harus menghasilkan tindakan: markdown yang aman, retur pemasok, pemindahan, pemblokiran penjualan, atau disposal. Sistem tidak boleh mendorong penjualan produk yang tidak layak.
Serial number berguna untuk garansi dan traceability. Pastikan scanner serta layar mampu menangkap identifier tanpa memperlambat transaksi secara berlebihan.
Cegah shrinkage dengan kontrol proses
Shrinkage dapat berasal dari pencurian, salah input, receiving, transfer, kerusakan, atau integrasi. Jangan menyimpulkan penyebab hanya dari selisih akhir. Gunakan bukti event, waktu, pengguna, lokasi, dan pola produk.
Pisahkan tugas bila memungkinkan. Orang yang menerima barang tidak selalu menyetujui adjustment. Diskon, void, retur, dan perubahan harga mempunyai limit serta audit trail. Kamera atau kontrol fisik, bila digunakan, harus mengikuti kebijakan dan hukum yang berlaku.
Review exception lebih efektif daripada membaca seluruh transaksi. Fokus pada adjustment besar, stok negatif, transaksi di luar jam, repeated void, dan transfer tertunda.
Integrasikan kanal tanpa menggandakan stok
Penjualan toko, marketplace, dan kanal lain perlu sumber stok serta aturan reservasi. Tentukan latency sinkronisasi, buffer, prioritas order, dan tindakan ketika update gagal. Gunakan identifier yang sama lintas sistem.
Event integrasi harus idempotent agar retry tidak mengurangi stok dua kali. Failed event masuk queue dengan alert, owner, serta mekanisme replay. Rekonsiliasi membandingkan order, fulfillment, cancellation, return, dan stok.
Jangan menjanjikan real-time tanpa mengukur keterlambatan. Tampilkan waktu pembaruan terakhir agar pengguna memahami freshness data.
Bangun laporan yang dapat ditindaklanjuti
Pantau stock accuracy, stockout, inventory turnover, aging, adjustment, dead stock, shrinkage, fill rate, dan open transfer. Definisikan rumus, periode, sumber, serta owner. Nilai rupiah dan unit perlu dilihat bersama.
Dashboard harus bisa drill-down ke item, lokasi, batch, dokumen, dan pengguna. Pisahkan data sementara dari final. Laporan yang tidak dapat ditelusuri mudah diabaikan oleh tim.
Pelajari contoh operasional lain melalui artikel Kasair dan evaluasi fitur pada halaman Kasair menggunakan skenario toko sendiri.
Implementasi dalam beberapa tahap
- Bersihkan produk, varian, satuan, dan lokasi.
- Migrasikan saldo awal dengan cutoff serta bukti count.
- Stabilkan receiving, penjualan, dan retur.
- Terapkan transfer serta adjustment beralasan.
- Jalankan cycle count dan rekonsiliasi.
- Aktifkan reorder setelah data cukup bersih.
- Tambahkan batch, serial, atau integrasi sesuai kebutuhan.
- Tinjau akses, parameter, dan metrik secara berkala.
Pilot harus mencakup transaksi normal dan exception. Jangan rollout ketika staf masih memperbaiki stok dengan mengubah saldo tanpa jejak.
FAQ
Apakah barcode otomatis membuat stok akurat?
Tidak. Barcode mempercepat identifikasi. Akurasi tetap bergantung pada master data, receiving, penjualan, transfer, retur, count, dan kontrol pengguna.
Mengapa stok sistem bisa negatif?
Penyebabnya dapat berupa penjualan sebelum receiving, salah lokasi, sinkronisasi terlambat, konversi satuan, atau transaksi ganda. Investigasi event sebelum melakukan adjustment.
Seberapa sering toko melakukan stock opname?
Frekuensi mengikuti risiko. Gunakan cycle count lebih sering untuk produk bernilai tinggi, cepat bergerak, atau sering selisih, ditambah opname menyeluruh sesuai kebutuhan kontrol.
Apakah retur pelanggan langsung menambah stok jual?
Tidak selalu. Produk harus diperiksa. Barang layak dapat direstock, sedangkan barang rusak, terbuka, atau bermasalah masuk status terpisah.
Kapan reorder otomatis sebaiknya digunakan?
Setelah data produk, saldo, demand, lead time, open order, dan parameter cukup dapat dipercaya. Tetap sediakan review untuk exception dan keterbatasan kas.
Apa indikator stok yang paling penting?
Gunakan beberapa indikator bersama: accuracy, stockout, aging, turnover, adjustment, shrinkage, dan fill rate. Satu angka tidak menjelaskan seluruh kondisi persediaan.
BACA SELANJUTNYA