PrestaShop Tutorials

The FEFO Method on PrestaShop: Shipping What Expires First

In food, cosmetics and pharmacy, two units of the same product are not interchangeable: one expires in three weeks, the other in eight months. Shipping the second while keeping the first produces a certain loss.

That is what the FEFO method corrects.

FIFO and FEFO: the difference

FIFO ships what came in first. It rests on the assumption that the order of arrival matches the order of expiry.

FEFO ships what expires first, whatever the order of arrival.

The two rules give the same result when deliveries follow one another with regular dates. They diverge as soon as a delivery arrives with shorter dates than the existing stock, which happens often.

Three situations produce that divergence.

A supplier clearance, where you receive short-dated batches at a reduced price.

Slow rotation on a reference, where an older long-dated batch coexists with a recent short-dated one.

A return put back into stock, whose date is the original one and not the date it came back.

In all three cases FIFO ships the wrong batch and the write-off is mechanical.

What FEFO assumes

The method only works if you know the expiry date of every unit in stock. That requires batch management.

Three elements per batch.

An identifier, usually the supplier batch number.

The limit date, whether it is a use-by date or a best-before date.

The remaining quantity, decremented on every shipment.

The stock of a product therefore becomes the sum of the quantities of its batches, not a single number.

That change of model is the structural one. It has consequences on receiving, on picking, on stocktakes and on returns.

The allocation rule

The central question: which batch to allocate to an order?

The base rule is simple: the batch with the nearest date, among those still sellable.

Three refinements needed in practice.

The sellability threshold. A product whose date falls in four days must not leave for a customer who will receive it in three. Define a minimum remaining shelf life at shipping, by product family.

Splitting. An order for ten units may need two batches if the first only holds six. That is acceptable, and the picking list must say so.

Allocation at picking time, not at order time. Between the two, stock may have moved. Reserving a specific batch to an order creates needless blocking.

Expiry Date & Batch Manager: Lots, FEFO and Use-By DatesOne lot, one date, one cost, a correct stock deduction: use-by and best-before dates handled inside PrestaShop.€99.00

Remaining shelf life

A commercial point as much as a logistics one, and it deserves to be set explicitly.

How long should the customer have the product for on receipt? The answer varies with the nature of the product and the channel.

On short-dated fresh goods, a few days are enough but transit must be fast.

On ambient groceries, one third of total shelf life is a common benchmark.

In B2B, the remaining life is often contractual: the reseller customer demands a minimum, because they have to move the goods themselves.

Two consequences. A batch that falls below that threshold is no longer sellable at the normal price: it has to be cleared, discounted or withdrawn. And that switch must be automatic and flagged, not discovered during picking.

What changes at receiving

FEFO starts at receiving, and that is where the errors are created.

Four points.

The date is entered on receipt, not later. A batch entered without a date is unusable and you will have to find it physically.

The consistency check: a batch whose date is shorter than that of existing stock must raise an alert, because it reverses your picking order.

The option to refuse. If your supplier systematically delivers short dates, that is a matter for negotiation, and your purchasing terms can set a minimum remaining life on delivery.

The physical location. FEFO in the software is worthless if the picker takes the box on top. Warehouse organisation must make the right batch reachable first.

That last point is the one that makes implementations fail. The software names the batch, the picker takes the other one, and the gap accumulates.

Picking

Three elements on the picking list.

The batch number to pick, explicitly, not just the product reference.

The matching location, if your warehouse manages them.

The split, when one line needs several batches, with the quantity per batch.

Add a confirmation of the batch picked by the operator, ideally by scanning. That is what guarantees the recorded traceability matches reality, and it is essential in a recall.

Traceability and recall

A benefit that on its own justifies batch management, independently of write-offs.

In a product recall, you must be able to identify quickly which customers received which batch. Without a link between orders and batches, the only option is to contact everyone who bought the product over a wide period.

Three capabilities to check in your setup.

Finding the orders containing a given batch.

Finding the batch shipped for a given order, when a customer calls with a number printed on their packaging.

Extracting the list of recipients of a batch, with their contact details, to organise the notification.

These three queries must be immediate. In a recall, time counts.

Display on the customer side

A question to settle: should the expiry date be announced before purchase?

On fresh goods, yes: the customer needs to know. Showing a guaranteed minimum date, rather than the exact batch date, avoids updating the product page at every batch change.

On long-life groceries, it is generally not necessary, and it can even worry people for no reason.

On short-dated clearance sales, on the other hand, the date must be shown clearly and it is what justifies the reduced price. A customer who buys a short-dated batch at a knockdown price and discovers it on receipt feels misled.

Measuring the effect

Four indicators, the first of which justifies the whole project.

The expiry write-off rate, in value and as a percentage of the category revenue. That is the before and after figure.

The average remaining shelf life at shipping, which should fall since you are moving the oldest batches out first. A drop here is a sign the system is working.

The number of batches that fell below the threshold without being sold, which identifies overstocked references.

The complaint rate for short dates on receipt, which should stay at zero.

A benchmark: on a poorly equipped food operation, expiry write-offs often represent several points of revenue. Proper FEFO management recovers a significant share of that, which makes the payback calculation fairly easy to run.

The Expiry Date and Batch Manager module for PrestaShop implements this method on PrestaShop 8 and 9: stock managed by batch with a limit date, FEFO allocation at picking time with splitting, a remaining shelf life threshold per family with an automatic alert, the batch number on the picking list and full traceability between batches and orders.

Keep reading

Related articles