title: “Distribution Tracking” description: “Sistem tracking distribusi, shipment management, batch recall, dan surat jalan di SNISHOP ERP.”
Distribution Tracking

Arsitektur Komponen
Entity Relationship Diagram
Entity & Model
DistributionShipment
Entitas utama yang merepresentasikan setiap pengiriman produk dari gudang ke customer/distributor. Setiap shipment terhubung dengan Sales Order, melacak batch produk untuk keperluan recall, dan terintegrasi dengan modul Finance melaluiinvoice_id dan finance_record_id.
DistributionReturn
Entitas yang mengelola proses retur pengiriman dari customer/distributor. Setiap return terhubung dengan shipment asal, melalui proses QC, karantina, dan disposisi akhir.LotBatch
Entitas yang merepresentasikan setiap batch/lot produksi atau penerimaan bahan baku. LotBatch merupakan tulang punggung traceability — setiap produk yang diproduksi, disimpan, dikirim, atau direcall dapat dilacak melalui nomor lot.WarehouseLocation
Entitas yang mendefinisikan lokasi-lokasi gudang, toko, transit, dan virtual dalam sistem ERP. Setiap shipment memiliki origin dan destination yang merujuk ke WarehouseLocation.QualityCase
Entitas yang menangani kasus kualitas yang menyebabkan penahanan (hold/quarantine) batch produk. QualityCase menjadi trigger utama untuk proses recall pada Distribution Tracking.Status Pipelines & Lifecycle Diagrams
Shipment Status Lifecycle
Distribution Return Lifecycle
Quarantine Status Lifecycle (DistributionReturn)
Lot Batch Status Lifecycle
Quality Case Lifecycle
QuinnOrder Fulfillment Lifecycle
Enum Reference Tables
DistributionShipment Status
Customer Type
Logistic Providers
Distribution Return Status
Distribution Return Quarantine Status
Distribution Return QC Status
Lot Batch Status
Lot Batch Quality Status
Lot Batch Item Type
Lot Batch Expiry Alert Status
Lot Batch Cost Status
Lot Batch Identity Status
Quality Case Reason
Quality Case Status
Warehouse Location Type
Quality Check Overall Status
Quality Check Expiry Date Check
Quality Check Checklist Result
QuinnOrder Status
QuinnOrder Payment Status
QuinnOrder Fulfillment Status
QuinnOrder Reservation Status
Partnership Application Type
Partnership Application Status
Sequence Diagrams
Flow Pembuatan Shipment (Create Shipment)
Flow Tracking & Status Update
Flow Batch Recall
Flow Distribution Return
Flow Surat Jalan Generation
Fitur Utama
1. Shipment Management
Sistem membuat shipment baru dengan langkah-langkah terstruktur: validasi stok, pemilihan batch FIFO, pengisian data penerima, pemilihan logistik, dan integrasi ke modul Finance. FIFO Batch Selection: Sistem secara otomatis memilih batch tertua (First In, First Out) untuk memastikan produk yang dikirim memiliki sisa shelf life maksimal. Ini kritis untuk bisnis F&B karena berkaitan langsung dengan keamanan pangan dan kepuasan customer. Idempotency & Data Integrity: Setiap shipment creation menggunakan idempotency key yang tersimpan di fieldmetadata untuk mencegah duplikasi, terutama penting saat integrasi dengan API logistik pihak ketiga.
2. Surat Jalan (Delivery Order)
Surat Jalan adalah dokumen fisik yang menyertai pengiriman. Sistem menggenerate preview surat jalan yang bisa dicetak:3. Batch Recall Engine
recallEngine.js (280 baris) adalah modul kritis yang menangani penarikan batch produk bermasalah. Sistem ini digunakan ketika ada laporan kualitas negatif pada batch tertentu dan terhubung langsung dengan entitas QualityCase.
Risk Levels:
Recall Flow:
CSV Manifest Export: Untuk risk level HIGH dan CRITICAL, sistem mengexport CSV manifest yang berisi:
4. Tracking & ETA
Setiap shipment memiliki estimasi waktu tiba (ETA) yang bisa diupdate berdasarkan status:5. Distribution Return Management
Modul retur mengelola proses pengembalian barang dari customer/distributor secara terstruktur:- Pengajuan Retur: Customer mengajukan retur dengan menyebutkan item, quantity, dan alasan
- Penerimaan Fisik: Barang diterima di gudang, dicatat lokasi penerimaannya (
received_location_id) - Inspeksi QC: Barang melalui inspeksi Quality Control (
qc_status: pending) - Karantina: Barang dikarantina sementara menunggu hasil QC (
quarantine_status: quarantined) - Disposisi: Keputusan akhir — approved (kembali ke stok), rejected (write-off), atau conditional
6. Multi-Tenant & Row-Level Security
Semua entitas Distribution Tracking menggunakan Row-Level Security (RLS) berbasiscompany_id. Akses data dibatasi berdasarkan:
- Company scoping: User hanya melihat data dari
active_company_idmereka - Creator access: User yang membuat record dapat mengakses record tersebut
- Admin override: User dengan role
adminmemiliki akses penuh
Cara Akses
Dari sidebar, klik menu B2B > Distribution Tracking.Flow Penggunaan
Admin / Gudang
- Buka halaman Distribution Tracking dari sidebar
- Klik “Buat Pengiriman” untuk shipment baru
- Pilih produk dan jumlah yang akan dikirim
- Sistem otomatis memilih batch tertua (FIFO)
- Isi detail penerima dan alamat
- Pilih logistic provider dan input tracking number
- Print surat jalan untuk menyertai pengiriman
- Update status secara berkala seiring progres pengiriman
Batch Recall (Quality Issue)
- Terima laporan kualitas negatif pada batch tertentu
- Aktifkan recallEngine dengan batch number
- Sistem assess risk level (LOW/MEDIUM/HIGH/CRITICAL)
- Untuk HIGH/CRITICAL: export CSV manifest penerima terdampak
- Hubungi penerima untuk arrange return/pickup
- Update status shipment ke
returnedataurecalled - Quarantine stock yang dikembalikan
- Buat DistributionReturn untuk proses retur formal
Retur Barang
- Customer/distributor mengajukan permintaan retur
- Sistem membuat DistributionReturn dengan status
requested - Jadwalkan penerimaan barang di gudang
- Terima barang fisik, update status ke
received - Inspeksi QC terhadap barang retur
- Tentukan disposisi: approved, rejected, atau conditional
- Update stok sesuai disposisi akhir
- Tutup proses retur (status:
closed)
Integrasi Cross-Module
Detail Integrasi
RBAC Permission Matrix
Berdasarkan Row-Level Security (RLS) yang didefinisikan pada setiap entitas:
Catatan RBAC:
- Admin: Akses penuh ke semua operasi CRUD pada semua entitas dalam perusahaan.
- Owner (Creator): Khusus DistributionShipment dan DistributionReturn, user yang membuat record memiliki akses penuh terlepas dari company_id.
- Same Company: User dalam company yang sama dapat mengakses data selama
company_idpada data cocok denganactive_company_iduser dan tidak null atau kosong. - Semua entitas menggunakan isolasi multi-tenant berdasarkan
company_iduntuk mencegah kebocoran data antar perusahaan.
Tips
- Selalu gunakan FIFO batch selection untuk memastikan shelf life produk optimal di tangan partner
- Update status shipment secara real-time — partner bergantung pada informasi ini untuk perencanaan penerimaan
- Untuk batch recall, mulai dari risk assessment sebelum mengambil aksi — tidak semua isu memerlukan CRITICAL level
- Export CSV manifest secara berkala untuk audit trail dan compliance
- Gunakan internal fleet untuk area lokal guna mengontrol kualitas pengiriman langsung
- Manfaatkan field
metadatauntuk menyimpan idempotency key saat integrasi dengan API pihak ketiga - Selalu verifikasi HACCP sebelum melepas batch untuk pengiriman — field
haccp_verifiedpada LotBatch adalah gate utama - Untuk retur, pastikan proses QC dilakukan sebelum disposisi — gunakan
quarantine_statusuntuk melacak status karantina - Monitor
expiry_alert_statuspada LotBatch secara proaktif untuk mencegah pengiriman produk mendekati kadaluarsa - Gunakan
cost_statuspada LotBatch untuk memastikan kelengkapan pencatatan HPP sebelum shipment diinvoice ke Finance
