Skip to content

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:

  1. Scan PO barcode atau pilih PO dari daftar
  2. Scan setiap item (barcode atau RFID batch scan)
  3. Sistem mencocokkan quantity received vs expected
  4. Catat discrepancy dan reject reason
  5. QC inspection (opsional)
  6. 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:

  1. Sistem membuat wave dari TO yang pending
  2. Generate pick list terkonsolidasi (mengurangi jarak jalan)
  3. Picker scan item dari rak sesuai pick list
  4. Update progress real-time via mobile app
  5. 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:

  1. Buat manifest dari TO yang sudah selesai packing
  2. Assign driver dan kendaraan
  3. Generate surat jalan
  4. Dispatch -- catat waktu keberangkatan
  5. Delivery confirmation dari toko tujuan

Database Schema

DC Edge menggunakan 4 file migrasi utama:

MigrationFungsi
001_init.sqlTabel dasar: inventory, transfer_orders, waves
002_qc_putaway.sqlQC inspection, putaway locations
003_commands.sqlCommand queue dari Cloud Hub
004_cycle_count.sqlCycle 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

RetailOS - Sistem ERP Retail Modern untuk Indonesia