Fashion & ApparelRetail / DTC6 min read

Discount Display Settings That Make a Shopify Sale Impossible to Miss

Auditing a 30% sale that shoppers could not see: compare-at prices written by the campaign, theme rendering on each surface, and a sales badge.

The same discounted product before and after strikethrough pricing and a sale badge are enabledSame discount, different presentationBefore$70Reads as full price>AfterSummer Sale-30%$100$70Save $30, visible at a glanceStrikethrough needs a compare-at price and a theme that shows it on each surface.

A correctly configured 30% sale can go unnoticed if products show only the new price. A Discount Prime Flat Product Discount changes real Shopify prices, so the strikethrough depends on the campaign writing the previous price to compare-at and on the theme rendering compare-at on every surface. Fix display before deepening the discount, and add a per-campaign sales badge.

At a glance

Challenge
A correctly configured 30% summer sale showed only the new price, so discounted products looked identical to full-price products.
Approach
The same Flat Product Discount with a display price setting that writes the previous price to compare-at, a per-campaign sales badge, and a theme check on every surface.
Discount Prime campaign types used
Flat Product Discount

Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.

Short Answer

If a sale is configured correctly but shoppers browsing the store cannot tell which products are reduced, a deeper discount makes an invisible offer more expensive. Before changing the percentage, check the presentation: is the original price shown with a strikethrough, is there a sale badge, and does every surface (collection, product, search, recommendations) show the same thing?

With a Discount Prime Flat Product Discount, the sale is a real price change in Shopify, so the strikethrough depends on two things: whether the campaign writes the original price into the compare-at price, and whether your theme renders compare-at prices on each surface.

Fits / Does Not Fit

A display audit fits whenLook elsewhere when
Discounted products look identical to full-price products on collection pagesThe strikethrough and badges are already visible everywhere
Shoppers only discover the discount on the product page or at checkoutTraffic to the sale collection is low (a reach problem, not a display problem)
The sale price would read as a normal price without a referenceThe discount is too small to matter to your customers even when seen

Scenario

Consider Avenue Apparel, a fictional fashion retailer. Its Summer Sale is a Flat Product Discount: 30% off the Summer collection. Checkout prices are correct. Illustrative decision data: jacket list price $100, unit cost $40, so the sale price is $70 and gross profit per unit falls from $60 to $30.

Signals that point to a display problem rather than a price problem (check your own analytics; these are hypotheses to test, not results):

  • Views of discounted products did not change when the sale started.
  • Click-through from collection pages to sale items is similar to full-price items.
  • Walking the store as a shopper, the $70 jacket shows only "$70": no reference price, no badge.

The Options

OptionMargin effect (illustrative jacket)Addresses visibility?Fits when
Deepen to 40%Gross profit per unit $30 → $20No, unless the display is fixed tooThe current discount is visible but not compelling
Extend to the whole catalogLower margin on every product✕NoYou are running a storewide event by design
Fix the displayNone✓YesShoppers do not notice the current discount

How Flat Product Discount Prices Are Displayed

A Flat Product Discount writes new prices to your products in Shopify while it runs and restores the prices stored at activation when it ends. Its Display price settings decide what happens to the compare-at price:

Option in the campaignPrice writtenCompare-at writtenStrikethrough on the storefront
Show discounted price as the original (default)Price − 30%The previous priceYes, where the theme shows compare-at
Show only the discounted pricePrice − 30%Existing compare-at kept, or noneOnly if the product already had one
Discount compare-at price and display itCompare-at − 30%Existing compare-atYes; note the 30% is taken from the compare-at, not the current price
Discount both the price and compare-at pricePrice − 30%Compare-at − 30%Yes, if a compare-at existed

A likely cause of Avenue Apparel's invisible sale is a campaign set to "Show only the discounted price", which leaves no reference price on products that had none. Switching to the default option writes $100 into compare-at and $70 into price. Some advanced display options depend on your plan; the campaign form shows which are available.

Products that already have a compare-at price need a decision: the default option replaces it with the current price, while "Discount compare-at price and display it" calculates the 30% from the old compare-at, which can produce a very different sale price. Preview a few such products before activating.

Theme rendering

Shopify themes decide where compare-at prices appear. Many show a strikethrough and a "Sale" label on product cards automatically when compare-at is higher than price; some templates (often search results, recommendation blocks, or custom collection cards) do not. If the strikethrough shows on the product page but not on collection pages, the fix is in the theme's card template, not in the campaign (help: strikethrough not showing on collection pages).

Sales badge

Discount Prime's Sales badge widget places a badge on product images while a campaign is live. Style and position are global defaults; the badge text, such as "Summer Sale -30%", can be set per campaign. It requires the app embed to be turned on. Placement on collection-grid cards depends on your theme's markup, so check each surface.

Reference price rules

Many jurisdictions regulate "was" prices. In the EU, for example, a price reduction must reference the lowest price in the prior 30 days. Use a compare-at price only when it reflects a genuine earlier price under the rules that apply to you.

ElementSetting
OfferFlat Product Discount, 30% off Summer collection (unchanged)
Display price settingsShow discounted price as the original (writes the previous price to compare-at)
Sales badgeApp embed on; badge text "Summer Sale -30%" for this campaign
ThemeConfirm compare-at rendering on collection cards, search results, and recommendation blocks

Before and after on a product card

BeforeAfter
Compare-atNone$100 with strikethrough
Price$70$70
BadgeNoneSummer Sale -30%
What the shopper can read"$70""$70, reduced from $100"

Pre-Launch Tests

Test inputExpected result
Collection page, desktop and mobileStrikethrough $100, price $70, badge visible
Product pageSame prices and badge
Search results for "jacket"Strikethrough shown (if not, theme template fix)
Recommendation blockStrikethrough shown (if not, theme template fix)
Product that already had a compare-atSale price matches the chosen display option
After the campaign endsOriginal price and compare-at restored

Measurement

  • Primary metric: click-through from collection pages to sale products, and add-to-cart rate on sale products, compared with the period before the display change.
  • Guardrail: gross profit per order (Estimated Profit in Discount Prime analytics), which should not change from a display fix since the discount is unchanged.
  • Confounders: a sale's own timing (first days vs later), email sends, and traffic mix all move these numbers. If possible, change the display partway through a sale with no other changes and compare similar days; treat the result as directional.
  • Next decision: if sale items are now noticed but still do not sell, the offer itself (depth, product choice) is the next thing to test.

Takeaway

A discount the shopper cannot see does no work. Check that the campaign writes a reference price, that your theme shows it on every surface, and that the badge names the sale, before spending more margin on a bigger number.

Frequently asked questions

Why is there no strikethrough price during my Discount Prime sale?

Check the campaign's Display price settings. The default option writes the previous price into the compare-at price, so themes can show a strikethrough. Show only the discounted price leaves compare-at unchanged, so products without one show just the new price. If the strikethrough appears on product pages but not on collection or search pages, the theme's card template is not rendering compare-at.

Should I show the original price with a strikethrough during a sale?

Usually, when the original price is a genuine earlier price. A product showing only $70 reads as a $70 product; $100 struck through next to $70 shows the saving. Many jurisdictions regulate reference prices, for example the EU's rule that a reduction must reference the lowest price of the prior 30 days, so use compare-at prices that meet the rules that apply to you.

What happens to products that already have a compare-at price?

It depends on the display option. The default replaces the old compare-at with the current price and sets the sale price 30% lower. Discount compare-at price and display it takes 30% off the old compare-at instead, which can give a very different sale price. Preview a few products with existing compare-at prices before activating the campaign.

Where does the Discount Prime sales badge appear?

On product images while a campaign is live, with style and position set as global defaults and badge text, such as Summer Sale -30%, set per campaign. The app embed must be turned on. Whether the badge also appears on collection-grid cards depends on your theme's markup, so check collection pages, search results, and recommendation blocks after enabling it.

Should I deepen the discount if a sale is not selling?

First check that shoppers can see it: a reference price, a badge, and consistent display across collection, product, search, and recommendation pages. Deepening an unseen discount mostly costs margin; on a $100 jacket with a $40 cost, 40% off instead of 30% cuts gross profit per unit from $30 to $20. If the sale is visible and still not selling, test the offer next.

Go deeper

Run this architecture in your store

Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.

More case studies