TL;DR: You can change many Shopify prices by a percentage with the native bulk editor for small sets, with CSV for technical teams, or with Bulk Discounts Price Editor for filtered catalogue rules, rounding and safer undo. Always preview on a small collection and keep a path to restore.
Figure (DISCOUNTS-003-A1): Example table showing Shopify product prices reduced by 20 percent with .99 rounding
Steps at a glance
- Define the percentage and whether it applies to price, compare-at, or both.
- Filter to the correct product set (collection, vendor, tag, status).
- Set rounding rules (for example .99) and any minimum price floor.
- Snapshot current prices.
- Run a test on 5–20 products.
- Spot-check admin and storefront.
- Apply to the full set.
- Record how you will undo the change if needed.
Quick answer
Percentage updates are common for supplier cost changes and sitewide promotions. Related: schedule + restore (DISCOUNTS-001) when the change is temporary. Existing overlapping article to reshape or cross-link: bulk edit prices instantly.
Decide early whether this is a permanent repricing (cost pass-through, currency correction, margin reset) or a temporary sale. Temporary changes should include an explicit restore method before you touch the first SKU.
What you need before starting
- Exact % and direction (increase vs decrease), written once in the task brief
- Rounding policy (for example always .99; never round up past a psychological threshold without review)
- Floor/ceiling rules if margins matter (for example never price below cost + X)
- Test collection with multi-variant products, not only single-SKU items
- Clear owner for rollback and a named backup file or app history entry
- Confirmation whether compare-at should move, stay, or be set to the pre-change price
- Note on whether Markets or B2B catalogues need separate handling ## Option 1: Shopify native bulk editor
- Go to Products.
- Filter the list (vendor, tag, collection, status). Confirm the filtered count matches your brief.
- Select products → Edit products.
- Add Price (and compare-at if needed) columns.
- Edit cells or use available bulk adjustments where present.
- Save.
- Open 2–3 products on the storefront and confirm currency formatting.
Pros: No app. Cons: Slow at thousands of variants; weak scheduling/rollback; easy to miss filters; easy to apply a change twice if two people edit the same grid.
For under roughly 50 variants, this is often enough. Above that, time cost and error risk rise quickly, especially when every size/colour is a separate price cell.
Option 2: CSV export/import
- Export products from admin (or your usual product export path).
- Adjust price columns in a spreadsheet with formulas, not hand typing where possible.
- Lock a copy named
prices-before-PERCENT-YYYY-MM-DD.csv. - Re-import carefully, starting with a small SKU subset if your process allows.
- Keep the “before” file until you confirm storefront and feeds.
Pros: Flexible; auditable formulas. Cons: High mistake cost; image/variant pitfalls; undo is another import. Prefer only with experienced operators who know how Shopify maps variant rows.
Never open the working CSV in a way that converts SKUs or barcodes into scientific notation. Prefer formats and import wizards that keep IDs as text.
Option 3: Bulk Discounts Price Editor percentage rules
Per App Store listing: percentage and fixed rules, filters, rounding, history/rollback (plan-dependent).
Pattern your install:
- Open Bulk Discounts Price Editor.
- Create a percentage update.
- Target collection/vendor/tag (or selected products).
- Enter −20 (example) or your value; confirm increase vs decrease direction.
- Set rounding and any floor/ceiling options if present.
- Decide compare-at behaviour explicitly.
- Preview/test on the pilot collection.
- Run.
- Confirm history entry for undo.
Landing: bulk discounts app page. Prefer App Store pricing tables over landing-page figures when they disagree.
Worked example: −20% with .99 rounding
| SKU | Before | −20% raw | Rounded .99 |
|---|---|---|---|
| A | £50.00 | £40.00 | £39.99 |
| B | £18.00 | £14.40 | £14.99 or £13.99 [choose rule] |
| C | £99.00 | £79.20 | £79.99 |
Document your rounding rule in the task notes so support staff can reverse it later. Example policy: “Round to nearest .99 ending that is still ≤ raw percentage result; if that would raise the price relative to raw, use the next lower .99.” Without a written rule, two operators will reverse the same sale differently.
Increase example: +8% on a £25.00 SKU → raw £27.00 → with .99 policy might become £26.99 or £27.99 depending on your floor/ceiling. Agree the rule before running filters that include gift cards or fixed-price services if those SKUs must be excluded by tag.
Image: shopify-bulk-percentage-price-change-example.webp (table graphic; Claude Design OK).
Which method should you choose?
| Scale / need | Prefer |
|---|---|
| <50 variants, one-off | Native bulk editor |
| Large catalogue + filters + undo | Bulk Discounts Price Editor |
| ERP-driven pricing | Feed/CSV with governance |
| Temporary timed sale | Schedule + restore workflow (DISCOUNTS-001), not a permanent % only |
Common mistakes and troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Prices cut twice | Task re-run on already reduced set | Restore from snapshot; lock task ownership |
| Wrong products changed | Filter included drafts or wrong tag | Tighten filters; re-export “before” next time |
| Compare-at still old/new incorrectly | Compare-at not in scope | Re-run with explicit compare-at rule |
| Ugly endings (£14.40) | No rounding standard | Apply rounding rule; document it |
| Cannot undo | No export / no history | Export before next change; use app history if on plan |
| Margin collapse on low-cost SKUs | No floor | Add a minimum price or exclude by tag |
Other pitfalls: applying a catalogue % while an automatic discount still runs on the same SKUs; forgetting that Markets may keep separate prices.
Frequently asked questions
How do I reduce all prices in a collection by 20%?
Filter to that collection and apply a −20% rule via native edits (small sets) or Bulk Discounts Price Editor (large sets). Pilot 5–20 products, confirm storefront, then run the rest. Exclude gift cards and non-merchandise if your catalogue mixes them.
Will a percentage change affect compare-at prices?
Only if you configure compare-at updates. Decide explicitly: leave compare-at alone, set compare-at to the pre-change price (common for sale presentation), or move compare-at by the same percentage (rarer; know why you need it).
How do I round bulk prices to .99?
Use app rounding controls or spreadsheet formulas; stay consistent. Write the rule in the task brief so a reverse change uses the same logic.
Can I undo a percentage price update?
Native admin: limited unless you saved an export. Apps with history/rollback or a pre-change export make undo realistic. If the change was temporary, prefer a scheduled restore (DISCOUNTS-001) over hoping someone remembers the old grid.
Should I change variant prices individually or at product level?
Shopify prices live on variants. Any bulk method must touch every variant you intend to update. After a run, spot-check a multi-variant product so a single “default” price did not leave sibling sizes behind.
What about cost-based percentage rules?
Some price editors support cost-plus style rules on their listings. Confirm whether Bulk Discounts Price Editor exposes cost-based options in your install before documenting them. Do not invent a UI path.
Next steps
Temporary sales: DISCOUNTS-001. Docs: knowledge base. App Store: easy-sale-price.
Shopify origin: https://www.aperitive.io/blogs/articles/how-to-bulk-change-shopify-product-prices-by-percentage