Track lots and best-before dates

Receive stock with a lot number and best-before date, pick the oldest first, spot what is about to expire, and find every buyer of a lot.

Updated 6 Oct 2026

If you sell food, drinks, supplements or anything else with a best-before date, your packs carry a lot number and a date. Lots and best-before is a stock mode in the Shop app that keeps those details for you, so you can answer "which orders got lot X?" in one search.

It is off until you switch it on, and your current stock counts stay exactly as they are.

Switch it on

  1. Open Shop settings and click the Stock row.
  2. Turn on Track lots and best-before. It then applies to every product unless a product says otherwise.
  3. Set Warn me before best-before (60 days to start with). Lots inside this window turn amber on Stock and appear on Expiring soon.
  4. Set Stop selling before best-before if you have a minimum shelf life. 0 sells until the date on the tin. A lot inside this window is held automatically.
  5. Click Save.

To change one product, open the Stock page, click the product, then click Lots settings. Choose Use shop setting, Always track or Do not track (good for teaware and gift cards). You can also enter an optional Cost price there, which is used to show the value of stock about to expire.

Once lots are on, the editor menu gains Expiring soon and Recall lookup beside Orders and Stock.

The Stock page

Stock lists one row per product and variant:

  • On hand is everything on your shelf, including units that are held.
  • Committed is what is in orders you have not yet shipped or collected.
  • Available is what your site can still sell. Held units and units past their best-before are never counted here.
  • Lots is how many lots still have units.
  • Next best-before turns amber inside your warning window and red once it has passed.

Use the tabs to show only products with a lot expiring in 30, 60 or 90 days, or past its date. Click a row to open that product's lots.

If you have just switched lots on, products that already had stock show a banner saying how many have stock with no lot number. They keep selling as before.

Receive stock

  1. On Stock, click Receive stock. A panel opens on the right.
  2. Choose the Product.
  3. For each lot on the delivery, type the Lot number exactly as printed on the carton, the Best-before date and the Quantity. Click Add another lot for a second lot.
  4. Add the Supplier and a Note if you like.
  5. Click Receive, or Receive and add another to carry on with the next product on the same delivery. The supplier and note stay filled in.

The panel checks each row as you type:

  • A best-before date that has already passed is refused. Check the label, or write the stock off if it arrived like that.
  • A short date, inside your warning window, is allowed. The lot goes straight onto Expiring soon.
  • A lot number that is already in stock is allowed. The units are added to that lot and it keeps its first best-before date. If the date on the label is different, give it its own lot number.

If the product already had stock before you switched lots on, the panel offers These units are already counted. Leave it ticked to give those units their lot numbers without adding to your count.

Receiving the same delivery twice by mistake does not count it twice.

One product's lots

Open a product from Stock to see its numbers, every lot in the order it will be picked, and a history of what happened, with who and when. Export CSV downloads the history.

Click the ... menu on a lot:

  • Hold this lot stops it being sold, for example during a quality check. It stays on the shelf, is skipped when you pick, and is not counted in Available. Start selling again puts it back.
  • Correct count sets the lot to what you counted after a stock-take.
  • Write off takes units out. Choose a reason (Damaged, Past best-before, Sample or Other) and add a note if you like. Written-off units leave On hand and stay in the history for your accounts.
  • Recall lookup for this lot opens the recall search for it.

A lot past its best-before is held for you automatically and can only be written off or looked up.

Picking an order

Open an order that is waiting to be packed. A Pick from block says which lot to take for each line, earliest best-before first. If one lot runs short, the line is split across two. Held lots and lots past their date are never suggested, and the block says when it has passed one over.

  • Change lot lets you take a later lot, for example when the buyer asked for a longer date. Choose the lot and a reason. The change is added to the order's timeline.
  • Print pick list opens a page you can print for the packer. Press Ctrl+P (Cmd+P on a Mac) if it does not open the print window by itself.

When you click Mark as collected or Mark as shipped, the lots are written onto the order and taken off the shelf. Buyers can still check out whatever your lots look like: picking the oldest first is an instruction for you when you pack, not a rule at checkout.

Test orders get a pick list and have lots written on them, marked TEST, but no stock moves. That lets you try the whole flow with Stripe test cards.

Returns

When you refund an item that has already been shipped or collected, it does not go straight back on sale, because a date matters more than a quick restock. The order shows a notice asking which lot the item came from. Check the best-before on the tin, choose the lot and click Put back, or click Write off if it cannot be sold. Until you choose, it is not counted in Available. The same notice shows on the product's lots page. An item from an order you had not yet shipped goes straight back to Available.

Expiring soon

Expiring soon groups lots by how close the date is: past, within 30 days, 31 to 60 days and 61 to 90 days. At the top it says how many lots and units expire inside your warning window and what they are worth at cost. Lots with no cost price show Not set. Click Hold or Write off on a row, or Export CSV for a file with the same columns as the page.

Recall lookup

Type a lot number and click Look up. You see the lot (product, when it was received, its best-before date, and what happened to it: sold, returned, written off, left) and every order that took units from it, with the buyer, date and quantity. Orders that are packed but not shipped yet are mentioned as set aside from the lot. Export CSV gives you a file to send to your supplier or the authorities.

Lots are recorded on an order when you mark it shipped or collected, so a recall covers orders from the day you switched lots on.

Common questions

Will buyers be stopped from ordering if a lot is held? No. Held and expired units are simply left out of what your site can sell. If everything left is held, the product shows as sold out.

What if two orders need the last units of the same lot? The orders are planned in order number order, so the older order gets them and the next order is shown the next lot.

Does it change my product page? No. Buyers never see lot numbers or best-before dates on your site.

More in this topic

Back to Help centre

Still stuck?

Write to us and a person replies.

Email [email protected]