Free AuditEnterprise AIShelfSense
Back to Blog
ShelfSense by ShelfLifeProSep 23, 20267 min read

Shopify Expiry Date Tracking: A Practical Guide

Shopify has no native expiry field. Here's how food, supplement and pet stores track batch expiry with a CSV, a clear process, and the right daily habit.

SE

ShelfLifePro Editorial Team

Inventory management insights for retail and pharmacy

Shopify doesn't track expiry dates — here's what to do instead

If you sell food, supplements, or pet food on Shopify, you've probably noticed the gap. There's no expiry date field. No batch number column. No alert when a product is three weeks from going bad. Shopify is a great commerce platform; it just wasn't built to track shelf life.

That gap is structural, not an oversight. Shopify's product catalog is designed around variants — size, color, flavor — not around "this batch of fish oil expires on March 14th and that one expires on April 2nd." So the store ends up managing expiry somewhere else: a spreadsheet, a sticky note on the shelf, an app bolted on top.

The problem isn't that operators don't care. It's that the workaround is invisible to the system taking orders.


Why this matters more for your verticals

Food, supplements, and pet products share a trait: the expiry date is a liability, not just a label.

For food stores, the FDA's food traceability rule (FSMA Section 204) requires lot-level records for foods on the Food Traceability List — and the deadline for covered businesses passed in January 2026. Even if your product isn't on that list, selling an expired item exposes you to consumer protection liability under state law.

For supplement stores, the FDA's Current Good Manufacturing Practice regulations (21 CFR Part 111) require that finished dietary supplements be tested and assigned an expiration date based on stability data. Retailers aren't manufacturers, but you're on the hook for what you put in front of a customer.

For pet food and treat stores, the FDA Center for Veterinary Medicine enforces labeling rules that include best-by dating. A recalled or expired product that reaches a customer creates a chargeback, a complaint, and potentially a regulatory flag — all traceable back to your store.

The risk isn't abstract. It's a batch of raw dog food that sat two weeks past its use-by date because no one flagged it.


What your Shopify data can actually tell you

Your Shopify admin has useful signals — you just have to pull them deliberately.

Sales velocity by product. Your orders export shows how fast each SKU moves. If a supplement sells say 4 units a week and you have 60 units in stock, that's 15 weeks of cover. If the batch expires in 8 weeks, you have a problem. Shopify can show you the velocity; it can't show you the expiry. That's the gap you need to fill.

Dead stock signals. Products with zero or near-zero sales in the past 30 days, combined with non-trivial inventory counts, are your highest-risk items. They're sitting, and if they have a shelf life, they're burning it.

Refund and return patterns. A spike in returns on a specific product variant can be an early signal of a quality or freshness issue. It's not proof, but it's worth cross-referencing with your batch records.

None of this replaces a batch-level expiry log. But it tells you where to look first.


The CSV method: your starting point

Since Shopify doesn't have a native expiry field, the practical starting point is a combined CSV: your Shopify inventory export, merged with your batch and expiry data from wherever you keep it.

A workable format has these columns at minimum:

  • SKU or product ID (to join to Shopify's export)
  • Batch or lot number
  • Quantity on hand for that batch
  • Expiry date
  • Supplier / PO reference

You export inventory from Shopify (Products → Export, or via the admin API), then join it to your batch sheet. The result is a single file that tells you: what I have, how much, and when it expires.

This is low-tech. It's also honest — it works on day one without installing anything, and it forces you to confront which SKUs have no expiry record at all (usually the ones that have been sitting the longest).

For a ready-to-use format, the expiry-tracking spreadsheet template gives you a structured starting point you can populate from your Shopify export.


Free download

Get the 2-page FEFO cheatsheet

The first-expired-first-out rulebook, the 30/15/7-day alert ladder, and the weekly checklist — print it and stick it on the store-room door. See what's inside.

Instant download. No spam, unsubscribe in one click.

What to do with the combined file

Once you have the merged CSV, the decision logic is straightforward. Work through it weekly, or daily for fast-moving perishables.

Flag anything expiring within your lead time. If your supplier takes 10 days to restock, anything expiring in fewer than 10 days needs action now, not a reorder.

Calculate units that won't clear. Say you have 40 units of a pet treat expiring in 21 days and your last 30-day sales were 18 units. At that rate, roughly 22 units won't sell in time. That's your markdown or return candidate — not a guess, just arithmetic.

Prioritize by money at risk. A slow-moving premium supplement with a high unit cost and a near expiry date outranks a fast-moving low-cost snack with the same days remaining. Sort by (quantity × cost) for items expiring within 30 days.

Act on the top three. Don't try to fix everything at once. Markdown the highest-risk batch, contact the supplier about a return on the second, and adjust your reorder quantity for the third. Three decisions a week, done consistently, prevent the pile-up.

The dead stock liquidation playbook covers the full range of options — markdowns, bundles, donations, returns — if you need a decision framework for what to do once you've identified the at-risk batches.


Where apps and agents fit in

There are Shopify apps that add a batch/lot field to your product records — some integrate with fulfillment workflows to pick the earliest-expiring batch first. They're worth evaluating if you have the volume to justify the setup time.

What they don't do, by default, is tell you which batches are at financial risk and what to do about them. That's a layer above inventory management.

ShelfSense's free audit reads one CSV export, no account needed. You export your merged stock-and-expiry file, upload it, and get back a ranked list of at-risk batches with the arithmetic shown — how many units won't clear, what the projected loss is, what action is recommended. It's a starting point, not a commitment.

For stores that want a daily habit rather than a one-time check, the Watch tier is free forever at 30 SKUs — a daily scan and a health report. You export from Shopify to CSV today; a direct Shopify connection is available on request. You stay in control: ShelfSense recommends, you approve.

More on how the recommendations are built: /shelfsense/how-it-thinks.


The gap between your POS and your expiry data

It's worth naming the structural issue clearly, because it affects every fix you try. Your Shopify store knows what sold. Your batch log knows what expires. Neither talks to the other automatically.

The inventory system expiry tracking gap post covers this in detail for operators running any commerce system — the core problem is the same whether you're on Shopify, a standalone POS, or an ERP.

The fix isn't a single app. It's a process: a weekly export, a joined file, a ranked list of decisions. The tools help you do that faster and more reliably. But the discipline is yours.


A simple weekly routine

Here's what a sustainable Shopify expiry process looks like without any new software:

  • Monday: Export Shopify inventory. Merge with batch log. Flag anything expiring within 30 days.
  • Tuesday: For flagged items, calculate units at risk (quantity × sell rate vs. days remaining).
  • Wednesday: Decide: markdown, bundle, return to supplier, or donate. Execute the top three.
  • Friday: Check that the actions happened. Note any batch that couldn't be returned — that's a supplier conversation for next quarter.

Four steps, one hour a week. It won't catch everything, but it will catch the expensive stuff — which is the point.

If you want to go deeper on the software options available beyond Shopify's native tools, the expiration date tracking software guide covers the landscape for US and global operators.


The expiry problem on Shopify is structural, not accidental. A CSV and a clear decision rule will take you further than most stores get. Start there, build the habit, and layer in tools when the volume justifies it.

Start the free ShelfSense audit — no account needed.

SE

ShelfLifePro Editorial Team

The ShelfLifePro editorial team covers inventory management, expiry tracking, and waste reduction for pharmacies, supermarkets, and retail businesses worldwide.

See what batch-level tracking actually looks like

ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.

Newsletter

The monthly expiry-tracking brief

One short email a month, only when there is something worth reading. FEFO tactics, markdown math, and real-world waste-reduction wins. Unsubscribe anytime.

No spam. Unsubscribe in one click.