Skip to content
Infotech

Expiry dates and batches

For medicines, food and cosmetics you can keep stock per batch and expiry date. Purchases then ask for the batch number and expiry date, sales and transfers take what expires first, and the Expiry dates page shows what has expired, what expires soon and what it is worth.

Open Inventory Management › Warehouse Management › Expiry dates. It needs the product read permission. Staff see only the warehouses they are assigned to.

Set it up

  1. Open a product under Product Details. Batches work for stocked products only.
  2. In the Batches and expiry card, switch on Track batches and expiry dates. This needs the product update permission.
  3. Stock already on hand counts as "batch not known" and is sold first.
  4. From now on, each purchase line of this product asks for its Batch and Expires date. A purchase cannot be posted until each such line has at least one of the two. If a delivery holds two batches, use Another batch to split the line.

The same card then lists the product's batches in stock, per warehouse, with their expiry date, the days left and the quantity. Each batch is marked Expired, Expires soon, Good, No expiry or Batch not known.

The Batches and expiry card, with tracking still switched offThe Batches and expiry card, with tracking still switched off

Switching tracking off keeps the batches, but they are no longer followed.

The Expiry dates page

The page lists every batch with an expiry date that still has stock, the soonest first. While no product tracks batches, it says so and shows Nothing expires.

TileShows
ExpiredThe value of expired batches, and how many
Within 30 daysWhat expires soon (the number of days is your setting)
LaterWhat expires after that
Products trackedHow many products track batches

Click a tile, or use Show (All, Expired, Expiring soon, Later), to filter. With more than one warehouse you can also pick a Warehouse. Search by item, SKU, barcode or batch.

ColumnShows
ItemName, variant, unit and SKU
BatchThe batch number, if one was entered
WarehouseWhere the batch is
ExpiresThe date, a bar and the days left, for example "12 days left" or "Expired 3 days ago"
In stockThe quantity left in the batch
ValueWhat it is worth at cost

Click a row to open the product.

Change "expiring soon"

With the settings permission, click the Warn 30 days ahead button, enter a number of days (1 to 365, or click 7, 30, 60 or 90) under Expiring soon means within, and click Save. The tiles and filters use the new number at once.

Write off expired stock

On an expired batch, click Write off and confirm Write off this batch?. This posts a waste of that quantity with the reason "expired" (see Waste and adjustments), noting the batch number. It needs the waste create permission.

How batches are used

  • Sales and transfers take the batches that expire first among those still good, then batches without an expiry date, then expired ones.
  • Write-offs, stock counts and returns to the supplier take expired batches first.
  • Stock whose batch is not known (it was there before tracking) is always used first.
  • Returns and arriving transfers put goods back into the batch they came from.
  • At the till, if a cart would be sold from an expired batch, a warning such as "Milk 1L: 2 from a batch that expired on 3/10/2026" appears before payment.

Example

A pharmacy switches on tracking for a cough syrup. A delivery of 40 bottles comes in two batches: 25 of batch L231 expiring 30 June and 15 of batch L240 expiring 30 September. The pharmacist enters the first line with batch L231, clicks Another batch for the second and posts. Sales take L231 first. In July, 3 bottles of L231 are left and show as Expired; the manager clicks Write off and they leave the stock as waste.

Last updated 17 Oct 2026