FIFO (first in, first out) ships the oldest received stock first. FEFO (first expiry, first out) ships the stock that expires first, whenever it arrived.
When FIFO is enough
If your products don't expire (electronics, apparel, toys), FIFO keeps stock rotating and stops old inventory gathering dust.
When you need FEFO
Food, pharma, cosmetics and FMCG: anything with a best-before date. Suppliers don't always deliver in expiry order, so a batch received later can expire sooner, and FIFO would ship the wrong one.
Add an outbound tolerance
Customers and marketplaces often reject goods close to expiry. An outbound tolerance (say 30 days) tells the system to skip lots that expire inside that window, even if they're the earliest.
Flag expired stock automatically
Expired lots should never be pickable. Mark them as dead stock automatically and move them to a write-off flow.
How Waretech does it
Expiry is captured at goods inward as an attribute of the lot. Picklists use FEFO with your tolerance, and fall back to FIFO when a product has no expiry. Expired lots are flagged dead automatically. Watch the FEFO explainer.