Inventory · receiving
Stock in.
Every time a supplier delivers, you record a goods-received note (GRN). This is the only legitimate way new units land in your branch inventory — the system blocks ad-hoc quantity edits because they break weighted-average cost math.
Who can receive
Org owner, regional manager, and branch manager. Anyone else won't see the menu item or the page — RLS rejects the write at the database level if someone tries to bypass.
Open the form
Sidebar → Receive stock. Or visit /inventory/receive directly. You can also land here from a supplier page with + Receive from this supplier, which pre-fills the supplier dropdown.
Where & who
Top panel collects the receipt header:
| Field | Notes |
|---|---|
| Branch | Where the stock physically lands. Defaults to your branch. Branch managers can only see their own; regional + owner see all. |
| Supplier | Pick from active suppliers. If none exist, the form links to /suppliers/new to add one inline. Leave blank for internal transfers or unknown sources. |
| Supplier invoice # | From the printed invoice the supplier handed you. Optional but recommended for audit. |
| Invoice date / Received on | Two separate dates because suppliers sometimes invoice ahead of shipment. Both optional. |
Add line items
Type to search SKUs — by code, brand, model, or colour. Or hit Scan for the camera-based barcode reader. Each match shows the SKU code, brand, colour, and the SKU's default GST rate.
The killer button: + Create new SKU
When you unbox a delivery and find a frame model you've never sold before, you don't need to leave this page. At the bottom of every search dropdown there's a + Create new SKU row. Click it and a drawer opens from the right with a quick-create form: brand, model, variant, pricing, tax. Save and it's added to your catalogue and dropped into your receipt as the next line.
What goes in each line
| Column | What it means |
|---|---|
| Qty | How many units of this SKU you received. |
| Cost (₹ excl. GST) | Per-unit cost from your supplier's invoice — BEFORE tax. The system adds GST automatically using the rate column. Most common typo: putting MRP or selling price here. Don't. |
| Discount (₹) | Total discount for the line (not per-unit). If your supplier gave you ₹500 off a batch of 10, put 500. |
| GST % | Defaults from the SKU. Override if your supplier invoiced you at a different rate. |
The amber variance warning
When you pick a SKU you've received before, the system looks up the running weighted-average cost for that SKU at that branch. If your typed cost is more than 15% above the running average, an amber banner appears under the line:
Two reasons it might fire: (a) supplier really did raise prices and you should review your selling price, or (b) you typed a zero too many. Either way you want to know before confirming, not after — once the receipt commits, the new cost blends into the weighted average and contaminates downstream margin reports.
Confirm
Hit Record receipt →. The action runs atomically — receipt header, lines, branch_inventory bump, and weighted-average cost recompute all live or die together. You land back on the receive page with a green success banner showing the receipt number (RCP-2026-NNNNN).
How weighted-average cost works
Every SKU at every branch has a running weighted-average cost. When you receive a new batch:
new_avg = (old_qty × old_avg + received_qty × new_cost)
────────────────────────────────────────────
old_qty + received_qtyExample: 5 wayfarers on the shelf at ₹3,500 cost. Supplier sends 3 more at ₹4,000. New average becomes (5×3500 + 3×4000) / 8 = ₹3,687.50. Every sale from that batch records its cost basis at ₹3,687.50 — frozen, so future receipts don't retroactively shift the margin on already-sold units.
Each receipt line also stores its own unit cost forever. So even though the running average blends, the audit trail of “we paid X on date Y from supplier Z” survives. Visible on the per-SKU history page.
Adding suppliers
/suppliers/new takes name, legal name, GSTIN (validates the 15-character format), contact name + phone + email, address, and payment terms (net 15 / 30 / 45 / 60). All editable later.
On the supplier detail page you'll see total purchases, outstanding amounts, and a per-receipt history.
Next up
Transfers & per-SKU history →Moving stock between branches once you have more than one — plus the lifetime view of any SKU.