Track expiry dates on Shopify inventory, batch by batch

Shopify has no native field for a best-before or expiry date — it tracks one pooled quantity per product per location, nothing more. Smart Restock adds expiry-date tracking on top: every batch of stock you receive can carry its own best-before date, captured straight from the supplier invoice or set by hand, so you always know what's aging out before it becomes dead stock.

Start Free Trial — 14-day free trial on Starter plan, no credit card required.

What Shopify tracks — and what it doesn't

Shopify's inventory model is one number: available quantity per variant per location. It has no concept of a lot, a batch, or a best-before date — every unit of a SKU looks identical to Shopify, whether it arrived yesterday or three months ago. For dry goods that's fine. For anything with a shelf life, it means the app has no way to tell you what's about to go bad.

Smart Restock's expiry dashboard fills that gap without leaving Shopify. It sits alongside the invoice import and inventory tools you're already using, adding a batch ledger that tracks expiry dates Shopify itself can't.

How expiry dates get onto a batch

When a supplier invoice includes a best-before or expiry date on a line item, Smart Restock reads it during import and stamps it on the batch automatically — no separate data entry. If the invoice doesn't include a date, or you're correcting one, set or edit it directly on the expiry dashboard by product or SKU.

Stock that arrives without an attributable batch — a delivery Smart Restock can't match to a specific invoice — is flagged as unassigned so you can assign a date to it later. Nothing is silently dropped or guessed at.

The expiry dashboard: what you actually see

Every tracked batch shows its expiry date, days remaining (colour-coded: expired, expiring soon, on track), remaining quantity, and dollar value at risk if it isn't sold or marked down in time. Filter by status — active or expired — or by a days-to-expiry window (2, 7, 14, or 30 days) to see what needs attention today versus what's fine for now.

Search by product name or SKU to jump straight to a specific item, and every result is scoped per Shopify location — the same SKU at two warehouses shows two separate expiry pictures.

Related pages

Expiry tracking is one piece of perishable inventory management in Smart Restock — see how it connects to batch and lot tracking (FEFO) and automatic markdown of expiring stock. It also pairs with low stock alerts and multi-location inventory tracking.

Frequently asked questions

Does Shopify track expiry dates natively?

No. Shopify's inventory system tracks one available quantity per variant per location — no batch, lot, or date fields. Smart Restock adds an expiry-tracking layer on top without replacing your Shopify catalog.

How does Smart Restock get expiry dates onto my inventory?

Automatically from the supplier invoice, when the invoice includes a best-before or expiry date, or manually from the expiry dashboard for any batch.

Can I track expiry dates separately at each of my Shopify locations?

Yes. Every tracked batch is tied to a specific Shopify location, so the same SKU can show a different expiry picture across your warehouse, retail store, or 3PL.

What happens once I'm tracking expiry dates?

Tracked batches feed two things automatically: FEFO depletion, so the soonest-expiring stock sells first, and, if you set them up, tiered markdown rules that discount a variant as its expiring stock nears the date.

Is this a separate app from Smart Restock's invoice import?

No — it's the same app and the same batch data. Expiry tracking uses the invoice you already imported for inventory and weighted-average cost; there's nothing extra to install or connect.