Batches & expiry dates
Track stock in lots — per-batch cost, MRP and expiry, sold first-expiry-first.
4 min read · Products & inventory
Sign-in required — we'll send you straight to the right screen.
When you receive stock, it can land in a batch — a lot with its own batch number, expiry date, cost and MRP. Batches matter for anything with a shelf life (medicine, cosmetics, food) and for lots that arrived at different prices.
Receive stock into batches
- In Purchases, expand a line's batch / expiry / discount / tax row.
- Enter the batch number and expiry date (required for products marked as expiry-tracked).
- Set the line's MRP if this lot sells at a different price than the catalog price.
- Post the receipt — each batch keeps its own remaining quantity.
Selling from batches
- At the POS, if a product has more than one lot in stock, the cashier gets a batch picker — sorted FEFO (first-expiry-first-out) so the oldest-expiring stock sells first.
- If lots have different MRPs, the picker warns "Lots have different prices" and shows each lot's price.
- Expired lots are flagged so nobody sells them by accident.
Watch expiry before it costs you
Stock reports include an expiry view — lots approaching their date are listed, and expired stock can be written off straight from the report (needs the stock-adjust permission).
Tip: Even if you don't track expiry, batches quietly record each lot's cost and MRP — that's how the system can price a sale from the lot it actually came from.
Sign-in required — we'll send you straight to the right screen.
Related guides
Receive stock (GRN)
Book a shipment in — stock, supplier ledger and the journal post together.
Reading stock levels
The Stock page — what's on hand, where, what it's worth, and every movement behind it.
Product variants (size, color…)
One product, many options — each with its own SKU, barcode, price and stock.
Didn't find what you needed? Press Ctrl K to search all guides, or ask your admin to open the ? menu in the app.
