Bulk Price Updates for Supplier Cost Changes
A repricing playbook for an 8% supplier cost increase across 18,000 products: percentage changes, permanent vs temporary updates, and correct reversal.
When supplier costs rise about 8% across 18,000 products, a percentage increase targeted by vendor keeps gross margin % and price relationships intact. Bulk Price Update writes real Shopify prices, stores originals at activation, and restores them when the campaign ends. Reversing +8% with -8% leaves prices low; use the stored price or divide by 1.08.
At a glance
- Challenge
- A supplier cost increase of about 8% affects 18,000 products across several brands, and the catalog spans $18.90 to $2,000 items.
- Approach
- A percentage Bulk Price Update targeted by vendor, a clear choice between a live campaign and a native Shopify edit for permanent changes, and reversal via stored prices.
- Discount Prime campaign types used
- Bulk Price Update
Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.
Short Answer
When supplier costs rise across a large catalog, a percentage price increase applied to the affected supplier groups keeps the relationships between cheap and expensive products intact and is far faster than editing products one by one. Discount Prime's Bulk Price Update does this by writing new prices directly to your Shopify products.
Two things decide whether it is the right tool, and most repricing mistakes come from ignoring them:
- Is the change permanent or temporary? Bulk Price Update stores each variant's original price when the campaign activates and writes that stored price back when the campaign ends. That is ideal for a temporary change. For a permanent supplier increase, you either keep the campaign running with no end date or make the change in Shopify itself.
- How will you reverse it? A +8% increase followed by a -8% decrease does not restore the original price ($100 × 1.08 × 0.92 = $99.36). The correct reversal is the stored original price, or dividing by 1.08.
This study works through both decisions for a fictional high-SKU distributor.
Scenario and the Data You Need
NovaTech Distribution is a fictional wholesaler of networking gear, computer accessories, and consumer electronics. Several manufacturers announce wholesale cost increases of about 8%, affecting roughly 18,000 products across a handful of brands.
Illustrative assumptions for the worked example below:
| Input | Value | Why it matters |
|---|---|---|
| Supplier cost increase | 8% on affected brands | Sets the price change needed to hold gross margin % |
| Affected scope | Products from specific vendors | Determines targeting (vendor, collection, tag) |
| Price range | $18.90 to $2,000 | Shows why a fixed-dollar change distorts the catalog |
| Expected duration | Permanent (price list), plus a later temporary currency spike | Decides campaign vs native edit |
Before repricing, confirm three things: which products are affected (by vendor or supplier tag), whether the cost increase is the same percentage for all of them, and whether it is permanent.
Alternatives Compared
| Approach | Fits when | Does not fit when | Reversal |
|---|---|---|---|
| Manual edits in Shopify admin | A few dozen products | Thousands of SKUs | Manual |
| Shopify bulk editor or product CSV import (native) | A permanent change you want baked into Shopify, done in a spreadsheet | You need scheduling or automatic revert; a formula error can rewrite many prices at once | Keep your exported CSV as the backup |
| Fixed-dollar change (any tool) | All affected products sit in a narrow price band | Wide price range: $5 is about 26% of a $18.90 cable and 0.25% of a $2,000 chassis | Subtract the same amount |
| Bulk Price Update, percentage (Discount Prime) | Large targeted groups; temporary changes with start/end dates; you want automatic revert | You want the change to outlive the campaign, or the products are already held by another live price campaign | Ending the campaign restores the stored prices |
Native Shopify tooling is a legitimate choice for a permanent increase. The app's advantage is targeting, scheduling, and a stored original to revert to.
The Worked Example
Percentage keeps margins proportional
If cost rises 8% and price rises 8%, gross margin % stays the same. Illustrative product (assumed 35% gross margin before the increase):
| Before | Cost +8%, price unchanged | Cost +8%, price +8% | |
|---|---|---|---|
| Price | $249.00 | $249.00 | $268.92 |
| Unit cost | $161.85 | $174.80 | $174.80 |
| Gross profit per unit | $87.15 | $74.20 | $94.12 |
| Gross margin % | 35.0% | 29.8% | 35.0% |
Gross profit here is price minus unit cost only. Payment fees, shipping, and returns are excluded. To adapt it, replace the price, cost, and increase with your own numbers. If only some brands rose 8% and others 5%, run them as separate groups.
| Product | Old price | New price (+8%) |
|---|---|---|
| USB-C cable | $18.90 | $20.41 |
| Managed switch | $249.00 | $268.92 |
| Rack server chassis | $2,000.00 | $2,160.00 |
Reversal: why -8% is wrong
| Step | Price |
|---|---|
| Original | $249.00 |
| After +8% | $268.92 |
| After a separate -8% | $247.41 (not $249.00) |
| Divide by 1.08 | $249.00 |
| End the Bulk Price Update campaign | $249.00 (stored original written back) |
How Bulk Price Update Behaves
These points come from how the product works, not from this scenario:
| Behavior | What it means for you |
|---|---|
| Writes real Shopify prices | Every customer and channel sees the new price; it is not a checkout discount |
| Modes | Percentage change or fixed amount, increase or decrease, or set an exact new price |
| Targeting | Whole store, collection, product type, vendor, specific products, tag, price range, or variant metafield, with exclusions |
| Original prices stored at activation | Ending the campaign writes those stored prices and compare-at prices back |
| Edits made during the campaign | If you edit a price in Shopify while the campaign is live, ending the campaign overwrites that edit with the activation-time price |
| Uninstalling the app | Does not revert prices; products keep whatever price they have |
| Compare-at price | Not set by Bulk Price Update. On an increase, an existing compare-at is kept only if it is still above the new price, otherwise cleared. No strikethrough is created |
| Price floor | Optional manual dollar floor, applied to decreases only; not based on cost |
| Adjust cents | Optional ending such as .99; it is applied after the change, so check the preview against a real product |
| Scheduling | Start and end dates are checked every couple of minutes, so expect a short delay |
| Overlap | A variant already held by another live price campaign stays with that campaign; the new campaign does not change it unless you move it |
Plan limits apply to the number of live variants a campaign can change. A catalog-scale update like 18,000 products needs a plan whose variant limit covers it; check the in-app Plans page before you start.
Choosing Permanent vs Temporary
Permanent supplier increase (the 8% price list). Two valid options:
- Keep a Bulk Price Update campaign live with no end date. Understand that if you later end it, prices go back to their pre-increase values and overwrite any edits made since.
- Or apply the increase natively (bulk editor or CSV), so the new price is simply your price with no revert link.
Temporary increase (a currency spike). A Bulk Price Update with an end date is the clean fit: +3% on import-heavy categories, and when rates normalize, end the campaign so the stored prices return. Do not run a second -3% campaign to undo it; that leaves prices 0.09% low and, on products the first campaign still holds, the second campaign would not apply at all.
If the products in the temporary group are already held by the permanent +8% campaign, the +3% campaign will not reach them. Either fold both changes into one campaign or make the permanent change natively first.
Pre-launch Tests
| Test input | Expected result |
|---|---|
| Preview on one cheap, one mid, one expensive product | New prices equal old × 1.08, rounded to cents (check Adjust cents if set) |
| Product with an existing compare-at below the new price | Compare-at cleared, no strikethrough |
| Product outside the targeted vendors | Price unchanged |
| Product already in another live price campaign | Shown as a conflict; not changed unless moved |
| End a small test campaign | Prices return to the stored originals |
Run the test campaign on a handful of products first, and export a product CSV as an independent backup before the full run.
Measurement and Next Decision
- Primary metric: gross margin % on orders of affected products, compared with the same products before the cost increase. Discount Prime's analytics compute Estimated Profit from Shopify's Cost per item, so update costs in Shopify first; lines without a cost are left out of profit.
- Guardrail: units sold per week for the affected groups. A price rise can reduce volume; compare with similar unaffected categories over the same weeks to separate the price effect from seasonality.
- Operational check: share of targeted variants actually changed (conflicts and plan limits can leave some untouched).
- Next decision: if volume drops more than your margin gain can cover, consider a smaller increase on price-sensitive lines and the full increase elsewhere.
Note that Bulk Price Update orders show a price change, not a discount, in analytics.
Frequently asked questions
How do I update thousands of Shopify prices at once?
Natively, you can use Shopify's bulk editor or a product CSV import, doing the math in a spreadsheet; that suits permanent changes. Discount Prime's Bulk Price Update targets products by vendor, collection, tag, type or price range and applies a percentage or fixed increase or decrease as a background job, with optional start and end dates. It needs a plan whose live-variant limit covers the number of variants you change.
Does ending a Bulk Price Update campaign restore my original prices?
Yes. Original prices and compare-at prices are stored when the campaign activates and written back when it ends. Two cautions: any price you edited in Shopify during the campaign is overwritten by the stored original, and uninstalling the app does not revert prices. For a permanent supplier increase, either keep the campaign running with no end date or make the change natively in Shopify.
Will a bulk price change show a strikethrough price?
Not from Bulk Price Update. It does not copy the old price into the compare-at field, so a strikethrough only appears if the variant already had a compare-at price above the new price. On an increase, a compare-at that ends up below the new price is cleared. If you want a visible sale price, a Flat Product Discount, which can move the current price into compare-at, is the better fit.
Should I use a percentage or a fixed amount for bulk price changes?
Use a percentage when the cost increase is a percentage and the catalog spans a wide price range. A fixed $5 increase is about 26% of a $18.90 cable but 0.25% of a $2,000 chassis. If cost and price both rise 8%, gross margin % stays the same. A fixed amount fits only when every affected product sits in a narrow price band or the cost increase itself is a flat amount, such as a freight surcharge per unit.
Can I make a temporary price increase on Shopify and reverse it later?
Yes, but do not reverse it with an equal percentage decrease: +3% then -3% leaves $100 at $99.91. With Bulk Price Update, set an end date or end the campaign, and the prices stored at activation are written back. If you changed prices outside the app, divide by 1.03 instead. A second campaign cannot change variants the first campaign still holds.
How do I check that repricing actually restored my margin?
Update Cost per item in Shopify first, because profit figures use that field and lines without cost are left out. Then compare gross margin % on orders of the affected products with the period before the cost increase, and watch units sold against similar unaffected categories over the same weeks. A price rise can lower volume, so judge it on gross profit, not margin % alone.
Go deeper
Run this architecture in your store
Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.