Inventory & Bin Management
Monitor multi-warehouse stock balances, manage bin hierarchies, execute stock adjustments, and audit perpetual ledger movements.
/inventory /inventory/locations /inventory/bins /inventory/ledger /demand/restock /demand/movement Inventory & Bin Management
The Inventory & Bin Management module provides perpetual inventory visibility across all warehouse facilities, managing stock balances, multi-zone bin structures, and physical stock ledger movements.
Inventory Architecture & Bin Types
flowchart TD
WH[Warehouse Location] --> Z1[Receiving / Staging Zone]
WH --> Z2[Active Picking Zone]
WH --> Z3[Bulk Storage Racking]
WH --> Z4[Quarantine Isolation]
Z1 --> B1[staging Bin]
Z2 --> B2[pick Bin]
Z2 --> B3[storage Bin]
Z3 --> B4[bulk Bin]
Z4 --> B5[quarantine Bin]
1. Bin Classifications (BIN_TYPE)
Bins are categorized by operational purpose:
storage: Standard shelving and pallet positions holding sellable inventory.pick: Dedicated forward pick-face locations.bulk: High-density overstock and reserve pallet racking.staging: Temporary staging zones for dock receiving or outbound shipping.quarantine: Isolated bins holding rejected or damaged stock excluded from sales availability.in_transit: Virtual bin tracking stock moving between company facilities.wip: Work-in-progress holding location for manufacturing assemblies.
2. Available Stock Calculation
The system dynamically computes sellable availability:
Available Quantity = On-Hand Stock - Allocated Order Reservations - Quarantine Stock
- On-Hand: Physical inventory present in warehouse storage, pick, and bulk bins.
- Allocated / Committed: Units committed to confirmed customer sales orders awaiting picking/dispatch.
- Quarantine: Units in quarantine bins awaiting inspection or return.
3. On-Order Stock Calculation (Incoming POs)
The system tracks incoming inventory from suppliers based on active Purchase Orders:
On-Order Quantity = SUM(max(0, PO Line Ordered Qty - PO Line Received Qty))
- Procurement State Scope: Only Purchase Orders in active incoming states (
ordered,partially_received) contribute to On Order. Orders indraft,received(fully received),invoiced,cancelled,closed_short, orarchivedstates are excluded. - Non-Negative Guarantee: Over-receipts (where delivered quantity exceeds ordered quantity) clamp at
0remaining incoming units, guaranteeing that On Order balances never become negative.
4. Inventory Replenishment & Restock Calculation (/demand/restock)
The restock engine identifies products whose inventory position has breached minimum buffer thresholds and calculates optimal order quantities:
Projected Inventory Position = On-Hand Stock + On-Order Stock
- Replenishment Trigger: An item is flagged for restock if:
Projected Inventory Position < Min Quantity - Suggested Restock Quantity Formula:
Target Maximum = Max Quantity > Min Quantity ? Max Quantity : Min Quantity Suggested Restock Quantity = max(0, Target Maximum - Projected Inventory Position) - Suggested Quantity vs. Restock Quantity:
- Suggested Quantity (
suggestedRestockQty): The algorithmically computed baseline quantity required to restore inventory to target levels without overstocking. - Restock Quantity (
orderQty/ Slide-Over Input): The user-editable order quantity in the Generate Purchase Orders slide-over drawer, allowing purchasing agents to adjust for supplier minimum order quantities (MOQs), carton/pallet pack multiples, or seasonal demand shifts.
- Suggested Quantity (
- Auto-Resolution: When draft Purchase Orders are generated, the ordered items shift to
onOrderstatus (Projected Position >= Min Quantity), bringing the suggested restock quantity to0and clearing the items from the restock requisition list.
5. Stock Movement Reporting & Detailed Movements (/demand/movement)
The movement report tracks product velocity and physical stock changes across selected date ranges and facilities:
Net Stock Movement = Total Stock In (+) - Total Stock Out (-)
Closing Stock = Opening Stock + Net Stock Movement
- Stock In (+): Comprises Goods Receipts (
PO_RECEIPT), Customer Sales Returns (SO_RETURN), Inbound Transfers (TO_RECEIPT), Manufacturing Output (WO_RECEIPT), and Positive Stock Adjustments (ADJUSTMENT_IN). - Stock Out (-): Comprises Sales Order Shipments (
SO_SHIPMENT), Supplier Returns (PURCHASE_RETURN), Outbound Transfers (TO_DISPATCH), Work Order Component Issues (WO_ISSUE), and Negative Stock Adjustments (ADJUSTMENT_OUT). - Detailed Movement Ledger Slide-Over: Clicking any row in the Stock Movement table opens a detailed slide-over displaying the product’s metric summary cards, categorized activity breakdown, and full itemized ledger transactions with links to source documents.
Step-by-Step Workflows
1. Generating Restock Purchase Orders
- Go to Demand → Restock (
/demand/restock). - Review the read-only requisition table showing current
On Hand,On Order,Min Qty,Max Qty, andSuggested Qty. - Filter by warehouse facility or product group if needed.
- Select the checkboxes for the items you want to order, or click Generate POs to review all flagged items.
- In the slide-over drawer:
- Items are automatically grouped into draft orders by Preferred Supplier and Deliver-To Warehouse.
- Review stock metrics (
On Hand,On Order,Min,Max), adjust Restock Qty or Unit Cost, or assign suppliers to unassigned items. - Delete any lines not needed for the current order run.
- Click Generate POs. Draft Purchase Orders are created in
/purchase-orders, and the ordered items are cleared from the restock requisition list.
2. Inspecting Product Stock Movements
- Go to Demand → Movement (
/demand/movement). - Select the Product Group, Location, and date range.
- Click on any product row in the table.
- The Detailed Movements slide-over opens, displaying:
- Summary cards: Opening Stock, Total Stock In, Total Stock Out, Net Movement, and Current On Hand.
- Categorized activity breakdown by source type (PO Receipts, SO Shipments, Transfers, Work Orders, Adjustments).
- Interactive transaction ledger with clickable links to related documents and trading parties.
3. Performing an Ad-Hoc Stock Adjustment
- Go to Inventory (
/inventory). - Search for the product SKU.
- Click Adjust Stock.
- Select the Warehouse and specific Bin Location.
- Enter the Quantity Change (+/-) and select a reason code (e.g. Found Stock, Breakage).
- Click Confirm Adjustment. The inventory ledger updates immediately, and the balancing expense posts to the General Ledger.
4. Auditing the Perpetual Inventory Ledger
- Go to Inventory → Ledger (
/inventory/ledger). - Filter transactions by date range, warehouse location, or transaction type (
receipt,dispatch,adjustment,transfer). - Inspect the audit trail of perpetual stock movements, unit cost valuations, and linked General Ledger journal entry IDs.
Field Reference
| Field | Description |
|---|---|
| Product SKU | Unique catalog identifier. |
| Warehouse / Location | Physical facility location. |
| Bin Location | Shelf/rack address (storage, pick, bulk, staging, quarantine). |
| On Hand | Total physical count present in pickable storage bins. |
| Committed / Allocated | Units reserved for confirmed customer orders. |
| Available | Net sellable stock (On Hand - Committed - Quarantine). |
| On Order | Pending incoming units from open Purchase Orders (ordered, partially_received). |
| Min Qty | Minimum inventory threshold triggering replenishment when On Hand + On Order < Min Qty. |
| Max Qty | Target inventory ceiling for replenishment calculations. |
| Suggested Qty | System-calculated optimal replenishment quantity: max(0, Target Max - (On Hand + On Order)). |
| Restock Qty | Editable order volume specified in the draft PO slide-over drawer. |
| WAC Unit Cost | Current Moving Weighted Average Cost valuation. |
Field Reference & Data Dictionary
Key database fields, input parameters, and definitions associated with this workflow screen:
| Field / Parameter | Display Name | Description & Rules |
|---|---|---|
| location_id | Warehouse Location | Physical distribution center or branch facility. |
| bin_number | Bin Identifier | Coordinate location (e.g. A01-R02-S3-B). |
| bin_type | Bin Classification | Type of bin: storage, pick, bulk, staging, quarantine, in_transit, wip. |
| quantity_on_hand | Quantity On Hand | Total physical stock physically residing in warehouse bins. |
| quantity_available | Quantity Available | Stock available for new orders (On Hand minus Allocated Reservations). |