How to Put a Whole Shopify Collection on Sale, With the Old Price Crossed Out
One discount across a collection, a tag or the whole store, the old price crossed out on every product, and the prices put back when the sale ends.

In Discounty: Bulk price editor See how the Shopify bulk price editor works
To put a whole Shopify collection on sale with a strikethrough price, every product in it needs its old price in the Compare-at price field and the sale price in the Price field. Your theme then shows the old price crossed out next to the new one. Shopify's own bulk editor can fill both fields for many products at once, but you type every price and type them all back after the sale. A bulk price app does the arithmetic for a collection or the whole store and puts the prices back on the end date.
To create a bulk discount on Shopify, set one discount for a whole group of products, such as a collection, a tag or the whole store, instead of editing each price by hand. In Discounty this is a Bulk price editor campaign.
How does Shopify show a strikethrough sale price?
Two fields on each product variant decide it:
- Price: what the customer pays.
- Compare-at price: the old price. Shopify treats a product as on sale only when this is higher than the price. More in what a compare-at price is.
Your theme reads those two fields. It draws the crossed-out "was" price, and usually a Sale badge, on product pages, collection pages and search results.
A discount works differently. Shopify's Help Center page on sale prices says discount savings are not shown as crossed-out prices on product and collection pages by default. Shoppers see the saving in the cart and at checkout. So if you want the strikethrough on every product in a collection, the prices themselves have to change.
Compare-at must be higher than price.
Can you put a collection on sale in Shopify without an app?
Yes, in three ways.
Option 1: the bulk editor
- Go to Products. Search or filter the list so it shows the products in the sale.
- Tick those products and click Bulk edit.
- Click Columns and add Compare-at price if it is not showing.
- For each variant, copy the current price into Compare-at price and type the sale price into Price.
- Click Save.
The editor has no percentage tool. For 20% off, you work out each sale price yourself.
Option 2: a CSV file
From Products, export the products to a CSV file. In a spreadsheet, copy the Price column into Compare-at price, then write a formula for the new price, such as the old price times 0.8 for 20% off. Back in Products, click Import, add the file, choose Overwrite products with matching handles and import. Shopify accepts product CSV files up to 15 MB. Keep the untouched export: it is your way back.
Option 3: an automatic discount
Go to Discounts → Create discount → Amount off products. Under Method choose Automatic discount and enter the Discount value. Under Applies to, pick Specific collections. Set the start in Active dates, click Set end date, and save.
This one does the maths and ends by itself. It applies in the cart and at checkout, though, so product and collection pages keep showing the full price.
Where it breaks
| Bulk editor | CSV import | Automatic discount | |
|---|---|---|---|
| Strikethrough on product and collection pages | Yes | Yes | No, by default |
| Works out the sale price | No, you type each one | With your own formula | Yes |
| Starts and ends on a date | No | No | Yes |
| Getting the old prices back | Type them again | Import the saved export | Prices never changed |
| Limit to watch | Slow on big selections | 15 MB per file | 25 active automatic discounts, app discounts included |
Other things that trip merchants up:
- Nobody is awake at midnight. The bulk editor and CSV have no schedule. Someone has to make the change when the sale opens and undo it when it closes.
- A typo hides the sale. If a compare-at price ends up equal to or lower than the price, that product shows no sale at all.
- Mixed variants. If some variants of a product have a compare-at price and others do not, a collection page may not show the product as on sale.
- Fixed market prices. A product with a fixed price in a Shopify market shows that fixed price to shoppers there, so changing the store price does not reach them.
- EU shoppers. Shopify Markets has a setting that hides compare-at prices for customers in the European Economic Area. When it is on, they see the sale price with nothing crossed out.
How do you put a collection on sale with Discounty?
Create a Bulk price editor campaign: go to Campaigns, click Create campaign and choose Bulk price editor. It is on every Discounty plan, including the free Starter plan (see plans). The campaign writes the sale price into each variant's Price and keeps the old price as the Compare-at price, so your theme shows the strikethrough as it would for any sale.
Step 1: Name the campaign and choose the discount
Give the campaign a name only you will see, such as "Winter coats, 20% off". Then, in the Discount card, choose:
- Percentage: for example 20% off.
- Fixed amount: for example $10 off each product.
- New price: every product in the sale costs, for example, $25.
With Percentage, the Prices to change card also offers Catalog prices. Tick it and the fixed prices in your Shopify Markets and B2B catalogs drop too, so shoppers there see the sale. Variants with quantity price breaks are left as they are. A fixed amount or a new price changes the product's own price only.
See fixed amount vs percentage discounts for which to use.

Step 2: Fine-tune the prices (optional)
On the Essential plan and up, open Advanced price change features (for Percentage and Fixed amount only):
- Set specific price endings. Round sale prices to an ending such as .99: 5.68 becomes 5.99.
- For product already discounted, calculate the discount based on "compare-at price". On a product that is already marked down, the new discount is taken from the original price instead of the current sale price.
Step 3: Choose the products
For a collection sale, pick Collections and choose the collection. For a storewide sale, pick All store. You can also include products by Product tags, Vendors or Product types, or pick Products and variants by hand. On the Lite plan and up, tick Excludes to leave some products out, such as one colour of a boot. If some products don't join the sale, here is why.
On the Discounty plan and up, Product availability lets you choose whether to include products published on the Online Store, on POS, or either. It only decides which products join the sale; the new price shows everywhere the product is published.

Step 4: Schedule, combine and keep it up to date
- Schedule: set the Start date and Start time, tick Set end date, and set when it ends. The campaign starts and ends by itself. The times follow the time zone of the browser or device you save the campaign from, not the store's time zone, so check it before a midnight launch.
- Countdown timer (Essential plan and up): show a timer on the product page or homepage, counting down to the end date.
- Automatically update eligible products (Discounty plan and up): products you add later to the chosen collection or tag join the sale. Products that no longer match leave the sale and go back to full price. Discounty checks for changes every 30 minutes and updates each campaign at most once every 2 hours, so allow about 2 hours, longer if several campaigns use auto-update. Auto-update is not available when you pick products by hand.
- Campaign combinations (Discounty plan and up): let a Quantity discount or Cart goal campaign apply on top of this sale price. Unticked, a product stays in one campaign only.

Step 5: Check the summary and activate
The preview shows how the price looks on a product page and in the cart. The Summary card lists the name, the discount and the dates. Save or activate the campaign. On a large catalog, applying the prices takes a while; the status shows Applying until it is done.
What shoppers see
A Bulk price editor campaign writes two fields on each product in Shopify:
- Price: the new, lower price the customer pays.
- Compare-at price: the old price. If the product had none, Discounty saves the old price there. If it already had one, Discounty keeps it and never lowers it.

Your Shopify theme draws the strikethrough and the sale badge from those two fields. Discounty does not add a badge of its own for this campaign type. To change the badge wording, go to Online Store → Themes, open the … menu on your theme and choose Edit default theme content, then search for "Sale". To change its colour or shape, look for Badges in your theme settings; not every theme has it. On plans that include sale-badge customisation, Discounty's support team can help with a small theme change. See discount badges on Shopify for what to show.
Because the price itself changes, the sale price shows wherever the product is published, including collection pages, search, your Google channel and the product data AI shopping assistants read.
How do you run a storewide sale on 10,000 or more products?
In Discounty, pick All store in Step 3 and one campaign covers the catalog. At that size, three things decide whether Black Friday morning goes smoothly.
1. Count variants, not products. Plan limits count live variants, and a product in three sizes is three variants. A store with 10,000 products in three sizes is putting 30,000 variants on sale. Every plan below Ultimate has a cap on live variants, and Ultimate has none, so compare your count with the plan limits before the sale. A campaign that goes over shows Needs upgrade. See what goes wrong at Black Friday for why this one tends to surface in the last week.
2. Give it time. Writing new prices to a large catalog takes a while, and very large catalogs also wait longer for the first product count. The campaign shows Applying until every price is written. Allow for that when you pick the start time.
3. Keep it easy to redo.
- Test on a small collection first. Check that the prices look right before you run it on thousands of products.
- Split a very large sale into smaller campaigns, such as one for T-shirts and one for hats. On a live campaign you can change only the end date and time; anything else means deactivating it, which puts the prices back, editing it and activating it again. Smaller campaigns are quicker to redo.
- Do not edit prices by hand during the sale. Discounty puts the original prices back when the campaign ends. A manual change on a product in the sale can be overwritten or leave the wrong price after the revert.
- Export your product prices before a big sale. It is a quick backup if another app or a manual edit changes prices while the campaign runs.
What does a 20% collection sale look like in numbers?
Take a made-up store with a Winter coats collection: 40 coats, each in three sizes. That is 120 variants, more than the free Starter plan covers and within the Lite plan's limit. The campaign is Percentage, 20%, Collections → Winter coats, from Friday 00:00 to Monday 23:59.
| Coat | Before: price / compare-at | During: price / compare-at | What the theme shows |
|---|---|---|---|
| Wool coat | $150 / none | $120 / $150 | 20% off |
| Parka | $200 / none | $160 / $200 | 20% off |
| Rain jacket, already marked down | $90 / $110 | $72 / $110 | About 35% off |
The first two are plain: 20% of $150 is $30, so the coat sells for $120 with $150 crossed out.
The rain jacket is the one to watch. 20% of $90 is $18, so it sells for $72. Its compare-at price stays at $110, because an existing compare-at price is never lowered. Your theme measures the saving from $110: $38 off, about 35%.
If you would rather every product show 20%, tick For product already discounted, calculate the discount based on "compare-at price" (Essential plan and up). Then 20% of $110 is $22, and the jacket sells for $88 with $110 crossed out. That is $2 below last week's $90. If the jacket had been at $80, the same setting would raise it to $88, so check the preview first.
| Coat | Before the sale | Friday to Monday |
|---|---|---|
| Wool coat | $150 | $120 |
| Parka | $200 | $160 |
| Rain jacketalready marked down | $90 | $72 |
On Monday at 23:59 every price goes back to the Before column, the jacket’s $110 compare-at included.
At 23:59 on Monday the campaign ends and the coats go back to $150, $200, and $90 with $110 crossed out. Nobody has to retype anything.
How do you know the sale is live, and how do you end it?
The status next to the campaign tells you where it is:
| Status | What it means |
|---|---|
| Queued, Retrieving, Applying | Discounty is finding the products and writing the sale prices. You cannot edit or cancel it yet. |
| Scheduled | Waiting for its start date. |
| Active | Live on your store. |
| Auto updating | Running its scheduled check for new products. |
| Reverting | Putting the original prices back. |
| Expired | Ended, on its end date or because you deactivated it. You can activate it again. |
| Needs upgrade | More product variants than your plan allows. |
| Error | Something went wrong; the tooltip next to it says what. |
How to undo it
- To end the sale early, deactivate the campaign. It shows as Reverting while Discounty puts the prices back, then Expired.
- To end it on time, do nothing. On the end date the prices go back by themselves.
- To change the sale while it runs, you can move the end date and time. For anything else, deactivate, edit and activate again; the prices go back in between.
- End the campaign before you remove Discounty. Uninstalling mid-sale leaves the sale prices on your products, and on a product that already had a compare-at price, the old price is kept only in Discounty. Use Safe uninstall in Discounty: it ends every campaign first. What happens when you uninstall.
How we counted
The Shopify steps are from Shopify's Help Center as it read on 27 October 2026. The Discounty steps, statuses and timings are from Discounty's Help Center and the app; plan gates are from the app's Plans page. The example store is made up, and this post uses no Discounty figures.
Questions
What is the best bulk discount app for a Shopify Black Friday sale?
Look at how the app applies the discount before you look at ratings. For strikethrough prices on every product page, it has to write the Price and Compare-at price fields. Then check that it puts prices back on an end date, that its plan covers your variant count, and what happens if you uninstall it mid-sale. Shopify discount apps compared sorts the options by the kind of sale. Discounty's Bulk price editor writes both fields, starts and ends on your dates and puts the old prices back. Ultimate has no variant cap, and Safe uninstall ends every campaign before you remove the app.
Can I schedule a Shopify bulk discount?
Yes. A Bulk price editor campaign takes a start and an end date, applies the sale prices when it starts and puts them back when it ends. Shopify's bulk editor and CSV import have no schedule.
Can I edit a bulk discount while it is running?
Only the end date and time. For anything else, deactivate the campaign, edit it and activate it again. When you activate it again, set the end date again too.
How long does auto-update take to add new products?
About 2 hours. Discounty checks every 30 minutes and updates each campaign at most once every 2 hours. If several campaigns use auto-update, they are refreshed one at a time, so it can take longer.
What Is a Tiered Discount? Set Up Tiered Pricing on Shopify
BOGO on Shopify: What It Is and How to Set It Up
Automatic Discounts on Shopify: How to Set One Up