Blog
Notes on inventory freshness
Occasional writing on expiry dates, FEFO, and the unglamorous mechanics of keeping stock true.
15 October 2026
Batches without an expiry date: one product, two kinds of stock
A merchant with olive oil on one shelf and the bowls it is served in on the next asked to control the batches of both. A batch now needs a quantity and either an expiry date or a lot code; what that changes, what it leaves as it was, and why one of the two is still required.
Read →5 October 2026
Expired stock in Shopify: write the batch off, and the inventory follows
An expired batch is a number Shopify is still counting. One press zeroes the batch and takes the same units out of Shopify's inventory, with a reason in the inventory history, and puts them back if you were wrong.
Read →1 October 2026
Automatic markdowns for short-dated stock: discount the batch, not the product
Why a product-level discount is the wrong tool for a batch-level problem, what a markdown that follows the batch looks like, what the shopper sees, and how to tell whether it paid.
Read →25 September 2026
Batch expiry dates in Shopify: one product, many dates
A product does not have an expiry date; a batch does. The five fields a batch record needs, how batches meet orders and refunds, and how to get the dates in in an afternoon.
Read →24 September 2026
How to track expiry dates in Shopify (2026)
Shopify has no expiry field. The three ways merchants track dates today, what separates the one that survives a busy week, and how to set it up in an afternoon.
Read →24 September 2026
FEFO vs FIFO: which rotation your store actually needs
First in, first out ships stock in arrival order; first expired, first out ships it by date. When the two disagree, and what FEFO needs from your software.
Read →27 August 2026
Why expiry dates are inventory's blind spot
Your platform knows how many units you have. It has no idea how many are still sellable next month — and that gap has a monthly cost most merchants only see at stocktake.
Read →