Automation library

Automate expiry date and lot tracking, with a person on every markdown and disposal

Updated · By Ecomsellertool editorial team

Short answer

To automate expiry date and lot tracking, record the lot code and expiration date on every receipt, then let rules pick first-expired-first-out and check each lot against each channel's minimum shelf life. Lots too short for FBA stay on Shopify or wholesale, lots that cannot sell before your last-sale date alert a person, and a recall lookup lists every order a lot touched.

  • Amazon requires dated products to reach an FBA fulfillment center with enough shelf life to be used in full plus 90 days; a 240-serving supplement needs 330 days (checked October 20, 2026).
  • Amazon's category guide lists minimum days before expiry at arrival, for example 180 days for pet food and treats, 730 for herbal or mineral supplements and 900 for personal care and beauty products.
  • Amazon uses the expiration date entered in Send to Amazon as the date of record, allows one expiry date per ASIN in a box, and says lot numbers alone are insufficient on ingestibles.
  • Shopify's help page on inventory states lists on hand, available, committed, unavailable and incoming quantities and does not mention lots or expiration dates, so lot data usually lives in a 3PL, an app or an ERP.
  • In this recipe rules do the date math, the channel checks and the FEFO picks, an AI model only reads dates and lot codes from supplier paperwork, and a person decides every markdown, removal, disposal and recall.

The step map: who runs each step

Trigger: A receipt of dated goods at the warehouse, 3PL or prep center; after that, a daily check of every lot's days to expiry and sell-through, plus any recall or quality hold placed on a lot.

Each step of the workflow in order, and whether a fixed rule, an AI model or a person runs it
StepWhat happensWho runs it
1At receiving, the workflow records the lot code and expiration date for every SKU line, converts month-and-year dates to the first day of the month, and holds any line with a missing or unreadable date.Rule
2Where the supplier sends a packing list, certificate of analysis or PDF instead of structured data, an AI model reads lot codes and expiration dates into fields with a confidence score. Low-confidence reads go to the receiving lead unconfirmed.AI model
3Each lot gets its days to expiry and is checked against every channel's minimum: Amazon's shelf-life rule for FBA inbound, your wholesale buyers' minimums and your own last-sale floor for Shopify orders.Rule
4Lots that pass the FBA check are offered to the next inbound plan, longest-dated first, with the expiration date and lot code on each item and one expiry date per box. Lots that fail are blocked from FBA plans.Rule
5The 3PL picks first-expired-first-out within the lots allowed for each channel, and the workflow reconciles which lot left on each order from the 3PL's shipment data.Rule
6A daily sell-through check projects how many units of each lot will still be on hand at your last-sale date and sends lots with units at risk, with the numbers and the options, to the person who owns pricing and channels.Rule
7That person chooses a markdown, a bundle, a channel move, a removal from FBA, a donation or a disposal; lots past your floor are set to unavailable in Shopify and held at the 3PL until the decision is made.Person
8On a recall or quality hold, every channel stops selling the lot at once and the lookup lists the orders, channels and FBA shipments that carried it for the quality lead.Rule

6 rule steps · 1 AI model step · 1 person step. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.

Person

What stays with a person

  • Markdowns, bundles and channel moves for lots that will not sell before your last-sale date
  • FBA removal orders for dated units, which carry fees and cannot always be cancelled
  • Donation, return-to-vendor or disposal of short-dated and expired lots, with the record signed
  • Recall scope, customer notices and anything said to a regulator or a marketplace
  • Receipts with missing, unreadable or mismatched expiration dates
Tools

Which tools can run it

  • A lot sheet plus your 3PL's lot reports, for a few dated SKUs and one warehouse
  • A lot-tracking app from the Shopify App Store, or a 3PL or WMS with lot control and FEFO picking
  • Zapier, Make or n8n pulling 3PL lot data and FBA inventory into one tracker, with alerts to Slack or email
  • Custom code on your accounts, for many lots across FBA, a 3PL, Shopify and wholesale, feeding inbound plans and reorders

Systems it connects

  • Warehouse, 3PL or prep center receiving and lot data
  • Amazon Seller Central and the Fulfillment Inbound API
  • Shopify inventory and orders
  • Wholesale or B2B order system
  • Supplier packing lists and certificates of analysis
  • Lot and expiry tracker or ERP
  • Slack or email for alerts

Build size: Medium

The date math is simple; the work is getting a clean lot code and expiration date on every receipt and every shipment, across systems that do not all store lots.

Dated products lose money in a quiet way. A supplement lot that arrived short-dated sits behind newer stock, a cosmetics shipment is refused at an FBA fulfillment center because nobody checked the shelf life, and a pet-treat lot is found two weeks before expiry when the only options left are a deep markdown or the dumpster. This recipe tracks every lot from receiving to its last sale across FBA, a 3PL and Shopify, runs the date math every day, and leaves every markdown, removal, disposal and recall decision with a person. It is one page of our automation library.

Which rule applies at each stage of a lot's life?

This table is the core of the build, and you can run it today from a lot sheet. Each row is a band of days to expiry (or an event), what the workflow does on its own, who decides, and the channel rule behind it. Three numbers are yours to set per SKU and write down: the Amazon minimum at check-in (below), the days from your warehouse to FBA check-in, and your last-sale floor, the last day you will ship a unit to a customer. The 30-day bands are illustrative.

Days to expiry band (or event)What the workflow doesWho decidesRule that drives it
Any lot, at receivingRecords lot code and expiration date per SKU line; converts MM-YYYY to the first day of that month; holds lines with no readable dateReceiving lead, for held lines onlyAmazon: ingestible products need an expiry or manufacturing date, lot numbers alone are insufficient, and MM-YYYY means the first day of the month
Days to expiry minus days to FBA check-in is at or above the Amazon minimumLot is eligible for FBA; offered to the next inbound plan, longest-dated first; expiration and lot code sent on each item; one expiry date per boxPlanner approves the inbound planAmazon's check-in shelf life; one expiry date per ASIN in a box
Above your last-sale floor, but too short for FBA check-inBlocked from FBA plans; kept for Shopify orders through the 3PL and for wholesale buyers whose minimum it meets; picked first-expired-first-outNobody: no override, because Amazon may dispose of the inventory or remove the listingAmazon's minimum; your wholesale contract minimums
Units at risk above zero (formula below)At-risk alert with units, days left and options: send more of it to the faster channel, bundle it, offer it to a wholesale buyer, start a promotionWhoever owns pricing and channelsYour last-sale floor and the sell-through check
Within 30 days of your last-sale floorDaily alert; lot excluded from new wholesale quotes and bundles that need a longer dateOperations lead approves a markdown, donation or return-to-vendorYour floor; buyers' minimums
At or past your last-sale floorLot set to unavailable in Shopify at that location and held at the 3PL; disposition queuedOperations lead signs the dispositionYour floor; Shopify's unavailable state
Dated units in FBA nearing the ASIN's shelf lifeWeekly check of FBA stock by expiration date of record; proposes a removal to the 3PL while the units still have more life than your floor plus the trip backA person approves the removal order, which carries a feeAmazon sets unsold units past or close to the ASIN's shelf life to unsellable; removals follow your automated unfulfillable settings
Expired, anywhereNothing ships; units counted for disposal with the lot, quantity and locationOperations lead signs the disposal recordAmazon marks units past expiry on arrival for disposal and does not return them
Recall or quality hold on a lotEvery channel stops selling the lot at once; lookup lists orders, channels and FBA shipments that carried itQuality lead and counsel set scope and customer noticesYour lot records and the 3PL's per-order lot data

Two rows do most of the work. Too short for FBA stops the most expensive mistake, a shipment Amazon will not keep. Units at risk turns a disposal you would discover in month eleven into a channel decision you can make in month three.

How do you know a lot will sell before it expires?

Days to expiry on its own does not tell you. A lot with 300 days left is fine on a fast SKU and a problem on a slow one, and under first-expired-first-out it cannot start selling until the lots ahead of it are gone. These three formulas answer the question per lot.

Lot start day = units in lots that expire earlier ÷ average daily units sold

Selling window (days) = days to expiry − your last-sale floor − lot start day

Units at risk = lot units − (average daily units × selling window), when above zero

Here is how it reads for an illustrative pet-treat SKU sold on Shopify through a 3PL at 18 units a day, with a last-sale floor of 60 days. The numbers are examples, not client data.

Lot (illustrative)UnitsDays to expiryStart daySelling windowCan sell in windowUnits at risk
A9001200601,0800
B2,400300501903,4200
C3,000330183871,5661,434

Lot C looks safe at 330 days, but it waits about half a year behind lots A and B, so 1,434 units would still be on hand at the floor. The fix is a channel move, not a markdown. Send 1,500 units of lot C to FBA now: with, for example, 21 days to check-in, they arrive with 309 days left, above the 180 days Amazon's guide lists for pet food and treats. The 1,500 left at the 3PL fit inside the 1,566 the window can sell. Recompute weekly, because a slower month changes every row. The same check belongs in purchasing: our low-stock alerts and draft purchase orders recipe can cap a dated SKU's order at what will sell before the floor.

Sell-through rate and days of cover measure the same pace from other angles. Days of cover tells you when a SKU runs out; this check tells you which lot will not.

What does Amazon require for expiration-dated products in FBA?

Amazon's help page on expiration dates on FBA products sets the rules this recipe checks (checked October 20, 2026). At check-in, a product must have enough remaining shelf life to be consumed in full plus 90 days; Amazon's example is a supplement with 240 daily servings, which needs 330 days. Its category guide, which it calls a guide and not an exhaustive list, gives minimums such as 90 days for chips and snacks, 180 for pet food and treats, 730 for herbal or mineral supplements and 900 for personal care and beauty products. Where both figures apply, we plan on the longer one.

The same page sets the data rules. You mark an ASIN as expiration-dated and choose its expiration type and shelf life at listing. Each box may hold only one expiry date per ASIN. The date you enter in Send to Amazon becomes the "expiration date of record" for outbound, liquidation and removal decisions, and a mismatch with the printed date is an expiration date defect that can cost listings, inventory or the account. Units past expiry on arrival are marked for disposal and cannot be returned. On the API side, the createInboundPlan reference gives each item an optional expiration date in YYYY-MM-DD and an optional manufacturing lot code, and says the same MSKU with different expiration dates cannot share a box (checked October 20, 2026).

Inside the network, Amazon sets unsold units that pass their expiration date, or come close to the ASIN's shelf life, to unsellable. Its required removals page says unsuitable units are removed according to your automated unfulfillable settings; if those are not set, they are disposed of at Amazon's discretion, and a required removal order cannot be cancelled once created (checked October 20, 2026). Expiry is a different clock from age: the aged inventory surcharge counts days in the network, and our long-term storage fees page covers it. A young lot can still be close to expiry.

Where do lot codes and expiry dates live if Shopify does not track them?

Mostly outside Shopify. Its help page on inventory states lists on hand, available, committed, unavailable and incoming quantities, and does not mention lots or expiration dates (checked October 20, 2026). It does count units held for reasons such as damaged, quality control or safety stock as unavailable: stocked but not for sale. That is the state this recipe uses when a lot passes your floor or goes on hold.

The lot itself lives in one of three places. A 3PL or WMS with lot control is the most common: ShipBob's food and beverage page says its system prioritizes picking by expiration date and that its fulfillment centers track which lot codes are used in each order (checked October 20, 2026). An app is the second: the Shopify App Store listing for LotTrack says it can allocate stock by FIFO, FEFO or LIFO at fulfillment and send expiry alerts (checked October 20, 2026). An ERP is the third. Whichever holds the lot, this workflow reads it into one tracker beside FBA's stock, so the rule table runs on every unit you own.

Two more places need the lot. Returns of dated products should be graded on the expiration date before restock, which our returns, restock and refund recipe can add as a row. And when quantities sync across channels, a lot blocked from FBA should never be offered there; our multichannel inventory sync recipe publishes per-channel quantities.

How do you find every order from one lot during a recall?

Only if the lot was captured twice: once at receiving and once on each shipment. For 3PL orders, the lookup reads the 3PL's per-order lot data and lists order numbers, ship dates and channels for the quality lead. For FBA, the Amazon pages we checked do not say that Amazon reports which lot filled each customer order. So the workflow lists which inbound shipments carried the lot and how many of those units remain, which is what you can remove or hold. Keeping one lot per inbound box, as Amazon already requires for expiry dates, makes that list exact.

The lookup is fast; the decisions are not automatic. Who is affected, what customers are told and what goes to a regulator or a marketplace is for your quality lead and counsel. The workflow stops sales on the lot in every channel within minutes and keeps the record of what was held, where and when. It never messages customers on its own.

What should stay with a person?

Every decision that spends money or reaches a customer. Rules record dates, block short lots from FBA, pick by expiry and project units at risk. A person chooses between a markdown, a bundle, a channel move and a wholesale offer, approves FBA removal orders, signs donations and disposals, and owns everything about a recall. The model only reads dates and lot codes from paperwork; a low-confidence read is held at receiving, never accepted, because a wrong expiration date in Send to Amazon is a defect on your account.

Which tool should run it?

LevelFits whenWhat to know
Lot sheet plus your 3PL's reportsA few dated SKUs, one warehouseWorks with the rule table above; someone has to update it weekly and it will not stop an FBA plan
A Shopify lot-tracking app, or a 3PL or WMS with lot controlDTC-led brands, one 3PLFEFO picks and expiry alerts; FBA stock and wholesale minimums usually sit outside it
Zapier, Make or n8n with a trackerSteady volume across FBA and a 3PLOur Zapier vs Make vs n8n comparison covers the trade-offs; log every run so a missed lot report shows up
Custom code on your accountsMany lots across FBA, a 3PL, Shopify and wholesaleCan run on Ecomsellertool Growth OS, feeding the sell-through check into FBA inbound plans and reorders

Once a lot clears the FBA check, our FBA inbound shipment from an approved PO recipe builds the plan with the expiration date and lot code on each item.

Who builds this for brands selling dated products?

Ecomsellertool builds inventory workflows like this on your own accounts and systems. We have built on Amazon's seller APIs since 2017 and shipped 50+ tools for 100+ teams. We start with where your lot codes and dates are recorded today, which channels each lot can serve and who signs off on disposals, then build the tracker, the checks and the alerts. Send a project brief below, or read how our workflow automation service works.

The building blocks are work we have shipped:

  • Unit-level tracking with an alert for the next action. For EzBookPrep we built a prep system that catalogs every book by UID, tracks its condition, open issues and next step as it moves through prep, and alerts the next action on each one, with inbound and outbound shipments through Amazon's shipment APIs.
  • An FBA checklist inside prep software. For Little Owl, a 3PL and FBA prep center, we built software that tracks inbound shipments, returns and Amazon inventory and keeps a product checklist for FBA.

You keep your accounts, your data and the custom code we build; the Growth OS base is licensed to you.

Get this workflow built

Send us your version of this workflow

Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.

A few sentences is enough: what happens today, who does it and how often.

Starts when you fill in the form

A quick private check that runs in your browser. No tracking, no puzzles.

A person reads every brief. You get a written plan within 2 business days; no obligation.

Frequently asked questions

What is FEFO and how is it different from FIFO?

FIFO ships the units that arrived first. FEFO, first expired first out, ships the units with the earliest expiration date first, even if a later receipt expires sooner. For supplements, cosmetics, food and pet products FEFO is the safer rule, because one short-dated lot received late can otherwise sit until it expires.

How much shelf life does Amazon require for FBA?

Amazon's help page on expiration dates says products must arrive at the fulfillment center with enough remaining shelf life to be consumed in full plus 90 days, so a 240-serving daily supplement needs 330 days. It also lists category guidelines, such as 180 days for pet food and treats. Check the page for your product type before every shipment, because the figures can change.

Does Shopify track lot numbers and expiration dates?

Not in its core inventory. Shopify's inventory states are on hand, available, committed, unavailable and incoming, with no lot or expiry field on that page. Brands add lot tracking through an app from the Shopify App Store, their 3PL or WMS, or an ERP, and connect that data back to Shopify.

How do I know if a lot will sell before it expires?

Work out when the lot starts selling under FEFO, which is the units in earlier-expiring lots divided by daily sales. Subtract that and your last-sale floor from its days to expiry to get the selling window. Daily sales times that window is what can sell; anything above it is at risk and needs a decision now, not in the last month.

What happens to expired inventory at Amazon FBA?

Amazon says units that are past expiry when they arrive are marked for disposal and cannot be returned to you, and unsold units that pass their expiration date or come close to the ASIN's shelf life are set to unsellable. What happens next depends on your automated unfulfillable settings, so set them deliberately.

How do I find every order affected by a recalled lot?

You need the lot recorded at receiving and the lot recorded on each shipment. Many 3PLs with lot control record which lot codes go into each order, so the lookup reads their shipment data. For FBA, the workflow lists which inbound shipments carried the lot and how many of those units remain, so you can act on that stock.

Jaimin Dholakia, founder of Ecomsellertool
Jaimin Dholakia · Founder
Schedule a call

Get this workflow built on your own systems.

Prefer to talk the workflow through first? Schedule a free call with the engineers who would build it. Selling on Amazon? The free 24-hour diagnostic finds the operations gaps in your account: connect it with Login with Amazon, on Amazon’s own consent screen (we only read data; we never change listings, prices, stock or ads), and get a report within 24 hours of connecting, on business days.

Free · 30 minutes · Pick any open slot