Food store inventory is harder than regular retail — your dead stock does not just sit on a shelf, it expires and goes in the bin. This guide covers the practical side: FIFO vs FEFO, seasonal demand forecasting, reorder points for perishable products, and how to clear slow-moving stock before it becomes a write-off.
Shopify works well for food stores. The platform handles product variants — flavours, sizes, pack quantities — subscription integrations, and local delivery. Thousands of food businesses from artisan jam makers to specialty coffee roasters to hot sauce brands run successfully on Shopify.
But the inventory management problem for food stores is genuinely different from clothing or electronics. The same tools and the same mental models do not transfer directly. This guide focuses specifically on what changes when your products have a shelf life.
These problems exist in every retail category — but in food stores, each one carries a harder consequence.
Dead stock in a regular store costs you cash. Dead stock in a food store costs you cash AND goes in the bin. A product sitting unsold past its best-before date is a total loss — you cannot discount your way out of expired food.
A jar of hot sauce normally sells 5 units a week. Three weeks before Christmas it sells 40. Regular retailers deal with seasonal spikes. Food retailers deal with seasonal spikes on products with a shelf life — meaning you need to order more but cannot carry too much safety stock.
If your supplier takes 7 days and your product has a 21-day shelf life, the math gets uncomfortable fast. Reorder too early and stock expires in your warehouse. Reorder too late and you stock out. The margin for error is smaller than any other product category.
A sauce comes in original, hot, and extra hot. In 250ml, 500ml, and 1L. Each variant has its own velocity, its own shelf life, and its own supplier lead time. Managing 1 product is actually managing 9 separate inventory decisions.
Running out of a Christmas cake on December 23 is not the same as running out in September. Food stockouts during gifting seasons, holidays, and special occasions carry disproportionate revenue loss — and the customer you lose might not come back.
Most retail inventory guides recommend FIFO — First In, First Out. Sell the oldest stock before newer stock. This makes sense for fashion and electronics, where older items become less desirable over time.
Food stores need FEFO — First Expired, First Out. Sell the stock closest to its best-before date first, regardless of when it arrived. Why? Because a batch of jam received last week might expire before a batch received two months ago if your supplier changed their production schedule.
Food demand is seasonal in ways most other retail categories are not. Christmas, Valentine's Day, Easter, Halloween, and summer BBQ season all drive different products to spike and others to slow. Planning for these is the difference between selling out of your Christmas hamper products on December 10 and watching unsold Easter chocolate go past its best-before date in May.
The forecasting principle for seasonal food: calculate a seasonal index for each major product from prior year sales, then multiply your base order quantity by that index when placing orders ahead of each season. Full methodology in our Shopify inventory forecasting guide.
The standard reorder point formula works for food stores with one important modification: your maximum order quantity is capped by shelf life. You cannot carry more safety stock than you can sell before it expires.
Units sold in last 30 days divided by 30. For a seasonal product, use the last 14 days weighted more heavily if you are approaching a seasonal peak.
Daily velocity = Units sold (30 days) ÷ 30Your usable lead time is the number of days between placing an order and stock arriving on your shelf ready to sell. For food stores, also subtract any buffer for quality checks on arrival.
Usable lead time = Supplier lead time + receiving daysFor perishable products, your maximum order quantity is capped by shelf life. You cannot order more units than you can sell before expiry. This caps your safety stock and order quantity.
Max order qty = Daily velocity × (Shelf life days - Lead time days)The stock level at which you place a new order. For food stores this needs to account for both running out and receiving stock that arrives too close to its best-before date.
Reorder point = (Daily velocity × Lead time) + Safety stockFor a full walkthrough of reorder point calculation including safety stock buffers, see our reorder point guide for Shopify stores.
In a regular store, dead stock is cash tied up on a shelf. In a food store, dead stock has a deadline — after which it is cash tied up on a shelf that you now have to throw away.
The key is catching slow-moving products early enough to act. A product that has not sold in 30 days is a warning. At 45 days it is urgent. At 60 days you are running out of time to recover any value from it.
A targeted email to past buyers of the product with a 30-40% discount. Subject line: "Stock clearance — ends Friday." Works well for loyal customers who already know the product.
Pair the slow product with your bestselling item at a bundle price. The bestseller drives the purchase, the slow product clears. Works especially well for complementary flavours or related products.
If a product has not moved in 30 days, halve your next order quantity or skip a cycle entirely. The worst thing you can do is reorder a product that is already moving slowly — you will double the problem.
If a seasonal product consistently leaves unsold stock, remove it from your range before the following season. Better to miss a few sales than to write off expired inventory every year.
For a full breakdown of dead stock recovery strategies ranked by cash recovery speed, see our guide to finding and fixing dead stock on Shopify.
Most food stores need two categories of tool, not one. They solve different problems and work best together.
It depends on what you need. For demand forecasting, reorder points, and identifying slow-moving products before they expire, Debnix at $21.99/month gives you AI predictions and dead stock alerts. For batch-level expiry date tracking and lot numbers, Freshly is designed specifically for that. Many food stores benefit from running both: Debnix for demand planning and Freshly for batch-level traceability.
Shopify does not have built-in expiry date or best-before tracking. It tracks stock quantities but not when those units expire. For expiry date management, you need a third-party app like Freshly, which tracks inventory by batch and lot with associated expiry dates. Shopify does handle FIFO stock rotation at the warehouse level if you label stock clearly.
Calculate a seasonal index for each product using prior year sales data: divide each month's sales by your annual monthly average. A month that sold 3x your average has an index of 3.0. Multiply your base order quantity by this index when planning seasonal orders. For new products without prior year data, apply the seasonal index of a similar product from your range.
FIFO means First In, First Out — selling your oldest stock before newer stock. FEFO means First Expired, First Out — selling the stock closest to its best-before date first, regardless of when it arrived. For most food stores, FEFO is the right approach because a batch received later might have a shorter shelf life than an older batch. In practice, this means clear date labelling on every unit and warehouse organisation that physically puts older/sooner-expiring stock at the front.
Safety stock for food stores is constrained by shelf life. The standard formula is: Safety Stock = Average Daily Sales × (Maximum Lead Time - Average Lead Time). However for perishable products, cap your safety stock at the number of units you can sell in the time remaining after stock arrives. Carrying more safety stock than you can sell before expiry creates waste rather than preventing stockouts.
Calculate your Christmas seasonal index from prior year December data. Place your Christmas order no later than mid-October to account for supplier lead times and shipping delays that are common in Q4. Run a parallel check in late November to see if demand is tracking above or below your forecast — and adjust with a top-up order if you are selling faster than expected. Never rely on being able to reorder in December for a Christmas-critical product.
Debnix connects to your Shopify store and tells you exactly which products are running low, which are moving slower than expected, and when to place your next order. $21.99/mo, 30-day free trial.
Built solo.