Reorder alerts for a Shopify store selling DTC and a little wholesale
If you sell most units one at a time through the storefront and then a stockist takes forty of something in an afternoon, your inventory alerts have to cope with both. Restoc is built to watch every active SKU in that store, show how many days of cover are left, and alert you by email or Slack when a SKU crosses its reorder point.
Your day: a DTC trickle, then the occasional pallet
You searched for inventory alerts that work when one Shopify store serves both retail customers and a handful of stockists. That is the store Restoc is made for: 50 to 2,000 SKUs, most of them leaving one or two units at a time, with a wholesale order every week or two that moves more stock in one line than the storefront moves in ten days.
The job is smaller than the software usually sold for it. You do not need a full planning suite. You want to know when to reorder, and you want to know it before a hero SKU hits zero.
Right now that knowledge lives in your head and a spreadsheet. On Monday you open Shopify, scan the products you worry about, and guess. The dangerous SKUs are not the slow ones. They are the ones you confirmed a wholesale order against last week, which are still showing a healthy number because the order has not been picked yet, or the ones a single stockist cleared out while you were watching a different line. The sentence nobody wants to say is the one merchants say anyway: we sold out of our best seller and did not notice.
Restoc does one thing against that. It tracks stock and sales per SKU, works out the point at which you need to place an order to arrive before you run dry, and tells you when a SKU crosses it.
One stock pool, two speeds of demand
Shopify holds one inventory number per variant, and both channels draw it down. So the useful question is not which channel sold the unit. It is how fast the pool is draining, and how long your supplier takes to refill it.
Restoc calculates a reorder point per SKU from three inputs: the sales velocity measured over a window you choose, the lead time that applies to that SKU, and a store-wide safety stock percentage you set. The first two decide when an average week would run you dry. The third is the cushion for the weeks that are not average, which is most weeks when a stockist can take forty units in an afternoon.
Here is the trade-off, said plainly. Restoc does not separate wholesale orders from DTC orders. Every order that lands in Shopify counts toward the same velocity figure. A 40-unit wholesale order inside a 7-day window makes that SKU look like it is flying, and the same order dropping out of the window a week later makes it look like it stalled. The window length is one lever against that lumpiness. Safety stock is the other: it lifts every reorder point by the percentage you choose, so a burst arriving mid-cycle does not have to be predicted to be survived.
What that means for how you set it up
- If wholesale is rare and unpredictable, a longer window keeps one order from inflating your reorder points across the board.
- If your DTC demand is the thing that moves, a shorter window catches a sudden run sooner.
- Safety stock is one percentage for the whole store. Set it by how large a miss you can afford, not SKU by SKU.
- The window is set store-wide. On Pro you can override it per SKU, which is how you give your two or three wholesale lines a different treatment from the rest of the catalogue.
Choosing a sales velocity window
| Window | What it reacts to | Pick it when |
|---|---|---|
| 7 days | The last week of orders, DTC and wholesale counted together | DTC demand is your main signal and you want the fastest reaction to a run on a product |
| 14 days | A fortnight of orders, which spreads one large order across two weeks | A stockist orders every week or two and you want a middle setting |
| 30 days | A month of orders, so a single bulk order moves the average least | Wholesale lands unpredictably and you would rather it did not swing every reorder point in the store |
The workflow Restoc supports
- Connect the store
Install through Shopify, or paste an Admin API access token from your own custom app. The install is built to pull current inventory levels, each product's vendor, and a backfill of the last 30 days of orders. After that, webhooks plus a scheduled sync job keep stock and sales current. Restoc is a web app: no mobile app, no browser extension.
- Set lead times by supplier
Each SKU carries the vendor synced from its Shopify product, and a vendor lead times screen in settings lists every distinct vendor in your catalogue. Type one wait per supplier and it fills any SKU that has no lead time of its own, so you are not entering the same five weeks into hundreds of rows. Where one line differs, set the lead time on that SKU and it wins.
- Pick the velocity window
Choose 7, 14 or 30 days store-wide. On Pro you can override the window on individual SKUs, which suits the few lines that carry your wholesale volume.
- Set a safety stock percentage
One store-wide percentage, added on top of lead-time demand in the reorder point calculation. It is the answer to items that sell in bursts rather than evenly, which is exactly what a wholesale order makes of a DTC line.
- Read the dashboard
Current stock, days of inventory remaining, safety stock in units and reorder status for every active SKU, on one screen, sorted soonest to stock out first. Days of cover is the number you scan, because it already folds demand into the stock count.
- Take the alert
When a SKU crosses its reorder point, Restoc fires an alert by email, and by Slack webhook on Growth and above. Delivery runs through an idempotent background job, so one crossing means one alert, not a run of duplicates.
- Order from the weekly report
The weekly reorder report lists every SKU below its reorder point with a suggested order quantity and its safety stock units. Read it in the app or export it as CSV, which is the version you paste into an email to your supplier.
Why this fits a DTC store with a wholesale sideline
Days of cover, not a low stock flag
A fixed low-stock number is wrong the moment a stockist orders. Days of inventory remaining per SKU moves with actual sales, so a line that just took a bulk order reads as urgent straight away.
A cushion for lines that sell in bursts
An average-based reorder point is beaten by a line that sells nothing for nine days and forty units on the tenth. The store-wide safety stock percentage raises every reorder point, and the dashboard, the weekly report and the CSV all show that cushion in units so you can see what it is costing you to hold.
Lead times by supplier, not SKU by SKU
Vendors come across with the catalogue from Shopify, so you set the glass jars' five weeks once against that supplier and it fills every SKU without its own lead time. Per-SKU lead time still overrides it where one line is different.
Numbers in the first week, not the fifth
The install is built to backfill 30 days of order history, so your velocity figures and reorder points start populated instead of waiting for a month of fresh sales to accrue.
A list you can act on, not a dashboard to interpret
The weekly report is already filtered to SKUs below their reorder point and already carries a suggested order quantity, so the decision in front of you is what to order and how much, not what the numbers mean.
A CSV your supplier can read
Export the weekly report, with your own SKU codes on it, and send it. Restoc does not place orders or manage suppliers, which means nothing reaches a vendor without you reading it first.
Lumpy demand is a setting, not a surprise
The 7, 14 and 30 day windows exist because wholesale orders are spiky. Pick the one that matches how your orders actually arrive, and change it when your mix changes.
Alerts where you already look
Email alerts on every plan. Slack alerts through an incoming webhook from Growth up, which is useful when the person who places orders is not the person reading the shop inbox.
Your stock data, not your customers'
Each tracked SKU holds its title, your own SKU code, the Shopify variant id, current stock, lead time and computed reorder point, plus sales quantities and dates with the order reference. No customer names, addresses or payment details are stored.
Priced for a store of this size
Starter is $29 a month for up to 200 tracked SKUs, Growth $59 for up to 1,000, Pro $99 for up to 2,000. Paid yearly, each plan costs ten months' price for twelve.
Billed on your Shopify invoice
Subscriptions are billed by Shopify on your Shopify invoice rather than as a separate card payment, and your payment details stay with Shopify.
Plans, by how many SKUs you track
Starter, $29 / month
Up to 200 tracked SKUs, one location. Reorder point per SKU from your velocity and lead time, the 7, 14 or 30 day window, email alerts, the weekly report with CSV export, and the days-of-cover dashboard. $290 a year if you pay yearly. 60-day free trial.
Growth, $59 / month
Up to 1,000 tracked SKUs, five times Starter's capacity and enforced at sync time, one location. Adds Slack alerts through an incoming webhook alongside email. $590 a year if you pay yearly. 60-day free trial.
Pro, $99 / month
Up to 2,000 tracked SKUs, one location. Everything in Growth plus custom reorder rules: a per-SKU velocity window override, for the lines where wholesale skews the average. $990 a year if you pay yearly. 60-day free trial.
What Restoc does not do, said plainly
Running out of stock is a real financial hit, and we would rather you knew the edges of this tool before you relied on it.
- It does not split DTC from wholesale. One velocity figure per SKU, drawn from all orders in Shopify. The window length and the safety stock percentage are how you manage lumpiness.
- Safety stock is one store-wide percentage. There is no per-SKU safety stock figure today, and we are not going to promise you a date we cannot hold.
- One location per plan. Every plan covers a single location. If you hold wholesale stock somewhere separate, Restoc is not tracking that separately yet.
- History starts at 30 days. The install backfill reads the last 30 days of orders, which covers the 7, 14 and 30 day windows from the start. Anything longer builds as you sell.
- No purchase orders and no supplier records. Vendors come across from Shopify so you can set a lead time per supplier. That is the extent of it: the weekly report and its CSV are the handoff, and you send the order.
- No forecasting. Restoc works from your recent sales, your lead time and your safety stock setting. It does not model seasonality or project demand forward.
- Web app only. No mobile app, no browser extension. Alerts come to email and Slack, which is what you have on your phone anyway.
- Sign-in is email and password. No single sign-on and no two-factor authentication.
Questions
Does Restoc tell the difference between a wholesale order and a DTC order?
No. Every order that reaches Shopify counts toward one sales velocity figure per SKU. You have two levers instead: the window, 7, 14 or 30 days, and the store-wide safety stock percentage. A 30-day window spreads a single bulk order so it moves the reorder point less; a 7-day window reacts faster to a run of retail sales. On Pro you can override the window on individual SKUs.
My best sellers go in bursts. How do I stop them running out before the reorder point is reached?
Set a safety stock percentage. It is added on top of lead-time demand inside the reorder point calculation, store-wide, so every SKU keeps a cushion over what an average week would consume. The dashboard, the weekly report and the CSV export all show the safety stock in units, so you can see the cover you are buying and the cash it ties up.
Do I have to type a lead time into every SKU?
No. Each SKU carries the vendor synced from its Shopify product, and the vendor lead times screen lists every distinct vendor in your catalogue. Enter the wait once per supplier and it fills any SKU that has no lead time of its own. Where a single line runs to a different schedule, set the lead time on that SKU and it takes precedence.
Will I have velocity numbers on day one, or do I wait for sales to accrue?
The install is built to backfill the last 30 days of orders along with your current inventory levels, so reorder points and days of cover start from real history rather than from zero. After that, webhooks plus a scheduled sync job keep stock and sales current.
How do the alerts arrive?
Email on every plan, to the address you set in alert settings, and Slack through an incoming webhook from Growth up. Delivery runs through an idempotent background job, so a single crossing of the reorder point produces a single alert rather than a repeat every time the job runs.
What do I actually send my supplier?
The weekly reorder report. It lists the SKUs below their reorder point with your own SKU code, a suggested order quantity and the safety stock units behind the figure, viewable in the app and exportable as CSV. Restoc does not send orders for you, so you read it before anything leaves your hands.
Can it watch more than one location?
Not today. Starter, Growth and Pro each cover one location. If you hold wholesale stock in a separate location, Restoc will not track it separately yet, and we would rather say that than imply otherwise.
What does it cost, how is it billed, and when does the first charge land?
Starter $29 a month or $290 a year for up to 200 tracked SKUs, Growth $59 or $590 for up to 1,000, Pro $99 or $990 for up to 2,000. Yearly is ten months' price for twelve, and annual billing is offered as an option at signup. The SKU cap is enforced server-side when your store syncs. Subscriptions are billed by Shopify on your Shopify invoice, not as a separate card payment, and every plan starts with a 60-day free trial, built so at least one full weekly reorder cycle completes before the first charge.