Inventory module
Multi-warehouse stock, product hierarchy & matrix, batches, serial numbers, reorder points, transfers, valuation, warehouse automation, logistics, and fleet management.
Overview
Stock is tracked ledger-style (double-entry). Every movement creates ledger entries; total cost at each location is computable at any time. Data is scoped by TenantId → CompanyId → BranchId. Products support hierarchy and matrix attributes (e.g. size, colour); all combinations are ProductItem records for fast BI.
Capabilities
- Product hierarchy & ProductItem — Categories, products, matrix attributes; every transaction links to productItemId
- Warehouses — Types: warehouse, store, transit, quarantine, scrap
- Stock ledger — Debit/credit movements; running balance per location and productItem
- Batches & serial numbers — Batch/lot tracking; serial tracking per product where configured
- Stock transfers — Request → Approval → Picking → Transfer → Receipt (configurable workflow)
- Stock adjustments — Request → Approval → Posting
- Warehouse automation — Zones/aisles/bins, put-away strategies, pick-pack-ship, wave planning
- Global logistics — Carriers, shipment tracking, freight calculation, route planning
- Fleet management — Vehicles, drivers, trips, fuel logs
Stock transfer workflow
- Request — User creates transfer (from/to warehouse, items)
- Approval — Manager approves (configurable)
- Picking — Items picked at source
- Transfer — In progress
- Receipt — Confirmed at destination
Example API
GET /api/inventory/products
GET /api/inventory/stock?warehouseId=...
GET /api/inventory/stock-ledger/{warehouseId}/balance
POST /api/inventory/transfers
POST /api/inventory/adjustments
GET /api/inventory/valuation/{warehouseId}
POST /api/inventory/put-away/suggest
POST /api/inventory/pick-lists/generate