100% Free Tools for Online Sellers •No Sign Up Required •Instant Results
Made for sellers, by sellers ♥

Shopify Compare-at Price for BFCM 2026: Sale Badge Checklist

SellersNest Team·

Shopify product sale prices synced from a bulk pricing sheet to shopping channels

For a Shopify BFCM sale, put the original eligible price in Compare-at price and the reduced amount in Price, then confirm the compare-at value is higher for every participating variant. That creates a fixed sale price your theme can show before checkout. It is different from a discount code or automatic discount, so test the storefront, Google sync and profit separately before announcing the offer.

The setup looks simple, but three problems cause most holiday mistakes: an inflated or invalid reference price, inconsistent variant fields that hide the sale treatment on collection pages, and a Google price that does not match the landing page. This checklist helps Shopify sellers avoid all three.

How Shopify compare-at pricing works

Shopify uses two product or variant fields for a fixed sale:

  • Compare-at price: the original or reference price.
  • Price: the current amount the customer pays.

Shopify's current help documentation says the compare-at price must be higher than the price for the sale to display. Your theme controls whether the storefront shows a crossed-out price, sale badge or percentage saving. At checkout, only the current sale price appears as the product price.

A compare-at sale is not the same as creating a discount in Shopify. Automatic discounts and discount codes are calculated as discounts and show their savings at checkout. Shopify says that displaying those discount savings as crossed-out prices on product and collection pages requires a compatible third-party app or custom storefront work. Check the current Shopify sale-pricing instructions before launch because admin and channel behavior can change.

Compare-at price, discount and Google promotion are different

MethodWhat changesBest use
Compare-at priceThe product or variant has a fixed lower selling price and a higher reference price.An always-visible BFCM sale price on product and collection pages, if supported by the theme.
Shopify discountA code or automatic rule reduces the price when its conditions are met.Cart conditions, customer segments, minimum spend, bundles or time-limited campaigns.
Google promotionA Merchant Center promotion highlights a separate offer.Coupons, gifts, shipping offers or promotions approved for Google surfaces.

Do not use all three simply because they exist. A compare-at sale combined with an automatic discount can reduce the already-reduced price if the discount is eligible to combine. Map the result with our Shopify discount-stacking guide before activating multiple offers. For Merchant Center campaign rules, use the Google promotions approval checklist.

Run the margin test before editing prices

Calculate contribution profit using the final checkout outcome, not the percentage printed on the badge:

Sale contribution = sale price − product cost − payment and platform fees − fulfillment cost − shipping subsidy − ad cost − expected return cost

Suppose a product normally sells for $80, costs $28, has $7 of fulfillment and variable selling costs, and receives a BFCM sale price of $60. Before advertising and expected returns, estimated contribution is $25:

  • Sale price: $60
  • Product cost: −$28
  • Other variable costs: −$7
  • Contribution before ads and return allowance: $25

The advertised reduction is 25%, but the contribution falls from $45 at the regular $80 price to $25. You therefore need 1.8 sale orders to replace the contribution from one full-price order, before considering extra advertising or returns. That does not make the offer wrong; it tells you the sales-volume lift required.

Use the Discount & Sale Price Calculator to check the markdown, the Shopify Fee Calculator for payment and platform costs, and the Profit Margin Calculator for the final margin. Rates and plan conditions vary, so use your own Shopify setup rather than the simplified example.

Set compare-at prices for every variant

You can edit one product or variant from the product details page, or use Shopify's bulk editor for many products. For each participating variant, enter the original eligible price in Compare-at price and the BFCM amount in Price.

Variant consistency matters. Shopify warns that a collection page might not display a product as being on sale when its variants have conflicting compare-at values—such as some being blank, some set to zero and others having different pricing. The product page can still look correct after a shopper selects a particular variant, which makes this easy to miss.

Before launch, test:

  • Every color, size and pack option that should be included.
  • Products with one full-price variant and other reduced variants.
  • Collection cards, search results and featured-product sections.
  • The product page after switching between variants.
  • Cart, checkout and any eligible automatic discount.

Bulk-update with CSV without damaging variants

For a large catalog, export the current Shopify product CSV first and preserve that untouched export as a rollback file. The product CSV includes Price and Compare-at price fields, plus market-specific price columns when your Markets configuration supports them.

Shopify's current CSV documentation warns that variant-dependent changes require the corresponding option columns. If required option data is omitted, Shopify can create a new default variant and delete existing variants. Do not build a tiny two-column update file from memory and assume it is harmless.

  1. Export only the products you intend to change.
  2. Duplicate and protect the original export.
  3. Keep the product handle, title and required variant option columns intact.
  4. Update Price and Compare-at price for the intended rows only.
  5. Check decimals, empty cells, duplicates and column names with the CSV Cleaner & Viewer.
  6. Import a small test group before changing the full catalog.
  7. Inspect products, variants, images and inventory immediately after import.

Use the current Shopify export as your template because older column names may still work but can differ from the current format. For broader import preparation, see our bulk-listing CSV cleanup guide.

Check Shopify Markets and EEA price rules

Shopify states that fixed market prices override the prices and compare-at prices set in the main product admin. Fixed sale prices for international markets may need to be imported with market-specific CSV columns. A sale that looks correct in your primary market can therefore show a different result elsewhere.

European Economic Area pricing also needs special attention. Shopify's guidance for the EU Price Indication Directive explains that Black Friday and Cyber Monday claims can count as price-reduction announcements. It advises displaying the product's lowest price from at least the previous 30 days, subject to local rules and exceptions. Some national laws can require a longer period.

This is operational guidance, not legal advice. If you sell into the EEA, verify the exact countries, products and campaign history with current local requirements. Do not enter a higher number merely to make the percentage saving look larger. Shopify provides market controls for displaying or hiding compare-at prices and supports country- or market-specific values through CSV.

Sync sale pricing to Google Merchant Center

With automatic product sync enabled in Shopify's Google & YouTube app, Google says a Shopify compare-at price and sale price can be shared with Merchant Center. Google notes that pricing can take up to 24 hours to update, so do not schedule the feed change minutes before the campaign begins.

Google's sale-price annotation is not guaranteed. Current requirements vary by surface and country, but generally include a lower sale price, a discount greater than 5% and less than 90%, both prices visible on the landing page, and—in many markets—enough history at the base price. For US Shopping ads, Google currently lists either 5 days in the previous 30 days or 15 days in the previous 200 days as the base-price history test. Other supported markets commonly require 30 days within the previous 200 days.

Google also says the active sale price should be the most prominent price on the landing page. After syncing, open Merchant Center and check product diagnostics, the sale-badge filter and a real product landing page. Review the current sale-price annotation requirements for the market and destination you use.

BFCM launch checklist

  1. Confirm the reference price. Use a genuine eligible prior price and retain pricing history.
  2. Model the final checkout. Include stacked discounts, fees, shipping, advertising and expected returns.
  3. Update a test group. Check every variant and collection card before a catalog-wide edit.
  4. Review markets. Test currencies, fixed prices and market-specific compare-at values.
  5. Allow sync time. Publish early enough for Shopify, connected channels and Google to refresh.
  6. Inspect mobile pages. Confirm that the current price is obvious and the sale message is readable.
  7. Capture evidence. Save screenshots and exports of the approved prices before launch.
  8. Plan the rollback. Restore the original price and clear the compare-at field when the sale ends.

A clean sale display supports trust, but it cannot rescue an unprofitable offer. Pair this setup with the Black Friday product-page checklist so titles, metadata and share previews describe the campaign without stuffing temporary keywords into permanent product names.

Frequently asked questions

What goes in Shopify's Compare-at price field?

Enter the original eligible price. The current reduced amount belongs in the Price field, and the compare-at value must be higher for Shopify to display the sale.

Is a compare-at price the same as a Shopify discount?

No. Compare-at pricing sets a fixed lower product price with a reference price. Discount codes and automatic discounts apply separate rules and conditions.

Why is the sale badge missing on a Shopify collection page?

One common cause is inconsistent variant pricing. Check whether some variants have blank, zero or different compare-at values, then test the collection card again. Theme behavior can also differ.

Can Shopify compare-at prices sync to Google?

Yes, when automatic product sync is enabled in the Google & YouTube app. Google says updates can take up to 24 hours, and a sale annotation is not guaranteed.

Can I bulk-edit compare-at prices with a CSV?

Yes, but preserve Shopify's required product and variant columns. Shopify warns that missing option data in a variant-related update can create a default variant and remove existing variants.

Should I remove compare-at prices after BFCM?

Yes, if the sale has ended. Restore the intended regular price, clear obsolete compare-at values, verify connected channels and keep an export showing the change.

Keep reading