Lokasi, Gudang, dan Manajemen Logistik

1. Filosofi Manajemen Lokasi

Zhuzhe POS dibangun dengan arsitektur "Store-First". Dalam sistem ini, Toko (Store) adalah entitas tertinggi dalam operasional harian. Setiap Toko dapat memiliki satu atau lebih Gudang (Warehouse). Pemisahan ini memungkinkan bisnis besar untuk mengelola stok yang ada di "Lantai Penjualan (Display)" dan "Gudang Belakang (Buffer Stock)" secara terpisah namun tetap dalam satu laporan keuangan toko yang sama.


2. Fitur Utama Lokasi & Gudang

2.1 Multi-Warehouse per Cabang

Sistem mengizinkan setiap cabang untuk mendaftarkan banyak titik penyimpanan.

  • Penggunaan: Kasir dapat memilih dari gudang mana barang akan diambil saat transaksi (misal: ambil dari Gudang Toko atau kirim dari Gudang Pusat).

  • Isolasi: Gudang milik Toko A tidak akan pernah muncul dalam pilihan Kasir di Toko B, menjamin keamanan fisik barang.

2.2 Store Switching (Perpindahan Konteks)

Khusus untuk peran Admin dan admin_store, sistem menyediakan fitur Switch Store.

  • Cara Kerja: Melalui tabel pivot store_user, seorang manager area dapat diberi akses ke 3 dari 10 toko yang ada.

  • Dampaknya: Saat manager berpindah konteks ke "Toko B", seluruh data di dashboard, katalog produk, dan stok akan otomatis berubah total menjadi data Toko B tanpa perlu logout.

2.3 Identitas Cabang Dinamis

Setiap toko memiliki pengaturan mandiri untuk data identitas yang akan muncul di struk belanja (Alamat, Nomor Telepon, Logo, dan Nama Cabang).


3. Manajemen Stok & Audit Trail

3.1 Konsep Saldo Stok Real-time

Setiap barang di setiap gudang dicatat saldonya dalam tabel warehouse_stocks.

  • Unit Konsistensi: Stok selalu disimpan dalam Satuan Terkecil (Base Unit). Jika satuan dasarnya adalah "Pcs", maka meskipun barang masuk dalam bentuk "Dus", sistem akan mengonversinya ke angka "Pcs" untuk disimpan ke database.

  • Integritas Data: Menggunakan Database Transaction (DB::transaction) untuk memastikan bahwa setiap kali stok dipotong, histori mutasi wajib tercipta. Jika histori gagal dicatat, maka pemotongan stok akan dibatalkan otomatis.

3.2 Tipe Mutasi Barang (Movement Types)

Sistem mencatat empat jenis pergerakan barang untuk keperluan audit:

  1. IN (Masuk): Digunakan saat menerima barang dari supplier atau pendaftaran stok awal produk baru.

  2. OUT (Keluar): Digunakan untuk pembuangan barang rusak (spoilage) atau pengiriman barang ke luar sistem non-penjualan.

  3. ADJUSTMENT (Penyesuaian): Digunakan saat terjadi selisih antara stok fisik dan sistem (Stock Opname). Mencatat angka selisih (Delta) secara otomatis.

  4. SALE (Penjualan): Otomatis tercatat setiap kali transaksi sukses di Terminal POS.

3.3 Notifikasi Stok Kritis (Low Stock Alert)

Dashboard Zhuzhe POS memantau setiap produk yang saldonya berada di bawah atau sama dengan alert_level.

  • Visual Alert: Kotak statistik "Stok Kritis" akan berubah warna menjadi merah dan menampilkan jumlah produk yang harus segera dipesan ulang (restock).


4. Penjelasan Teknis (Technical Detail)

4.1 Skema Relasi Logistik

  1. stores: Tabel induk identitas cabang.

  2. warehouses: Terikat ke store_id. Lokasi fisik penyimpanan.

  3. warehouse_stocks: Menyimpan saldo akhir. Memiliki indeks unik gabungan: unique(['warehouse_id', 'item_id']).

  4. stock_movements: Tabel histori masif yang mencatat setiap detail perubahan.

4.2 Optimasi Query Laporan

Tabel stock_movements menyertakan kolom store_id secara langsung (Denormalisasi terkontrol).

  • Alasan: Hal ini dilakukan agar Super Admin bisa menarik laporan mutasi seluruh cabang secara instan tanpa perlu melakukan operasi JOIN tabel gudang yang berat, sehingga performa tetap cepat meskipun data mencapai jutaan baris.


5. Penjelasan Non-Teknis (User Experience)

5.1 Antarmuka Logistik yang Sederhana

Pengguna (Manager Toko) cukup memilih Produk, memilih Gudang, dan memasukkan jumlah barang. Sistem akan secara otomatis menentukan apakah itu penambahan atau pengurangan berdasarkan tipe yang dipilih (Masuk/Keluar).

5.2 Keamanan Akses User

Seorang Kasir (role: Cashier) hanya diizinkan melihat stok, namun tidak diizinkan melakukan "Penyesuaian Stok" (Adjustment). Fitur penyesuaian hanya terbuka untuk role Manager ke atas sebagai bentuk kontrol internal perusahaan.


6. Ringkasan Objek Data (Data Dictionary)

Field

Tipe Data

Fungsi

store_id

Foreign Key

Kunci utama isolasi data antar cabang.

warehouse_id

Foreign Key

Identitas lokasi fisik penyimpanan barang.

qty

Decimal (15,2)

Jumlah barang (mendukung angka desimal untuk produk timbangan/Kg).

type

Enum

Klasifikasi mutasi (IN, OUT, ADJUSTMENT, SALE).

reference_id

String

Nomor referensi (Contoh: Nomor Invoice atau Nomor PO Supplier).


Volume 4 akan membahas Detail Fitur Pelanggan (CRM) dan Strategi Harga (Price Groups & Customer Levels).

Last updated