How to update Shopify prices automatically when supplier costs change
Shopify gives every variant a Cost per item field and uses it to show you margin. What it does not do is act on it. Change a cost from 10.00 to 12.00 and the selling price sits exactly where it was — your margin quietly drops from 50% to 40% and nothing anywhere tells you. Multiply that across a supplier who raised prices on 60 lines and you have a real problem that shows up two months later in your COGS.
Start Free Trial — 14-day free trial on Starter plan, no credit card required.
Shopify has no native cost-based repricing
There is no setting in Shopify that says "when cost rises, raise price to match". Cost per item is a record-keeping field: it feeds margin display and profit reporting, and that is the end of its job. This is a genuine gap rather than a hidden preference — the entire category of Shopify pricing apps exists because of it.
Scheduled price changes and bulk edits both exist, and both are things you trigger. Neither watches your costs. If you want price to follow cost, something outside Shopify has to make that decision and write it back.
Most repricing apps solve a different problem
Search for a Shopify repricing app and you will mostly find dynamic-pricing tools: they watch competitor prices, demand, or a schedule, and move your prices to win the sale. That is a legitimate category and it is not this one. Repricing against a competitor and repricing against your own supplier cost are different jobs with different inputs.
If your prices are drifting because suppliers keep nudging costs up, a competitor-tracking tool will not notice. It is not looking at your invoices.
| Dynamic / competitor pricing | Cost-based repricing | |
|---|---|---|
| Trigger | Competitor price, demand, or a schedule | Your supplier's cost changing |
| Goal | Win the sale on price | Hold the margin you set |
| Needs to know | The market | What you actually paid, per line |
The math: scale the price by the cost ratio
The rule that holds margin is simpler than it looks. Multiply the old price by the ratio of new cost to old cost. Because you are scaling price and cost by the same factor, gross margin percentage stays constant — and so does markup percentage, which is the part people expect to break.
New price equals old price multiplied by new cost, divided by old cost. A product costing 10.00 and selling at 20.00 holds a 50% margin. If the cost rises to 12.00, the price becomes 24.00, and the margin is still 50%.
Round to two decimals before you compare. If the recalculated price rounds to what is already on the variant, there is no change to make — a cost move of a few cents often will not shift the price by a full cent.
| Before | Cost rises, price untouched | Cost rises, price scaled | |
|---|---|---|---|
| Cost | 10.00 | 12.00 | 12.00 |
| Price | 20.00 | 20.00 | 24.00 |
| Gross margin | 50% | 33.3% | 50% |
Four cases where auto-adjusting is the wrong answer
Any rule that rewrites prices needs to know when to stay out of the way. These four cases are where a naive implementation does damage, and they are worth checking whether you automate this or do it by hand.
There is no prior cost to anchor to. If a variant has never had a cost recorded, there is no old-cost-to-new-cost ratio and no margin to preserve. Guessing here is worse than doing nothing.
The cost did not actually change. Re-receiving the same item at the same price should be a no-op. If your process rewrites the price every time an invoice lands, you will churn prices for no reason.
You edited the price yourself. This is the important one. If a merchant deliberately set a promotional or positioning price, an automated sweep that later overwrites it has destroyed a decision someone made on purpose. A manual edit has to win.
Doing it by hand
For a handful of lines this is entirely reasonable. When a supplier invoice arrives, note which items came in at a different unit cost than last time, compute the new price with the ratio above, and update cost and price together in the same edit so the two never disagree.
The bulk editor handles this for tens of variants: select the products, add both the Cost per item and Price columns, and work down the list. Beyond that, the arithmetic stops being the hard part and remembering which of 60 lines actually changed does.
Doing it from the supplier invoice itself
The invoice is the natural trigger, because it is the moment the cost genuinely changed and the only place that records what you actually paid per line. Smart Restock reads the invoice — PDF, Excel, CSV, or a forwarded email — matches each line to your Shopify variants, and can adjust the selling price to hold your margin as it posts the new cost.
Worth being precise about the boundary, because it decides whether this is the right tool for you: the adjustment happens when an invoice is posted . It is not a background service watching your costs or your competitors. If you want scheduled or competitor-driven repricing, a dynamic-pricing app is the right category and this is not it.
Within that boundary the safeguards match the four cases above. Every line shows its proposed new price before anything is written, so you approve the change rather than discover it. Prices a merchant set by hand are not overwritten. And if a posting turns out to be wrong, reverting it restores the prices along with the inventory and cost.
Cost itself is tracked by weighted average by default, so the figure the price is calculated against reflects what you have actually been paying rather than only the most recent invoice. You can switch to last-cost instead if that is what your accountant works from.
Frequently asked questions
Does Shopify update prices automatically when cost per item changes? No. Cost per item feeds margin and profit reporting only. Changing it has no effect on the variant's selling price — you or a third-party app must make that change.
What formula keeps my margin the same when cost rises? New price equals old price multiplied by new cost divided by old cost. Scaling both by the same factor preserves gross margin percentage and markup percentage together.
Will automatic repricing overwrite prices I set myself? It should not, and any implementation worth using treats a manual edit as a decision to be respected rather than a value to be recalculated.
Is this the same as a dynamic pricing app? No. Dynamic pricing responds to competitors, demand, or a schedule. Cost-based repricing responds to what your supplier charged you, and the two can sensibly run for different parts of a catalogue.