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.
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 when | Look elsewhere when |
|---|---|
| Discounted products look identical to full-price products on collection pages | The strikethrough and badges are already visible everywhere |
| Shoppers only discover the discount on the product page or at checkout | Traffic to the sale collection is low (a reach problem, not a display problem) |
| The sale price would read as a normal price without a reference | The 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
| Option | Margin effect (illustrative jacket) | Addresses visibility? | Fits when |
|---|---|---|---|
| Deepen to 40% | Gross profit per unit $30 → $20 | No, unless the display is fixed too | The current discount is visible but not compelling |
| Extend to the whole catalog | Lower margin on every product | ✕No | You are running a storewide event by design |
| Fix the display | None | ✓Yes | Shoppers 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 campaign | Price written | Compare-at written | Strikethrough on the storefront |
|---|---|---|---|
| Show discounted price as the original (default) | Price − 30% | The previous price | Yes, where the theme shows compare-at |
| Show only the discounted price | Price − 30% | Existing compare-at kept, or none | Only if the product already had one |
| Discount compare-at price and display it | Compare-at − 30% | Existing compare-at | Yes; note the 30% is taken from the compare-at, not the current price |
| Discount both the price and compare-at price | Price − 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.
Recommended Setup
| Element | Setting |
|---|---|
| Offer | Flat Product Discount, 30% off Summer collection (unchanged) |
| Display price settings | Show discounted price as the original (writes the previous price to compare-at) |
| Sales badge | App embed on; badge text "Summer Sale -30%" for this campaign |
| Theme | Confirm compare-at rendering on collection cards, search results, and recommendation blocks |
Before and after on a product card
| Before | After | |
|---|---|---|
| Compare-at | None | $100 with strikethrough |
| Price | $70 | $70 |
| Badge | None | Summer Sale -30% |
| What the shopper can read | "$70" | "$70, reduced from $100" |
Pre-Launch Tests
| Test input | Expected result |
|---|---|
| Collection page, desktop and mobile | Strikethrough $100, price $70, badge visible |
| Product page | Same prices and badge |
| Search results for "jacket" | Strikethrough shown (if not, theme template fix) |
| Recommendation block | Strikethrough shown (if not, theme template fix) |
| Product that already had a compare-at | Sale price matches the chosen display option |
| After the campaign ends | Original 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
Features used
From the blog
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.