DC Edge Architecture
DC Edge adalah backend untuk Distribution Center (gudang distribusi). Seperti Store Router, DC Edge menggunakan Go + SQLite dan beroperasi secara offline-first, menyinkronkan data ke Cloud Hub.
Overview
Modul Utama
Receiving (Penerimaan Barang)
Menerima barang dari supplier berdasarkan Purchase Order:
go
type ReceiveRequest struct {
POID string
SupplierID string
Items []ReceiveItem
ReceivedBy string
}
type ReceiveItem struct {
SKU string
ExpectedQty int
ReceivedQty int
RejectedQty int
RejectReason string
}Alur receiving:
- Scan PO barcode atau pilih PO dari daftar
- Scan setiap item (barcode atau RFID batch scan)
- Sistem mencocokkan quantity received vs expected
- Catat discrepancy dan reject reason
- QC inspection (opsional)
- Putaway ke lokasi rak yang ditentukan
Wave Picking
Konsolidasi beberapa Transfer Order (TO) ke dalam satu wave untuk efisiensi:
go
type PickList struct {
Items []PickItem
}
type PickItem struct {
SKU string
TotalQty int // aggregated across TOs in the wave
}Alur picking:
- Sistem membuat wave dari TO yang pending
- Generate pick list terkonsolidasi (mengurangi jarak jalan)
- Picker scan item dari rak sesuai pick list
- Update progress real-time via mobile app
- Selesai picking, lanjut ke packing
Packing & Verifikasi RFID
Verifikasi akurasi packing menggunakan RFID:
go
type PackRequest struct {
TransferOrderID string
ScannedEPCs []string // EPC tags yang di-scan
ExpectedEPCs []string // EPC tags yang seharusnya ada
}Sistem membandingkan ScannedEPCs vs ExpectedEPCs untuk mendeteksi:
- Missing items -- Ada di expected tapi tidak di-scan
- Extra items -- Di-scan tapi tidak ada di expected
- Wrong items -- EPC milik SKU yang berbeda
Shipping (Pengiriman)
Manifest pengiriman ke toko-toko:
- Buat manifest dari TO yang sudah selesai packing
- Assign driver dan kendaraan
- Generate surat jalan
- Dispatch -- catat waktu keberangkatan
- Delivery confirmation dari toko tujuan
Database Schema
DC Edge menggunakan 4 file migrasi utama:
| Migration | Fungsi |
|---|---|
001_init.sql | Tabel dasar: inventory, transfer_orders, waves |
002_qc_putaway.sql | QC inspection, putaway locations |
003_commands.sql | Command queue dari Cloud Hub |
004_cycle_count.sql | Cycle count / stock opname DC |
Sync dengan Cloud Hub
DC Edge menggunakan Sync Agent yang sama pattern-nya dengan Store Router:
- Upload: Event receiving, picking completion, shipping dispatch
- Download: Transfer Orders baru, PO updates, master data
Konfigurasi
yaml
dc:
id: "DC-001"
name: "Gudang Distribusi Jakarta"
cloud_url: "https://cloud.retailos.internal"
api_key: "sk_dc_xxxxx"
database:
path: "./dc.db"
server:
port: 8082