SafeSale · Blog

Automatic discount or compare-at price? Choosing the right way to put Shopify products on sale

The two ways to run a sale on Shopify compared: where the discount shows, what happens at the end, what can go wrong, and which one to pick for storewide sales, clearance and flash sales.

Every Shopify sale app, including ours, ultimately uses one of two mechanisms Shopify provides. Knowing the difference explains most of the horror stories in App Store reviews and tells you which one to pick for a given sale.

The two mechanisms

Automatic discounts are a native Shopify feature (help article). A rule such as “20% off the Autumn collection from Friday 00:00 to Monday 23:59” is evaluated when the shopper has items in the cart and at checkout. Apps can create them through Shopify Functions, which is how SafeSale does it. The stored price of your products never changes.

Compare-at price rewrites use two fields every variant has: price and compare-at price. Setting compare-at higher than price makes most themes show the compare-at value crossed out. An app runs a sale by writing the original price into compare-at and a lower value into price, then writing the originals back at the end, using the same product API you use when editing prices by hand.

Side by side

Automatic discountCompare-at price rewrite
Where the shopper sees itCart and checkout (plus badges your theme or an app adds)Product, collection and search pages, crossed out
Stored variant pricesUntouchedRewritten: price lowered, original moved to compare-at
End of saleShopify switches it off at the end timeEvery variant must be written back by the tool
Can it get stuck?NoYes, if the revert fails or originals were not saved
Can it compound?No, it is computed from the stored price at checkoutYes, if the tool discounts the current (already lowered) price
Shopify Markets fixed pricesApplies to the price the customer seesFixed per-market prices are not changed
LimitsCapped number of active automatic discounts per storeAPI write limits; large catalogues take minutes
Discount codesCan combine or not, per your settingsA code stacks on the already reduced price

When to use an automatic discount

  • Storewide or collection-wide percentage sales, especially over a weekend.
  • Any sale on a large catalogue where you cannot afford a partial write.
  • Stores selling in several markets with fixed per-market prices.
  • When you cannot babysit the end of the sale. Shopify ends it for you.

The only real downside is visibility on the product page. That is what sale badges and countdown blocks are for: SafeSale ships a theme app extension that shows “Sale” and the time remaining on product pages for variants covered by an active sale, without editing your theme code (how theme app extensions work).

When to use a compare-at price rewrite

  • Clearance: the price is going down and staying down, and the old price is the anchor.
  • Hero products in a campaign, where the crossed-out price is part of the ad creative.
  • Channels that read the product price directly (some marketplaces and feeds) and never see checkout discounts.

If you go this route, insist on four things from whatever tool you use:

  1. A snapshot before the first write. Original price and compare-at, per variant, stored somewhere the tool cannot overwrite, including the fact that a compare-at was empty.
  2. Sale prices computed from the snapshot, never from the current price. This is the only way to make compounding impossible.
  3. A revert that retries and reports. API limits and outages happen; the job must keep going and you must be told if it cannot finish.
  4. A way out without the tool. A CSV of the snapshot in Shopify’s import format means you can restore prices yourself even after uninstalling.

Can I have both?

Yes, and it is often the best setup: a storewide automatic discount plus compare-at rewrites on a short list of featured products. Be careful with overlap. A product in both gets the checkout discount on top of the rewritten price, so either exclude the featured products from the automatic discount or accept the stacked result on purpose. SafeSale lets you pick the mechanism per sale and warns in the preview when a variant is covered by another live sale.

Summary

Default to automatic discounts. Use compare-at rewrites deliberately, on a bounded set of products, with a tool that snapshots first and restores exactly. If you inherited stuck prices from a previous tool, start with our recovery guide.