← Help

Bulk price sales

Lower the price of whole collections, tags, vendors or product types for a set time, with the original price shown crossed out. When the sale ends, the app puts every price back.

How a sale changes your prices

A bulk price sale edits the real price of every matching variant in Shopify, so shoppers see the sale price everywhere: product pages, collections, search, the cart and checkout. No discount code is involved.

It also sets each variant’s compare-at price. That’s Shopify’s “was” price: when it’s higher than the price, most themes show it crossed out next to the sale price. The app sets the compare-at to the variant’s original price, or keeps the existing compare-at if that was already higher. When the sale ends, both the price and the compare-at price go back to what they were before.

Set it up

  1. In the app, open Discount Campaigns and click Create a campaign.
  2. Find Bulk price sale and click Create.
  3. Under Campaign name, give it a Name. Shoppers don’t see this.
  4. Under Products, choose what’s on sale: Products and variants, a Collection, or one or more of a Tag, Vendor or Product type. Then pick the items.
  5. To leave some products out, tick Excludes and pick them.
  6. Click Calculate items count to see how many products and variants match. The count also runs by itself as you change the targeting.
  7. Under Discount, choose Percentage or Fixed amount and enter the amount.
  8. Under Schedule, choose Start immediately or Schedule for a later date. Tick Set an automatic end date if you want prices to go back on their own.
  9. Click Create bulk price sale.

The Discount preview on the right shows how a product will look before and after, with and without an existing compare-at price.

Products already on sale

A variant that already has a compare-at price counts as “already on sale”. By default the campaign leaves those prices alone. When the count finds some, a banner under Discount tells you how many, for example “12 of 40 variants are already on sale”.

Tick Discount products already on sale too in that banner to include them. The discount then comes off their current price, and their existing compare-at price stays as the “was” price.

Advanced price change features

Open Advanced price change features under Discount for three extra options:

  • Set specific price endings: makes every sale price end in .99, .95, .89, .49 or .00. Prices are rounded down to the ending, never up, so 12.34 becomes 11.99.
  • For products already discounted, calculate the discount based on compare-at price: for variants that have a compare-at price, the discount is worked out from the compare-at rather than the current price. If that wouldn’t lower the current price, the variant is skipped.
  • Keep current price and set a higher compare-at price: leaves the price as it is and raises the compare-at by your percentage or amount, so a “was” price shows. Use it sparingly: in some places the law says a “was” price must be one you really charged.

You can only pick one of the last two.

While the sale runs

The app changes prices in batches of 50 products, so a large catalogue can take several minutes. The campaign shows Applying with a progress count, then Active once every batch is done. A scheduled campaign shows Scheduled until its start time.

Products that start matching after the sale begins, such as new products added to the collection or given the tag, are picked up automatically, usually within a few minutes. Click Refresh products on the campaign page to do it straight away. Products that stop matching keep their sale price until the campaign ends.

You can’t run two campaigns that change the same products at the same time. If you try, the app names a product they share; end the other campaign first or exclude those products.

Check what changed

Open the campaign from Discount Campaigns. Affected variants starts with a one-line summary, such as how many variants had their price changed and how many were skipped. Below it is a row for each variant with its Original price, Campaign price, Compare-at price and Status. The Note column says why a variant was skipped: it was already on sale, or the discount would take its price to zero.

End a sale early

  1. Open the campaign from Discount Campaigns.
  2. Click End campaign and confirm. The status changes to Ending, then Ended once every price is back.

A campaign that hasn’t started yet has Cancel campaign instead.

If some prices can’t be put back, the campaign shows Failed with a Stuck variants table listing what each price should be and what it is now. Click Retry ending campaign, or fix those prices yourself in Shopify.

Ending a sale puts back the prices recorded when it started. If you edited a sale price by hand while the campaign ran, that edit is replaced.

The backup on each variant

When the app changes a variant’s price, it also saves the original price and compare-at price to a metafield on that variant: behaviour_discounts.original_price. It’s removed again when the price is put back. If a sale is still live when the app loses access to your store, this metafield is how you find the original prices.

Before you uninstall: end every bulk price sale and wait until each one shows Ended. Uninstalling removes the app’s access to your store, so it can’t put prices back afterwards. Any variant still on sale keeps its sale price, with the original saved in behaviour_discounts.original_price.

For an overview of what bulk sales are good for, see Bulk price sales.

Stuck? Email hello@behaviour-discounts.co.uk with your store address and what you’re trying to set up.

Related guides