Reprice a collection, a vendor or the entire catalog in a single task — with the arithmetic done for you and the old prices kept so you can put them back.
You will be redirected to the Shopify app store.
Shopify’s own bulk editor is a spreadsheet: it shows you the price field and expects you to type the new number into every row. That works for ten products. For a thousand, you need rules rather than typing — “take 15% off everything in this collection and round to .99” — and you need a way back if the rule was wrong.
Bulk Product Edit by MITS applies price rules to a filtered slice of the catalog, shows the calculation on a sample before it writes anything, and stores the previous price of every variant it touches.
Run a price change on five products for free and read the result before you trust it with the catalog.
You will be redirected to the Shopify app store.
Every task keeps the old value of each field it wrote. Open the task, hit revert, and prices go back to what they were — or set the revert time up front and let the app do it on schedule.
The task log lists each variant with the old and new price, plus anything that was skipped and the reason, so a partial run is never a mystery.


The log of a finished task: compare-at price set to the price from before the task, then the price raised by 10.00.


| Action | Example | Result on a $40.00 variant |
|---|---|---|
| Set to | Set price to 29.99 | $29.99 |
| Decrease by percentage | −20%, round to .99 | $32.99 |
| Increase by amount | +$2.50 | $42.50 |
| Increase by percentage | +8% supplier increase, round to whole up | $44.00 |
| Adjust based on cost per item | cost $16 + 150% | $40.00 → $40.00 (margin rule kept) |
| Adjust based on compare-at price | compare-at $50 − 30% | $35.00 |
| Set compare-at the same as price | before a markdown | compare-at $40.00, price unchanged |
| Swap price and compare-at | fix a reversed price pair | price $50.00, compare-at $40.00 |
| Price from cost and shipping | cost $16 + shipping $4, then markup | price derived from $20 base |
Every editor shows a calculation example before you run anything: type an old price and see the new one with your percentage and rounding applied.

Supplier increases are the most common reason to touch every price at once. Filter by vendor, increase by the supplier’s percentage, and round up to your price ending. If you keep cost per item up to date, a safer rule is adjust based on cost per item: the price follows the new cost and your markup stays the same instead of drifting.
Raise compare-at price in the same task if you show it as a reference price — otherwise products that were “on sale” suddenly show a compare-at price below the live price, and Shopify hides the strike-through.
| Task | Shopify bulk editor | Bulk Product Edit |
|---|---|---|
| −15% on 800 variants | Type 800 new numbers | One rule, one task |
| Round to .99 | Manual | Built into the action |
| Price from cost | Spreadsheet, then CSV | Adjust based on cost per item |
| Undo | Re-type or re-import | Revert the task |
| End a sale on Monday | Someone logs in on Monday | Revert time set up front |
| Products per run | Page by page | Up to 70,000 on Plus |
Shopify shows the struck-through price only when compare-at price is higher than the price. A markdown is therefore two edits in one task: compare-at keeps the old price, the price goes down.
| Goal | Price editor | Compare-at editor |
|---|---|---|
| Start a 20% sale | adjust by percentage −20%, round to .99 | set the same as the price |
| End the sale | revert the task | restored by the same revert |
| Remove a stale strike-through | no change | set to blank (NULL) |
| Show a reference price on cost-priced goods | no change | adjust based on cost-per-item (by percentage) |
| Cut price to compare-at minus 30% | adjust based on compare-at-price (by percentage) −30% | no change |
Every task reports how many items it processed and how many it did not, and the log gives the reason for each skipped item. The usual reason is missing data: a rule based on cost per item cannot change a variant whose cost is blank, and a rule based on compare-at price skips variants without one. The editor lists these cases under the calculation example before you run anything.
Cost per item has its own editor: change to, adjust by amount or percentage, adjust based on price or compare-at price, or set to blank. After a supplier price list arrives, update cost per item for that vendor first, then reprice with adjust based on cost-per-item — the markup stays the same across the range instead of drifting product by product.
Set, derive or clear the compare-at price so discounts display — and stop displaying — on time.
Read morePush supplier increases into cost per item, then reprice from cost to a target margin.
Read moreGive a price change a start time and a revert time so it ends by itself.
Read more