← All posts

Replenishment

Shopify replenishment, end to end

Shopify replenishment is deciding what to reorder, how much, and by which date. The date is the hard part, and it is the number Shopify does not show you.

Marcus Volsted Marcus VolstedCo-founder, Restocio Published 7 August 2026Updated 10 October 202619 min read
Shopify replenishment, end to end

Facts about Stocky and Shopify's built-in tools are taken from Shopify's own Help Center. Restocio is an independent product and is not affiliated with or endorsed by Shopify.

The number Shopify does not show you

Replenishment on Shopify is one decision repeated forever: what to reorder, how much of it, and by which date. Most stockouts in importing stores are not caused by ordering too little. They are caused by ordering too late, at the point where the only remaining fix is air freight at several times the price of a container.

Shopify tells you how many units you have, and one of its inventory reports estimates how long they will last on a 28-day average. It does not tell you the last day you can still order at the cheap price. That date, and an honest version of the days figure, are the entire job.

Days of stock is units on hand divided by how fast the product actually sells. Ninety units is comfortable for something selling one a day and an emergency for something selling twenty a day. The unit count on its own tells you close to nothing.

Then comes the number almost nobody tracks, and the one that decides whether you pay normal freight or panic freight.

The order deadline is the last day you can place an order and still have it arrive before you run out. It is your days of stock minus how long delivery takes, including a margin for the delivery being late. If sea freight takes 100 days door to door and you have 110 days of stock, you have ten days left to order at the cheap price, even though the shelves look full.

That last sentence is the whole reason importers get caught. A full shelf and an expired deadline look identical in the Shopify admin.

Where Shopify's built-in inventory tools stop

Shopify is genuinely good at the record-keeping half of this. You get stock levels per variant and per location, transfers between locations, purchase orders, adjustment history, and reports on what sold. The question "what do I have, and where" is answered well.

What is not in the box is the other half, the part that tells you what to do about it:

Stocky filled part of this gap for Shopify Plus and POS Pro merchants until it closed on 31 August 2026. What replaced it inside Shopify is narrower than what Stocky did, which is why so many stores went looking for something else in August.

None of this is a complaint about Shopify. It is a commerce platform, not a purchasing department. But it does mean that in almost every store with a lead time longer than a few days, the reorder decision is being made somewhere outside Shopify, usually in a spreadsheet that one person maintains and nobody else understands.

How to work out your order deadline

Three inputs, and only three.

Then the arithmetic is simple:

days of stock = units on hand / units sold per day
reorder days = lead time + safety margin
order deadline = days of stock minus reorder days

When the deadline hits zero, it is order day. When it goes negative, you are already late and the question changes from "what does this cost" to "how do I cover the gap".

Worth saying plainly: a reorder point that sits far above your current stock level is not a bug. With a long lead time it is the normal state for an importer. A product selling seven a day on a 90 day lead time needs a reorder point north of 600 units, which can look absurd next to a shelf holding 200. It simply means you should already have ordered.

The sales rate mistake that buries your best products

This one is worth more than every other technique on this page combined, and it costs nothing to fix.

The instinct is to take units sold and divide by calendar days. Sixty units in sixty days is one a day. Except that if the product was out of stock for forty of those days, it did not sell one a day. It sold sixty units in the twenty days it was actually available, which is three a day.

Sell 30 units in 60 days with the product unavailable for 40 of them, and the honest rate is 30 divided by 20, which is 1.5 per day, not 0.5. The calendar figure is wrong by a factor of three.

Now follow what that does. The calendar rate teaches your planning that a product which keeps selling out is a slow mover. So you order less of it. So it sells out sooner. So next period the calendar rate looks even worse. It is a loop, and it quietly buries the exact products that deserve more shelf space. Meanwhile the products that never sell out always look healthy, because they always had stock to sell.

Shopify's own reports do not say they leave out days with no stock. Its daily sales report divides by every day in the period, and its days-remaining report by the days a variant was “active”, a word its Help Center does not define (read 2 October 2026). If you are pulling a sales-per-day figure straight out of a report and feeding it into a reorder decision, check which divisor it used, or this may be happening in your store right now.

Two related distortions worth knowing about. Campaign spikes are about price, not demand, so a discount week included as normal demand inflates every forecast that follows it. And new products have no meaningful rate at all for the first few weeks, so anything computed for them is a guess wearing a decimal point.

How much to order, and why one number is never enough

Here is where most spreadsheets stop early and get the answer badly wrong.

The obvious calculation is: cover the period you want covered, add the lead time, subtract what you already have.

target stock = (coverage days + lead time) x sales per day
order quantity = target stock minus stock on hand, rounded up to the supplier's pack size

That number is a starting point, not an answer. Call it the seed. Two things can make it larger, and if you stop at the seed you will under-order badly.

StepWhat it does
1. The seedCoverage plus lead time, times daily sales, minus current stock.
2. The window projectionInside the order window the seed is only the floor. The order is sized on what stock will be when the boat lands: enough to cover the journey plus the coverage period, minus what the shelf and anything already sailing will still hold. Close to the deadline that is far more than the seed says.
3. The bridgeIf the boat arrives after you run out, a smaller fast order is added on top to cover the gap days. It is not carved out of the sea order, it is extra.

Step three is the one people miss. The bridge is additive. A store that treats the seed as the final answer can under-order by close to an order of magnitude on the products under time pressure, which are precisely the ones that matter most.

A worked example you can check by hand

Take a product selling 10 units a day with 100 units on the shelf. Sea takes 70 days, rail 20, air 5. Coverage target is 30 days. Safety margins are 30 days on sea, 7 on rail, 3 on air.

days of stock = 100 / 10 = 10 days

Seed: 10 x (30 + 0) minus 100 = 200 units by sea.

Window projection: the boat docks on day 70, and the shelf has been empty since day 10. Those 60 empty days are not the boat's to pay back. The rail and air legs below exist to cover them, so the shelf at landing counts as zero, never as minus 600. The sea order is sized on that:
sea = 10 x (70 + 30) minus 0 = 1,000 units, five times the seed.

Bridge check: 10 days of stock is less than rail's 20 day lead time, so both bridges are needed.
rail = (70 minus 20) x 10 = 500, plus 7 safety days x 10 = 570 units
air = (20 minus 10) x 10 = 100, plus 3 safety days x 10 = 130 units

Total order: 1,000 by sea + 570 by rail + 130 by air = 1,700 units.

The seed said 200. The right answer is 1,700, eight and a half times the seed this close to the deadline. That gap is what late ordering actually costs, and it is why the deadline matters more than the stock level.

One honest detail, so you can check the arithmetic all the way: the bridge is additive, and nothing is bought twice. Follow the shelf day by day. 100 units on hand, 130 land by air on day 5, 570 by rail on day 20: 800 units against the 700 sold before the boat docks on day 70. So the boat lands on a shelf holding about 100 units, which is the rail and air spare days (7 + 3, times 10 a day) doing their job, and the 1,000 it carries is the plain target of 100 days at 10 a day. There is no overhang for the next order to shrink away. Until October 2026 this example, and the app behind it, let the boat pay for those 60 empty days as well, which made the boat 1,600 and the total 2,300. That was the same days bought twice, and it is fixed.

Change one input and the shape changes completely:

Stock on handWhat to orderWhy
120 daysNothingBeyond the order window. Ordering now just parks cash in a warehouse.
75 daysAll by seaLast moment to book the boat. It still lands in time.
45 daysSea plus a rail bridgeThe boat is 25 days too late. Rail fills the hole.
10 daysSea plus rail plus airRail is too slow as well. Air covers the front of the gap.

Deciding how the order travels

For a domestic supplier this section does not exist. For an importer it is often the largest cost in the whole decision, and it is decided entirely by how early you acted.

The rule is a ladder. If your stock lasts longer than the sea journey, everything goes by sea, because sea is the cheapest and there is no reason to pay for speed you do not need. If it does not, you calculate the gap, which is the number of days you would be empty before the boat lands, and you buy just enough fast freight to cover those days. Rail first. Air only if rail is also too slow.

The important part is that you split the order rather than upgrading all of it. Putting an entire container on a plane because 300 units are needed in week two is the single most expensive mistake available in this whole process. Send 300 by air and the rest by sea.

If stock will not last even the air lead time, no freight decision saves you. At that point you are choosing which customers to disappoint, and the only real lesson is upstream.

Variants, locations and the parts specific to Shopify

Three things make this different on Shopify than in a generic inventory guide.

Variants are where the real decision lives. A product that looks healthy at the product level is usually three variants that are fine and one that has been out of stock for a month. Replenishment planned at the product level hides exactly the problem it is supposed to surface. The math above has to run per variant, and stock should be summed across active variants only, so discontinued sizes do not pad the number.

Locations complicate the "on hand" number. A multi-location store has stock that is technically available but in the wrong warehouse. Whether that counts depends on whether you can actually transfer it in time, and the honest answer for most importers is that a transfer is faster than a reorder, so it should be checked first.

Shopify Flow is not a replenishment engine, and it is worth being clear about why. Flow can send you an alert when stock drops below a number you typed in. That is useful, and it is also the wrong shape for this problem. A fixed threshold does not move when your sales rate changes, does not know your lead time, and fires when stock is low rather than when the deadline arrives, which for an importer is months too late. An alert that says "you have 40 units left" is telling you about a decision you needed to make in March.

Why did my low stock alert fire too late?

Because the alert measured your shelf when what you needed was a date. A threshold knows how many units are left, not how long your supplier takes, so the same number is generous for one product and useless for another. At ten units a day, an alert at 100 units buys ten days. A container from Asia needs a hundred.

Nothing malfunctioned. It fired on the day stock crossed the number you set, exactly as configured, and by then the decision was months behind you. Shopify Flow's own trigger reference, read on 10 September 2026, lists inventory triggers for quantity changed, out of stock and back in stock. All fire on a unit count, and none knows when your goods arrive, because Shopify does not hold your supplier's lead time.

Would a higher threshold fix it?

Only until something moves. A threshold that works is your sales rate multiplied by your lead time, plus a margin, so the right number differs per product and goes stale whenever either input changes. Below is one product selling ten a day, one alert at 100 units, four supplier situations.

Supplier situationWarning the alert givesDays empty before goods landThreshold that would have worked
Local wholesaler, 3 day lead time10 days030 units
EU warehouse, 14 day lead time10 days4140 units
Air from Asia including production, 45 days10 days35450 units
Sea from Asia including production, 100 days10 days901,000 units

The second column never changes, and that is the failure. One alert hands every product the same ten days, and only the top row can use them. None of the thresholds in the last column carries a safety margin for a late boat, so each has to be higher still. Working the number out is the reorder point.

What do you watch instead of a threshold?

A date. Days of stock minus lead time minus safety margin is the last day you can still order at the cheap freight price, and it counts down on days when nothing sold at all. A threshold cannot do that, because it only reacts to units leaving the shelf.

It catches the delay that no unit count contains. A product with 130 days of stock against a 100 day sea window looks like it has a month in hand. Add 45 days of production, ordinary for made-to-order clothing, and it is 15 days overdue. Nothing on the shelf moved. The deadline did, which is why a supplier lead time has to include the factory and not only the transit.

Two honest limits. A deadline is only as good as the lead time behind it, and Restocio reads that from the supplier profile you fill in. It does measure how long your suppliers actually take, from your own purchase order history, and offers to update the profile once it has enough deliveries to be sure, but it never applies that on its own, so an optimistic lead time nobody revisits returns a confidently wrong date. Restocio also does not email you the deadline. The countdown sits on the Replenishment page, so it reaches you when you open the app. If you want a message in your inbox the moment stock crosses a number, a Flow automation still does that well, as a backstop under the deadline rather than a replacement for it.

What is already on the water changes the answer

An order placed three weeks ago and arriving next month is stock you already own. If it does not reduce today's order, you will double buy, and you will do it on exactly the products you are most anxious about. Shopify keeps those units in a field of their own, and leaves them out of the totals you are most likely to reorder from.

Incoming purchase orders should be netted per freight mode before anything is recommended. Units already on a boat reduce the sea portion. Units already on a plane reduce the air portion. A shipment that fully covers the need means the correct order quantity is zero, no matter how alarming the shelf looks.

This is the most common source of over-ordering in stores that have started taking replenishment seriously. The panic buy happens, then the original order lands two weeks later, and now cash is trapped in stock you bought twice.

When the spreadsheet stops working

Everything on this page is doable by hand for thirty products. It works. Plenty of good stores run this way for years and there is no reason to change while it is working.

It breaks somewhere around a few hundred variants across several suppliers with different lead times and different minimum order quantities. Not because the math gets harder, but because the deadlines stop lining up with each other. Every product has its own clock, the clocks all run at different speeds, and nobody has time to check two hundred of them every Monday.

What happens next is predictable. Either the store over-orders across the board to feel safe, which converts working capital into warehouse space, or it starts paying air freight to fix problems that were visible on a spreadsheet six weeks earlier and nobody looked.

Restocio runs this calculation continuously for every product, and shows the deadline as a countdown rather than a stock level. That is the actual difference. Not better forecasting, which is oversold across this entire category, but the deadline being visible on the day it matters instead of the day you happen to open the spreadsheet.

What this approach does not solve

Worth being straight about the limits, because most software in this category is not.

If a vendor tells you their forecasting solves all four of those, they are selling you something.

Common questions

Why is my low stock alert too late?

Because it triggers on a stock level and the decision it should have warned you about is a date. A threshold cannot know your supplier's lead time, so an alert at 100 units on a product selling ten a day gives ten days of warning whether the goods take three days or a hundred. For anything imported, that alert arrives months after the order should have been placed.

What should I set my low stock threshold to?

Your daily sales rate multiplied by your total lead time, including production, plus a margin for a late delivery. On ten units a day with a 100 day lead time that is over 1,000 units, not the double digits most stores type in. The number is different for every variant and goes stale as soon as demand or lead time shifts, which is the reason a fixed threshold keeps failing.

Are low stock alerts useless then?

No, they are just the wrong tool for imported goods. If your supplier delivers in days, a threshold gives you enough time to act and it is easy to explain to whoever covers for you. If your goods arrive by sea, treat the alert as a last-resort backstop and watch the order deadline instead, because by the time the alert fires the cheap freight option is gone.

Does Shopify have built-in replenishment?

No. Shopify handles stock levels, purchase orders, transfers and reporting, but it has no demand forecast, no suggested reorder quantity, no minimum or maximum stock levels per variant, and no concept of supplier lead time. Without lead time there is no order deadline, which is the number replenishment actually turns on.

What is a reorder point on Shopify?

The stock level at which you should place a new order so goods arrive before you run out. It is your daily sales rate multiplied by your lead time, plus a safety buffer. It differs for every variant and changes as demand changes, which is why a fixed threshold in Shopify Flow goes stale quickly.

How do I calculate days of stock for a Shopify product?

Units on hand divided by units sold per day, counted per variant rather than per product. Count the sales rate only over days the variant was actually in stock. Using calendar days makes a product that keeps selling out look like a slow mover, which leads you to order less of your best sellers.

How far ahead should a Shopify importer order?

Lead time plus a safety margin, which for goods coming by sea from Asia is commonly 90 to 120 days including production. That means the order decision is made months before the shelf looks empty. The useful trigger is the order deadline counting down, not the stock level dropping.

Why is my recommended order quantity higher than what I am missing today?

Because the order has two jobs. It refills the shelf and it covers the wait until the next delivery lands. If the boat arrives after you run out, a faster shipment is also added on top to cover the gap days, rather than being subtracted from the sea order. Sizing on today's shortfall alone under-orders the products under the most time pressure.

What replaced Stocky for Shopify replenishment?

Stocky closed on 31 August 2026. Shopify's built-in inventory tools cover part of what it did, mainly purchase orders and transfers, but not demand forecasting or suggested reorder quantities. Stores wanting those need a third-party app.

Marcus Volsted
Marcus Volsted
Co-founder, Restocio

Marcus co-founded Restocio and works on it daily with a Swedish importer who plans their purchasing in it every working day. Restocio is built in Sweden by two founders, one Swedish and one Danish, and Marcus is the Danish one. Why we are building it.

Related reading

Restocio plans purchasing for Shopify stores that import. It works out what to order, how much, and whether it should travel by sea, rail or air, so you pay air freight only for the units that genuinely cannot wait.

See pricingTalk to us