Goods Receiving
Process inbound supplier deliveries, customer returns, and incoming inter-warehouse transfers.
Routes:
/receiving /receiving/new /receiving/returns /receiving/transfers Inbound Goods Receiving
The Receiving module manages inbound freight at the warehouse dock — processing supplier purchase orders, customer returns (RMA), and incoming stock transfers.
Receiving Logic & Automated Financial Postings
flowchart TD
A[Inbound Freight Arrives at Dock] --> B[Match PO & Verify Counts]
B --> C[Generate Goods Receipt Note GRN]
C --> D[1. Recalculate Product WAC Costing]
C --> E[2. Post GRNI Accrual to General Ledger]
C --> F[3. Increment Physical On-Hand in Dock Staging Bin]
C --> G[4. Auto-Transition Purchase Order State]
1. General Ledger Accrual (GRNI Clearance Gate)
Confirming a Goods Receipt Note (GRN) immediately recognizes inventory assets in the General Ledger before vendor invoices are received:
Debit: Inventory Asset Account (Qty Received * Actual Unit Cost)
Credit: Goods Received Not Invoiced (GRNI) (Qty Received * Actual Unit Cost)
- Under Standard Costing, inventory is debited at standard cost and any difference against PO cost is posted to Purchase Price Variance (PPV).
2. Moving WAC Recalculation Trigger
Every Goods Receipt automatically recalculates the product’s Moving Weighted Average Cost:
New WAC = ((Current QOH * Current WAC) + (Qty Received * Actual Unit Cost)) / (Current QOH + Qty Received)
The new WAC is saved to 4 decimal places and becomes the active baseline for subsequent COGS dispatches.
3. Purchase Order Auto-Transitions
The system evaluates line-level receipt progress automatically:
- Partial Delivery: If
0 < Total Received < Total Ordered, the PO transitions toPartially Received. - Full Delivery: When
Total Received >= Total Orderedacross all lines, the PO transitions toReceived(auto-receive-when-fully-receivedrule), enabling 3-way invoice matching.
4. Over-Receipt Guardrails & Quality Inspection
- Over-Receipt Control: Quantities exceeding the approved PO line must be explicitly acknowledged by a supervisor or rejected back to the carrier.
- Damaged Goods: Damaged units are received directly into a Quarantine Bin, preventing them from entering active stock while preserving the accurate GRNI accrual liability.
Step-by-Step Workflows
1. Receiving a Supplier Purchase Order
- Go to Inventory → Receiving → Supplier Receipts (
/receiving). - Click New Receipt (
/receiving/new) and select the Purchase Order. - Enter the supplier’s Delivery Note / Packing Slip Number.
- For each line item, enter the physical Received Quantity and assign to the dock staging bin.
- If items fail inspection, route the damaged count to Quarantine.
- Click Confirm Receipt to generate the official GRN, recalculate WAC, and post the GRNI GL accrual.
2. Receiving Customer Returns (RMA)
- Go to Inventory → Receiving → Customer Returns (
/receiving/returns). - Select the confirmed RMA number.
- Verify returned item serials and condition, then click Accept & Restock.
Field Reference
| Field | Description |
|---|---|
| Receipt Number (GRN) | Unique goods receipt identifier (e.g. GRN-2026-00155). |
| Purchase Order | Parent supplier purchase order reference. |
| Supplier Slip Number | External delivery docket reference from the carrier. |
| Received Quantity | Verified count received at the dock. |
| Receipt Unit Cost | Capitalized inventory cost per unit. |
Field Reference & Data Dictionary
Key database fields, input parameters, and definitions associated with this workflow screen:
| Field / Parameter | Display Name | Description & Rules |
|---|---|---|
| receipt_number | Goods Receipt Note (GRN) | Unique inbound receipt record (e.g. GRN-2026-00155). |
| purchase_order_id | Purchase Order | Supplier purchase order against which items are being received. |
| packing_slip_number | Supplier Delivery Note / Slip | External consignment or carrier tracking number on supplier packaging. |
| received_quantity | Received Quantity | Actual verified physical count accepted at the dock. |
| unit_cost | Receipt Unit Cost | Purchasing cost per unit used for inventory capitalization and GRNI accrual. |