Inventory for Shopify
Know what your stock actually costs you.
And what to buy next.
with Stocked,the skillet carries $3.11 of freight — not $1.31.
Stocked allocates freight the way it was really incurred — by value or per unit, not split evenly across the carton — and writes the true landed cost back into Shopify. Then it works out what to reorder, from what has actually been selling.
| Variant | Cost | Landed | Margin | Cover | Risk |
|---|---|---|---|---|---|
| Cast Iron Skillet — 26cm | $38.00 | $40.39 | 54.6% | 102 | ok |
| Canvas Tote — Black | $14.20 | $14.20 | 62.6% | 2.6 | out |
| Linen Apron — Charcoal | $21.80 | $21.80 | 58.1% | 12 | low |
| Merino Crew Sock — M | $9.40 | $9.95 | 58.5% | 130 | ok |
| Enamel Mug — Cream | $6.10 | $6.10 | 66.1% | 58 | ok |
The shape of it
Stock goes in loose. It comes out as a number.
Stock everywhere. A count nowhere.
Hundreds of variants, a supplier invoice, a freight bill, and a spreadsheet that was right last month. The margin column is fiction and everybody knows it.
It gets packed. And it gets costed.
Freight is allocated across the lines as stock is received — by value or per unit — and the moving weighted average cost is written straight back to Shopify.
It lands as a number you can act on.
Every variant carries its true landed cost, its real margin, and how many days of cover is left. Not a report you export — a workspace you work in.
One workspace
Everything below starts the same way.
Not features. Sentences a merchant would actually say on a Tuesday.
with Stocked, the shipping bill is part of the cost
Allocated across the lines at receiving, by value or per unit, rolled into a moving weighted average and written back to Shopify as cost per item.
actually cost you
with Stocked, you see the stockout coming
Thirty-day statistical forecasting per variant, days of cover, and a stockout-risk score. Alerts fire before the shelf is bare, not after.
on your bestseller
with Stocked, the margin column is true
Real margin per variant against landed cost, not supplier price. Cost creep is flagged the moment a supplier quietly raises a price.
freight is counted
with Stocked, the reorder list writes itself
Suggested quantities from real sales velocity, your supplier's lead time and the cover you want — less what is already on order, clamped to the MOQ. Raise the purchase order from the same screen; receiving costs it.
at landed cost
with Stocked, you hold your margin floor
Track competitor prices, see where you sit, and reprice within a floor you set. Margin protection, not a race to the bottom.
or below market
with Stocked, your costs come with you
Two CSV importers: suppliers with their costs, lead times and MOQs, and an opening cost per variant. Every row is validated and shown to you before a single one is written.
before you confirm
Landed cost
with Stocked, the $340 you paid in freight shows up in your margins.
Shopify's cost field holds what the supplier invoiced. It has no idea you also paid to get the pallet here — so every margin you look at is flattering, and the heavier the product the more flattering it is.
Stocked splits that freight across the lines it actually belongs to, by value or per unit, and writes the real cost back to Shopify. Same shipment, honest numbers.
| Line | Units | Unit cost | + Freight | Landed |
|---|---|---|---|---|
| Cast iron skillet | 60 | $38.00 | $3.11 | $41.11 |
| Merino crew sock | 200 | $9.40 | $0.77 | $10.17 |
| Selling | 4.2 / day | trailing 30 days |
| Supplier lead time | 21 days | from the supplier record |
| Your cover target | 14 days | your setting |
| Needed to cover both | 147 | 4.2 × (21 + 14) |
| On hand, and on order | 14 · 0 | subtracted |
| Supplier MOQ | 150 | rounds 133 up |
| Suggested order | 150 | units |
Worked through
And what to buy next.
Every number above is one you already own — how fast it sells, how long your supplier takes, how much cover you want to hold. Stocked does the multiplication, subtracts what is already coming, and respects the minimum order quantity.
What it will not do is invent a reorder point you never set, or place the order for you. It puts a number in front of the person who knows the business, which is the part software is actually good at.
Repricing you can trust
No price moves unless you said it could.
Automated repricing goes wrong when it races to the bottom behind your back. Suggest-and-approve is the default on every plan: rule-based or competitor-driven, every change waits in a queue for you. On Pro you can let a rule apply itself — and even then it cannot cross the margin floor or the daily move cap you set.
- Review before execution. Approve or reject each change, one click or in bulk. The default on every plan.
- Margin floors are hard limits. A rule that would breach one is held, not rounded — including a rule you have let run on its own.
- Every change is on the record. What changed, which rule proposed it, who approved it, and when.
The queue itself is in the screenshots above — under Repricing.
What it doesn't do
The list our competitors won't publish.
Buying software on a promise it can't keep is how you end up doing this again in a year.
No minimum and maximum levels per SKU
If you set a min and a max against every SKU in Stocky, that habit does not come across — Stocked has no such field. It suggests a quantity instead, from sales velocity × (supplier lead time + your cover target), less what is already on order, clamped to the MOQ. Better maths, different habit.
The forecast is statistics, not AI
Thirty-day statistical forecasting, days of cover and a stockout-risk score, computed from your own Shopify order history. There is no model, no seasonality engine and no plain-English commentary. Every competitor says AI; this one says arithmetic you can check by hand.
Automatic repricing is Pro, and off
On every plan, price changes are suggested and wait for your approval. Letting a rule apply itself is a Pro capability you switch on deliberately, per rule — and it still cannot cross the margin floor or the daily move cap you set.
Orders are checked hourly
Not streamed in real time. Every screen states when it last looked and what the figures cover, so a quiet week never reads as a broken sync and the last few orders of the day are never quietly missing.
Desktop only
Stocked is a dense workspace built for a real screen — there is no mobile app and no phone layout. If checking stock from the shop floor on a handset is the job, this is the wrong tool.
One store per account
Stocked connects to a single Shopify store. Running three stores means three accounts and three subscriptions — there is no group view across them, and no plan that bundles them.
Who is behind this
Why we built it.
My wife sells collectables on Shopify. The things that gave her the most trouble were not exotic — they were the ordinary work of running a shop:
- Repricing in bulk. Changing a lot of prices at once, without doing it one product at a time and without a mistake going live unnoticed.
- Editing a variant. An image, a cost, a weight — small changes that cost several screens each.
- Knowing her actual margin. Shopify has no suppliers in it, and no memory of what a purchase order really cost once freight and a changed supplier price were in. So the margin it showed her was margin on the invoice price, not on what the stock cost to get onto her shelf.
So we tracked it outside Shopify. Spreadsheets first, then spreadsheets pulling from the API, because that was the only way to see numbers that should already have been there. It got more sophisticated, and somewhere along the way it stopped being a workaround and became an application. That application is Stocked.
We built it, and the word is deliberate. I wrote the code, but I would have built the wrong thing without someone running a real shop telling me which parts actually hurt. Her insight is the product; I just typed it.
That is also why the prices are on this page — $39, $89 and $179, published, so you can see them before you spend an afternoon here and so we can't quietly move them once you have. Same reason there is a list further up of what Stocked doesn't do.
Retail is hard enough, and hardest on the smallest merchants. There is no good reason to make it harder.
Pricing
Published. Flat. And it stays that way.
Three plans, three numbers, on the page. No revenue tiers, no quote-only enterprise plan, no rise after signup. Every plan sees the same numbers — what changes is how much Stocked does when you're not looking at it.
The first 50 on this list keep the founding rate.
Stocked is not on the Shopify App Store yet. Adding your email here is the claim — the first 50 addresses on this list pay $29, $69 or $149 a month when Stocked opens, and keep that rate for as long as they stay on that plan or move up from it. We will email you the day it is listed, with your claim link. No drip, no newsletter.
Your confirmation email carries your claim link. Open it when you install and the founding rate is applied to that store — you do not have to set Stocked up under this address. The rate then belongs to the store rather than to you, and it travels with you when you move up a plan: Essentials to Growth later and you pay $69, not $89. Moving down ends it, and going back up does not bring it back. Places not claimed within 30 days of launch go back to the list.
If you would be willing to send a catalogue export and take a call before launch, say so when you reply to that email. A handful of real catalogues is worth more to this than a long list.