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

  1. In Purchases, expand a line's batch / expiry / discount / tax row.
  2. Enter the batch number and expiry date (required for products marked as expiry-tracked).
  3. Set the line's MRP if this lot sells at a different price than the catalog price.
  4. 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

Didn't find what you needed? Press Ctrl K to search all guides, or ask your admin to open the ? menu in the app.