Skip to content

Promotional pricing on Shopify: the complete guide

Promotional pricing on Shopify means temporarily lowering catalog prices, usually with a higher compare-at price shown crossed out, for a set period. A good sale has a margin-safe discount, clean price endings, a defined start and end, and a plan for putting prices back.

What are the ways to run a sale on Shopify?

There are two families of promotions. Price-based sales change the product's price (and usually set a compare-at price), so the sale price shows on product pages, collections, search and in the cart. Discount-based promotions keep the catalog price and take money off in the cart or at checkout with a discount code or an automatic discount.

Price-based sales are clearer for shoppers browsing the catalog. Discounts are better for targeted offers such as a code for email subscribers. Many stores use both. Our guide to sale prices vs discount codes compares them in detail.

How does the compare-at price work?

The compare-at price is a separate field on each variant. When it's higher than the price, most themes show it crossed out next to the price and may add a sale badge. When it's empty, or not higher than the price, nothing is crossed out.

Use a compare-at price that reflects a genuine previous price. Many countries regulate reference prices in promotions, so check the rules where you sell. Read more in the compare-at price guide.

How deep should the discount be?

Start from your margin, not from round numbers. A discount reduces the profit on every unit, so you need more units to earn the same gross profit. The formula is: required increase in units = discount ÷ (margin − discount), using percentages of the original price.

Gross margin10% off20% off30% off
40%+33% units+100% units+300% units
50%+25% units+67% units+150% units
60%+20% units+50% units+100% units

Use the free discount calculator to see the sale price, the margin after the discount and the break-even volume for any product.

Should sale prices end in .99?

Price endings change how a price reads. Endings like .99 and .95 read as a deal, while round endings like .00 read as premium or simple. Whatever you choose, keep it consistent across a sale. A 20% discount on a $39.99 product gives $31.992, so plan a rounding rule before the sale rather than fixing odd cents afterwards. See charm pricing and price endings.

How do you schedule a sale so it starts and ends on time?

Shopify Plus stores can schedule events with Launchpad, and Markets rollouts can switch a market catalog or a set of discounts on for a set period. To schedule changes to your catalog prices and compare-at prices on any plan, and put them back afterwards, merchants use an app. With Sale Scheduler you choose "Schedule start and end", set the window, and the app applies prices at the start and restores the previous prices at the end. Scheduled times are processed every minute.

  1. Decide the window in your customers' time zone, and convert it to yours.
  2. Build the sale: price rule, rounding, compare-at action, products and exclusions.
  3. Review every variant and fix Warning and Skipped rows.
  4. Schedule the start and the end, or a duration.
  5. Check a product page after the start, and again after the end.

How do you put prices back after a sale?

The safest restore uses a copy of the prices taken right before the sale and checks each variant before writing. Re-importing an old CSV can overwrite prices you changed during the sale. Sale Scheduler saves each variant's previous price and compare-at before the sale and skips any variant whose price changed elsewhere. Read how to undo bulk price changes.

Which sales should repeat?

Weekly promotions (weekend deals, a fixed sale day) work best when shoppers learn the rhythm and when the discount is shallow enough to sustain. Use recurring sales for weekly or every-N-days patterns, and review results before letting a series run for months.

What are the most common sale-pricing mistakes?

  • Discounting below cost on low-margin variants because the rule applied storewide.
  • Compare-at prices equal to or below the new price, so nothing shows as crossed out.
  • Forgetting to end the sale, or ending it in the wrong time zone.
  • Restoring from an old file and overwriting prices changed during the sale.
  • Countdowns that don't match a real end time.

The full list, with fixes, is in 12 sale-pricing mistakes on Shopify.

Frequently asked questions

Is it better to use a sale price or a discount code on Shopify?

Use a sale price (with a compare-at price) when you want every shopper to see the discount while browsing. Use a discount code for targeted offers. They can be combined, so check your discount settings.

Can Shopify schedule a price change by itself?

Partly. Discounts have start and end dates, Markets rollouts can switch a market catalog or discounts on for a set period, and Launchpad (Shopify Plus) can schedule events. An app such as Sale Scheduler schedules changes to your catalog prices and compare-at prices on any plan and restores them afterwards.

How do I calculate a sale price?

Sale price = original price × (1 − discount). A 25% discount on $80 is $80 × 0.75 = $60. The discount calculator does this for you.

What should the compare-at price be?

Usually the regular price the product was actually sold at before the sale. It must be higher than the sale price to show as crossed out.

Related guides

All guides →

Run your next sale without the spreadsheet

Install Sale Scheduler from the Shopify App Store, build a sale, and review every price before it goes live. The free allowance lets you try it on a few variants first.

Chat with us on WhatsAppQuestions before or after you install