Skip to main content

Branch-Warehouse Syncing

Dokumentasi lengkap untuk sync dan mapping branch dengan warehouse yang tersedia, termasuk support multiple warehouses per branch dengan priority system.

🎯 Overview

Fitur branch-warehouse syncing memungkinkan:
  • βœ… Auto-detect branch yang belum punya warehouse valid
  • βœ… List available warehouses untuk dipilih
  • βœ… Easy mapping via API
  • βœ… Multiple warehouses per branch (1 default + multiple backup)
  • βœ… Priority system untuk fallback inventory allocation
  • βœ… Monitoring dashboard untuk admin

πŸ“Š Database Schema

Table: branch_warehouses

Priority System

  • 0 = Default warehouse (primary)
  • 1 = Backup warehouse 1 (fallback pertama)
  • 2 = Backup warehouse 2 (fallback kedua)
  • 3+ = Backup warehouse berikutnya

πŸ“‘ API Endpoints

1. Get Branch Warehouse Status (Single Branch)

Cek status branch dan warehouse nya, apakah sudah ter-mapping atau belum.
Response Success (Needs Mapping):
Response Success (Already Mapped):

2. Get All Branches Warehouse Status

Cek status semua branch (untuk admin/dashboard monitoring).
Response:

3. Sync Branch Warehouse (Single Mapping)

Mapping branch ke warehouse yang dipilih.
Response Success:
Response Error (Warehouse not found):

4. Get Branch Warehouses (Multiple)

Get list semua warehouses untuk 1 branch (default + backups).
Response:

5. Sync Branch Multiple Warehouses

Set multiple warehouses untuk 1 branch sekaligus (replace existing).
Response:

πŸ”„ Use Cases

Use Case 1: Branch Belum Punya Warehouse

  1. Cek status branch:
  2. Response menunjukkan needs_mapping: true dan list available_warehouses
  3. Pilih warehouse dan mapping:
  4. Branch sekarang sudah ter-mapping ke warehouse

Use Case 2: Setup Default + Backup Warehouses

Branch perlu setup 1 default warehouse dan 2 backup warehouses untuk redundancy.

Use Case 3: Inventory Allocation Logic

Saat create transaction, sistem akan cek stock dengan priority: Implementation:

Use Case 4: Monitoring Dashboard (Admin)

  1. Get all branches status:
  2. Dashboard menampilkan:
    • βœ… Branch yang sudah ter-mapping (hijau)
    • ⚠️ Branch yang needs mapping (kuning/merah)
    • List available warehouses untuk mapping
  3. Admin bisa langsung mapping dari dashboard

πŸ“Š Response Fields Explanation

ResponseBranchWarehouseStatus

WarehouseInfo


πŸ”§ Integration Example

Frontend: Check & Fix Branch Warehouse


πŸ“Š Benefits

  1. βœ… High Availability: Jika default warehouse stock habis, auto fallback ke backup
  2. βœ… Flexibility: Bisa define berapa banyak backup warehouses sesuai kebutuhan
  3. βœ… Clear Priority: Priority system yang jelas (0=default, 1+=backup)
  4. βœ… Easy Management: Single API call untuk setup multiple warehouses
  5. βœ… Redundancy: Mengurangi risk β€œstock tidak cukup” dengan backup warehouses
  6. βœ… Auto-detect: Sistem otomatis detect branch yang belum ter-mapping
  7. βœ… Monitoring: Dashboard untuk admin monitoring status semua branch

⚠️ Important Notes

  1. Priority 0 wajib ada: Setiap branch harus punya minimal 1 warehouse dengan priority=0 (default)
  2. Unique constraint: 1 branch tidak boleh punya warehouse yang sama 2x
  3. Soft delete: Gunakan deleted_at untuk soft delete, jangan hard delete
  4. Backward compatible: Existing branches.default_warehouse_id tetap bisa digunakan sebagai fallback

πŸš€ Testing

Postman Collection


Inventory Flow

Inventory management & warehouse stocks

Transaction Flow

Transaction creation & inventory consumption

Database ERD

Complete database schema

Need Help? Contact backend team atau check GitHub Issues