Product Expiry Date Management for Shopify
In this guide
- Quick answer
- Why expiry date tracking matters more than most Shopify merchants think
- The five core jobs of good shelf life management
- What “good” product expiry date management looks like on Shopify
- Where merchants usually break the process
- Importing makes shelf life management harder
- Tariffs matter too, even when the product itself does not spoil quickly
- Best before, expiration date, and durable life are not the same thing
- How to build a Shopify expiry workflow that actually works
- Where ShelfLife fits
- FAQ
- Final takeaway
- CTA
If you sell products with a limited shelf life, expiry date management is not a side task. It is part inventory control, part customer protection, part margin protection, and part compliance.
That is especially true on Shopify, where many merchants still try to manage expiry dates with a product note, a spreadsheet, or somebody's memory.
That works, until it really doesn't.
A single batch received late, stored incorrectly, mis-labeled, or oversold past its useful window can create a nasty chain reaction: write-offs, refunds, support tickets, chargebacks, reputation damage, and in regulated categories, a real safety or compliance problem.
The good news is that product expiry date management on Shopify is fixable. You do not need a giant ERP to get the basics right. You do need a system.
This guide walks through what good shelf life management actually looks like for Shopify merchants, where most stores go wrong, and how to build a workflow around batch tracking, FEFO, expiry alerts, markdown timing, and import-aware inventory planning.
Sources: FDA Traceability Lot Code, CFIA traceability requirements, CBSA Customs Notice 24-03.
Quick answer
Product expiry date management for Shopify means tracking inventory by batch or lot, recording expiry or best-before windows, selling the oldest viable stock first, and acting early enough to prevent waste, recalls, and margin loss.
If you import food, supplements, cosmetics, or other shelf-life-sensitive products, the job is even bigger than date tracking alone. Border requirements, tariff classification, licensing, and shipping delays can reduce the sellable window before stock ever reaches your warehouse.
Why expiry date tracking matters more than most Shopify merchants think
Many merchants think expiry management is only for obvious categories like food or vitamins.
That is too narrow.
Expiry date tracking matters anywhere product value changes over time, including:
- food and beverage
- supplements and nutraceuticals
- cosmetics and skincare
- pet food and treats
- health products
- seasonal bundles with date-sensitive components
- wholesale or B2B inventory sold in lots or cases
- imported goods with shorter remaining shelf life after transit and customs clearance
In practice, the problem is not just “does this item expire?”
It is:
- how much time is left when it arrives
- which lot should ship first
- whether a delayed inbound shipment destroys your planned margin
- whether you can identify affected units fast during a complaint or recall
- whether you can discount at the right time instead of panicking too late
That is why the best operators stop treating expiry as a label issue and start treating it as an inventory system.
The five core jobs of good shelf life management
A strong Shopify expiry process usually does five things well.
1. It tracks by batch or lot, not just by SKU
A SKU tells you what the product is.
A batch or lot tells you which instance of that product you are holding.
That distinction matters because one SKU can exist in multiple batches with different:
- manufacture dates
- expiry dates
- suppliers
- landed costs
- recall risk
- storage history
If your store only tracks quantity at the SKU level, you can know you have 500 units and still have no idea which 120 need to move first.
For food traceability, regulators already think in these terms. FDA's Food Traceability Rule requires records around critical tracking events and key data elements for certain foods, and FDA describes the traceability lot code as a unique identifier used to track a lot through the supply chain. CFIA and Canada's Safe Food for Canadians framework likewise emphasize lot codes and traceability to the immediate supplier and immediate customer.
That does not mean every Shopify merchant is directly subject to every one of those recordkeeping rules. It does mean the regulatory direction is very clear: lot-level visibility is the serious standard.
2. It uses FEFO instead of naive FIFO
FIFO, first in first out, is better than random picking. But expiry-sensitive inventory often needs FEFO, first expired first out, or more accurately, first to expire, first out.
Why? Because the first batch received is not always the first batch that should ship.
A later-received lot may still have an earlier expiry date because of:
- supplier-side aging before shipment
- customs delay
- longer transit time
- warehouse transfer delay
- relabeling or repacking
If your team picks by received date instead of expiry priority, you can end up shipping fresher stock after older stock, quietly creating waste behind the scenes.
3. It creates alerts before the problem becomes expensive
Expiry management fails when the first alert happens after the inventory is already hard to sell.
Good systems trigger action windows such as:
- 120 days before expiry, review velocity
- 90 days before expiry, decide standard sell-through plan
- 60 days before expiry, launch promotion or bundle strategy
- 30 days before expiry, restrict channels or apply aggressive markdowns
- 14 days before expiry, hold, donate, liquidate, or remove from sale depending on category
The exact timing depends on the product. But the principle is simple: your system should give you time to make a business decision while there is still room to act.
4. It supports recall readiness
If a customer complaint or supplier issue hits one lot, you should be able to answer three questions quickly:
- which batch was affected
- where those units went
- what unaffected stock can remain on sale
CFIA explicitly notes that lot codes help rapidly identify affected food and remove it from the marketplace while avoiding unnecessary over-recall. FDA makes the same basic point in its traceability materials: faster linkage across the supply chain helps identify source and scope sooner.
Even outside heavily regulated food categories, this is just good operations. Over-broad recalls are expensive. Under-broad recalls are dangerous.
5. It connects expiry to pricing and purchasing
Expiry data is not just a warehouse field. It should shape:
- reorder timing
- minimum order quantities
- inbound purchase decisions
- bundle strategy
- promotional timing
- wholesale allocation
- markdown thresholds
This is where many merchants leave money on the table. They track dates, but they do not change decisions soon enough.
What “good” product expiry date management looks like on Shopify
On Shopify, a practical expiry workflow usually looks like this:
- Receive stock by batch or lot.
- Record lot code, received date, and expiry or best-before date.
- Associate quantities with each lot, not only with the parent SKU.
- Prioritize fulfillment from the earliest viable lot.
- Trigger alerts as batches approach risk windows.
- Launch markdowns, bundles, or channel restrictions before the stock becomes unsellable.
- Preserve enough traceability to support customer service, quality review, and recalls.
That is the operational core.
The exact implementation can vary. Some merchants use a dedicated expiry app. Some use warehouse software. Some use a hybrid stack. But if those seven things are not happening, the business is still relying on luck.
Where merchants usually break the process
Here are the most common failure patterns.
Spreadsheet dependency
The spreadsheet starts as a backup. Then it becomes the real system. Then one person forgets to update it.
Now the warehouse, support team, and purchasing team are all making decisions from different truths.
No lot-level receiving
If batches are blended into one quantity bucket the moment they arrive, downstream control is already lost.
Static product-level expiry fields
One expiry date stored at the product level is not enough when the same SKU exists in multiple lots.
Manual picking rules
If pick/pack staff need to remember which bin or lot should move first, errors are inevitable.
No markdown workflow
Merchants often know stock is aging but have no preplanned response. So the response comes late, under pressure, and often with worse margin damage than necessary.
No import-aware buffer
Source: CBSA Customs Notice 24-03.
This one is easy to miss. A merchant buys goods with a nominal twelve-month shelf life, but by the time manufacturing, ocean freight, customs clearance, inland transfer, and receiving are done, the store may only control nine or ten useful months. Sometimes less.
That is not a date-label problem. That is a planning problem.
Importing makes shelf life management harder
Sources: CBP Determining Duty Rates, CBSA Customs Notice 24-03, WTO SPS overview.
This is where product expiry date management starts to overlap with customs, tariffs, and border compliance.
If you import shelf-life-sensitive goods, the “real” shelf life available for sale depends on more than the printed date.
It depends on how long the product spends in:
- supplier production queues
- export staging
- international transit
- customs processing
- inspection or document correction
- domestic transfer
- receiving backlog
For U.S. importers, USITC's tariff guidance is a reminder that classification is not just a search-box exercise. The Harmonized Tariff Schedule is a legal framework, and importers often need to read notes and apply the correct classification logic instead of relying on common product names alone. CBP then administers those classifications at the border. If goods are misclassified, under-documented, or tied to the wrong compliance assumptions, delay risk increases.
For Canadian importers, CBSA's 2024 notice on Safe Food for Canadians licence verification makes the consequence even more concrete: importers who do not declare a valid required licence may have shipments delayed or refused entry. If you sell date-sensitive food products, that is not just an administrative annoyance. It can erase sellable shelf life before the customer ever sees the product.
WTO's SPS framework also matters conceptually here. Countries can apply food safety and plant/animal health measures, but those measures must be science-based and necessary for protection. For merchants, the operational takeaway is simple: cross-border movement of food and related products is governed by real safety rules, not just shipping optimism.
Tariffs matter too, even when the product itself does not spoil quickly
Source: Tax Foundation, What Are Tariffs?.
At first glance tariffs sound unrelated to expiry date tracking.
They are not.
Tax Foundation summarizes the basic point clearly: tariffs are taxes on imported goods, and those costs often flow through businesses and consumers. If you import products with a limited commercial window, tariffs can shrink your flexibility in at least three ways:
- you may order larger batches to offset unit economics, increasing expiry risk
- you may delay markdown decisions because margin is already thinner
- you may hold aging stock longer because replacing it is more expensive
In other words, poor landed-cost visibility can make expiry problems worse.
That is why merchants selling imported goods should not manage shelf life in isolation from duty and landed-cost planning. If your replenishment math ignores duties, surtaxes, customs brokerage, and clearance timing, you can end up overbuying the exact inventory that is hardest to rescue later.
Best before, expiration date, and durable life are not the same thing
This distinction matters because merchants often use the wrong label language internally.
CFIA explains that foods with a durable life of 90 days or less generally require date markings and, where needed, storage instructions. It also distinguishes durable life or “best before” concepts from true expiration-date requirements, which apply in narrower cases.
FDA similarly supports more consistent date labeling language for quality-related dates and warns consumers not to interpret every date the same way.
For Shopify merchants, the practical lesson is this:
- not every date means the same thing legally
- not every category uses “expiration” the same way operationally
- your internal system should store the actual relevant field, not just a generic date label
For example, you may need to distinguish among:
- expiry date
- best-before date
- use-by date
- packaged-on date
- manufacture date
- minimum remaining shelf life at receipt
A strong system can support that nuance. A weak one collapses everything into one date field and forces the team to guess.
How to build a Shopify expiry workflow that actually works
Step 1: Decide what you need to track at lot level
At minimum, track:
- SKU
- lot or batch code
- quantity in that lot
- received date
- expiry or best-before date
- supplier
- storage requirement if relevant
- status, such as active, hold, recall, markdown, or blocked
If you import, also consider storing:
- country of origin
- customs classification reference
- broker or entry reference
- landed cost by batch
- days consumed in transit before receipt
Step 2: Define sell-through windows
Do not wait until stock is “almost expired.” Define operational windows in advance.
For example:
- green: more than 120 days remaining
- yellow: 61 to 120 days remaining
- orange: 31 to 60 days remaining
- red: 30 days or less remaining
Those bands should connect to rules, not just colors.
Step 3: Make FEFO the default fulfillment logic
If your team must manually remember which lot goes first, you do not really have FEFO.
The system should surface the right batch by default and flag exceptions clearly.
Step 4: Plan markdowns before panic begins
Aging stock usually has more value 60 days before expiry than 7 days before expiry.
Possible interventions include:
- bundle offers
- quantity discounts
- subscription push
- wholesale channel allocation
- limited-time markdowns
- region-specific sell-through campaigns
The key is timing. The earlier you act, the more options you preserve.
Step 5: Add a hold and recall workflow
If a lot is under review, it should be possible to stop selling that lot without freezing the entire SKU if unaffected stock exists.
That protects revenue and reduces confusion.
Step 6: Measure waste and rescue rate
Source: FDA, How to Cut Food Waste and Maintain Food Safety.
If you do not measure expiry loss, you cannot improve it.
Track:
- units written off by lot
- value written off
- units rescued via markdowns or bundles
- average days remaining at sale
- stock received below your minimum acceptable shelf-life threshold
That last metric is especially revealing. It often exposes upstream supplier or import problems faster than anecdotal complaints do.
Where ShelfLife fits
For merchants dealing with batch tracking, FEFO, expiry alerts, and aging-stock decisions inside Shopify, this is exactly the class of problem ShelfLife is built around.
The point is not to create more admin work. It is to make the right inventory visible early enough that the team can reduce waste, protect customers, and move product before margin disappears.
The strongest category language in this space is not vague “expiry management.” It is operational language merchants actually use: batch tracking, FEFO, expiry alerts, recall readiness, and waste reduction.
That is the lens that tends to matter in the real world.
FAQ
1. What is the difference between expiry date tracking and regular inventory tracking on Shopify?
Regular inventory tracking tells you how many units you have. Expiry date tracking tells you which batches you have, when they become risky, and which ones should move first. That extra layer is what enables FEFO, targeted recalls, and planned markdowns.
2. Do all Shopify merchants need lot or batch tracking?
No. But any merchant selling products with limited shelf life, quality degradation over time, or recall exposure should strongly consider it. The closer you are to food, supplements, cosmetics, or regulated consumables, the more important lot-level control becomes.
3. Is FIFO good enough for expiry-sensitive products?
Sometimes, but not reliably. FEFO is usually better because the lot that arrived first is not always the lot that expires first. Transit time, customs delay, storage conditions, and supplier aging can change the priority.
4. Can customs delays really create expiry problems?
Yes. For imported products, every extra day in transit, clearance, or receiving reduces the remaining sellable window. CBSA explicitly warns that missing required food import licence data can lead to delay or refusal. Even when goods are eventually released, that lost time still matters.
5. Why should tariff data matter for shelf life management?
Source: Tax Foundation, What Are Tariffs?
Because tariffs change purchasing behavior. When imported stock becomes more expensive, merchants may over-order to protect unit economics or hesitate to markdown aging stock. That increases expiry risk. Shelf life planning and landed-cost planning belong in the same conversation.
6. What should I store for each batch or lot?
At minimum: SKU, lot code, quantity, received date, expiry or best-before date, supplier, and status. Import-heavy businesses should also consider country of origin, landed cost, and customs references.
7. What is a traceability lot code?
FDA describes a traceability lot code as a unique identifier used to identify a traceability lot within the assigning firm's records. In practice, it is the batch identity that lets you connect receiving, transformation, shipping, and recall activity across the supply chain.
8. How early should I start markdowns on aging inventory?
Earlier than most merchants think. The right timing depends on category and sales velocity, but many teams should begin intervention when there is still enough shelf life left for the customer to feel comfortable buying. If you wait until the stock is obviously old, your options narrow fast.
Final takeaway
Product expiry date management for Shopify is not just about keeping an “expiry date” field somewhere in the system.
It is about controlling time-sensitive inventory as it moves from supplier to warehouse to customer.
The merchants who do this well usually share the same traits:
- they receive inventory by lot
- they prioritize FEFO
- they set intervention windows early
- they keep recall-ready traceability
- they connect expiry risk to purchasing, pricing, and importing decisions
That is the real standard.
And if you import shelf-life-sensitive products, it is worth remembering that expiry risk starts before the goods reach your warehouse. Classification, licensing, duties, and border timing all influence how much commercial life you actually have left to sell.
CTA
If you sell imported products, do not manage expiry risk without understanding duty and landed-cost pressure too.
Use the TariffShield duty calculator to estimate landed cost more clearly before you overbuy slow-moving stock, and pair that with a proper ShelfLife-style workflow for batch tracking, FEFO, expiry alerts, and markdown timing.
Better landed-cost planning upstream makes better expiry management downstream.
Sources
- U.S. Food and Drug Administration, FSMA Final Rule on Requirements for Additional Traceability Records for Certain Foods: https://www.fda.gov/food/food-safety-modernization-act-fsma/fsma-final-rule-requirements-additional-traceability-records-certain-foods
- U.S. Food and Drug Administration, Traceability Lot Code: https://www.fda.gov/food/food-safety-modernization-act-fsma/traceability-lot-code
- U.S. Food and Drug Administration, How to Cut Food Waste and Maintain Food Safety: https://www.fda.gov/food/consumers/how-cut-food-waste-and-maintain-food-safety
- Canadian Food Inspection Agency, Date markings and storage instructions on food labels: https://inspection.canada.ca/en/food-labels/labelling/industry/date-markings-and-storage-instructions
- Canadian Food Inspection Agency, What to consider when selecting a lot code to meet traceability requirements under the Safe Food for Canadians Regulations: https://inspection.canada.ca/en/food-safety-industry/traceability/lot-code
- Canadian Food Inspection Agency, Regulatory requirements: Traceability for food: https://inspection.canada.ca/en/food-safety-industry/traceability/traceability
- Canada Border Services Agency, Customs Notice 24-03: Safe Food for Canadians (SFC) licence to import food to Canada: https://www.cbsa-asfc.gc.ca/publications/cn-ad/cn24-03-eng.html
- U.S. Customs and Border Protection, Determining Duty Rates: https://www.cbp.gov/trade/programs-administration/determining-duty-rates
- U.S. Customs and Border Protection, How to Use the Automated Commercial Environment (ACE): https://www.cbp.gov/trade/automated/how-to-use-ace
- World Trade Organization, Understanding the Sanitary and Phytosanitary Measures Agreement: https://www.wto.org/english/tratop_e/sps_e/spsund_e.htm
- Tax Foundation, What Are Tariffs?: https://taxfoundation.org/taxedu/glossary/tariffs/
Disclaimer
This article is for general educational information only and does not constitute legal, customs, regulatory, food-safety, tax, or professional compliance advice. Requirements vary by product category, country, labeling regime, storage condition, and supply-chain role. If you sell regulated goods or import shelf-life-sensitive products, verify your obligations with qualified legal, customs, regulatory, and food-safety professionals before acting.