Running a sale on Shopify should be straightforward, but the reality is that misconfigured sales are one of the most common issues we see with UK ecommerce brands. Discount codes that do not work, compare-at prices that display incorrectly, stacking issues that erode margins, and sale messaging that lingers long after the sale has ended — these are problems that cost real money and damage customer trust.
This guide walks through every step of setting up a sale on Shopify, from choosing the right discount mechanism to the often-forgotten post-sale cleanup process. Whether you are running a flash sale, a seasonal clearance, or a Black Friday promotion, the principles and steps are the same.
Types of sales on Shopify
Shopify offers three primary mechanisms for running a sale. Each serves a different purpose and has different operational implications.
Compare-at pricing
The most visual approach. You set a “compare at” price (the original price) and reduce the main price to the sale price. Shopify automatically displays the discount percentage and shows the original price with a strikethrough. This is the cleanest approach for sitewide or collection-wide sales where you want every product page to show the discount visually.
Best for: Seasonal sales, Boxing Day clearance, end-of-line markdowns, any sale where you want the discount visible on product pages and collection pages.
Automatic discounts
Discounts that apply automatically in the cart or at checkout without the customer needing to enter a code. These are configured in Shopify Admin under Discounts. You set the discount type (percentage, fixed amount, or buy-X-get-Y), the conditions (minimum purchase, specific collections, customer eligibility), and the schedule (start and end dates).
Best for: Sitewide percentage-off promotions, free shipping offers, buy-one-get-one deals, and any promotion where you want a frictionless customer experience.
Discount codes
Codes that customers enter at checkout to receive a discount. These are more work for the customer but offer tracking benefits — you can attribute revenue to specific marketing channels or campaigns based on which code was used.
Best for: Email-exclusive offers, influencer promotions, VIP early access deals, and any promotion where you need to track the source or limit access.
Setting up compare-at pricing
Here is the step-by-step process for setting up a compare-at price sale:
Step 1: Record your original prices
Before changing any prices, export your product catalogue as a CSV and save it. This is your backup. If anything goes wrong during the sale, you can reimport the original prices immediately. This step is non-negotiable — skip it and you risk not being able to restore prices accurately after the sale.
Step 2: Set compare-at prices
For each product or variant you want to include in the sale, set the “Compare at price” field to the current (original) price. Then reduce the “Price” field to your desired sale price. Shopify will automatically calculate and display the discount percentage.
Step 3: Verify the display
After updating prices, preview your product pages and collection pages to verify that the compare-at price, sale price, and discount percentage are displaying correctly. Check both desktop and mobile views. Different themes handle sale pricing display differently, so verify that your specific theme shows the information clearly.
Step 4: Check your Google Shopping feed
If you use Google Shopping, your product feed will automatically reflect the new prices. Verify that the sale prices and original prices are feeding through correctly to your Google Merchant Centre account. Sale pricing in Google Shopping can significantly improve click-through rates.
UK pricing regulations
Under UK Consumer Protection from Unfair Trading Regulations, compare-at prices must represent a genuine price at which the product was offered for sale for a reasonable period. Using inflated or fictitious compare-at prices is a regulatory risk and damages consumer trust. Only set compare-at prices that reflect your actual recent trading prices.

Configuring automatic discounts
Automatic discounts are configured in Shopify Admin > Discounts > Create discount > Automatic discount. Here is how to set them up correctly:
Discount type selection
- Percentage off. The most common type. Set the percentage and choose whether it applies to specific products, collections, or the entire order.
- Fixed amount off. A set pound amount off the order total. Works well for “£10 off orders over £50” type promotions.
- Buy X get Y. Promotional mechanics like “buy 2 get 1 free” or “buy a shirt, get 50% off a tie”.
- Free shipping. Free shipping above a threshold or on all orders. Can be combined with product discounts.
Conditions and eligibility
Configure the minimum requirements (minimum purchase amount or minimum item quantity), customer eligibility (all customers, specific segments, or specific customers), and maximum uses (total uses or per-customer limits). Getting these conditions right is critical — a misconfigured automatic discount can apply more broadly than intended, eroding margins.
Scheduling
Set the start date and time, and the end date and time. Use your local time zone. Automatic discounts will activate and deactivate at the scheduled times without manual intervention. Double-check that the dates are correct — a typo in the end date can leave a promotion running longer than intended.
Creating and managing discount codes
Discount codes are created in Shopify Admin > Discounts > Create discount > Discount code. Best practices:
- Code naming. Use clear, memorable codes. BFRIDAY26 is better than XKJF84. For email-exclusive codes, include a reference to the channel: EMAILVIP20.
- Usage limits. Set total usage limits to prevent codes from being shared beyond your intended audience. For VIP codes, set a per-customer limit of one use.
- Combination rules. Decide whether the code can be combined with other discounts. During sales, you typically want codes to not stack with compare-at pricing or automatic discounts.
For guidance on email marketing to promote discount codes, read our article on the seven Klaviyo flows every ecommerce store needs.
Building sale collection pages
A dedicated sale collection page makes it easy for customers to find all discounted products in one place.
Automated sale collection
Create an automated collection with the condition: “Compare at price is greater than product price”. This automatically includes every product with a compare-at price, and automatically removes products when you restore their prices after the sale. This is the most efficient approach for managing your sale page.
Collection page optimisation
- Write a clear collection title and description that includes relevant keywords for SEO
- Upload a sale-themed collection image
- Sort products by discount percentage (highest first) or by popularity to put your strongest offers front and centre
- Add sub-collections by category if your sale spans multiple product types

Site-wide sale messaging
Your sale needs to be visible immediately when customers arrive on your site. Key elements:
Announcement bar
Update your theme’s announcement bar to promote the sale. Keep the message concise: “Sale: Up to 50% off — Shop now”. Link it to your sale collection page. Most Shopify themes allow you to customise the announcement bar in the theme editor.
Homepage hero banner
Replace your standard homepage hero banner with sale creative. Include clear messaging about the discount, a prominent CTA button linking to the sale page, and the sale end date if applicable. Prepare this creative in advance — it should be ready to swap in with minimal effort on launch day.
Product page badges
Many Shopify themes automatically display “Sale” badges on product cards when a compare-at price is set. If your theme does not do this, consider adding a sale badge through theme customisation. These visual indicators help customers identify sale items when browsing collection pages.
Bulk price updates for large catalogues
If your catalogue has hundreds or thousands of products, updating prices individually is impractical. Here are your options:
Shopify bulk editor
Select multiple products in Shopify Admin > Products, then use the bulk editor to update pricing fields. This works well for up to 100-200 products. For larger updates, the CSV approach is more efficient.
CSV export and import
Export your products as a CSV, update the pricing columns in a spreadsheet (Google Sheets or Excel), and reimport. The key columns are “Variant Price” and “Variant Compare At Price”. Use spreadsheet formulae to calculate sale prices in bulk — for example, multiplying the original price by 0.7 for a 30% off sale.
Third-party apps
Apps like Matrixify, Bold Discounts, or Amai Bulk Discount & Sales enable scheduled price changes, bulk rule-based discounting (for example, 20% off all products tagged “summer”), and automatic price restoration. These are particularly useful if you run frequent sales and want to avoid manual CSV management.
Discount stacking and combination rules
Discount stacking is one of the most common sources of margin leakage during sales. Shopify’s combination settings let you control how discounts interact:
- Product discounts (compare-at pricing) cannot be controlled through Shopify’s combination settings — they are always visible. To prevent codes from stacking with sale prices, configure your codes to not combine with product discounts.
- Automatic discounts and discount codes can be configured to combine or not combine with each other.
- Shopify Plus merchants can use Shopify Functions (formerly Scripts) for more granular control over discount logic.
Test every combination scenario before launching your sale. The most expensive stacking issues are ones you discover from customer complaints after the sale has been running for hours.
Testing your sale before launch
Thorough testing prevents costly errors. Here is a pre-launch testing checklist:
- Place test orders with sale-priced products to verify correct pricing
- Test discount codes in the checkout to ensure they apply correctly
- Verify that discount codes do not stack with sale pricing (unless intended)
- Check that the sale collection page shows the correct products
- Verify announcement bar and homepage banners display correctly
- Test the mobile experience — product pages, collection pages, and checkout
- Confirm that shipping calculations work correctly with sale prices (especially if you have free shipping thresholds)
- Check your Google Shopping feed reflects the correct sale prices
- Verify email links in your launch campaign point to the correct pages
- Test with different customer accounts (new, existing, VIP) to verify eligibility rules
For more on ensuring your Shopify store performs well under load, see our guide on Core Web Vitals on Shopify.

Post-sale cleanup and price restoration
The post-sale cleanup is the step most brands forget or rush. A clean restoration to normal trading is essential.
Price restoration
If you used compare-at pricing, restore original prices by either removing the compare-at price field (setting it to blank) or reimporting your pre-sale CSV backup. Verify that no products still show sale pricing after the restoration.
Discount deactivation
Deactivate any discount codes and automatic discounts that should no longer be active. If you used scheduled end dates, verify they worked correctly. A discount code that remains active beyond the sale period is a margin leak waiting to happen.
Site messaging removal
Update your announcement bar, homepage banner, and any sale-specific navigation links. Remove or update sale badges. Your site should reflect normal trading within hours of the sale ending.
Google Shopping feed update
Verify that your Google Shopping feed reflects restored prices. If your feed updates on a schedule, force a manual refresh to ensure sale prices are not still showing in Shopping results after the sale has ended.
Analytics and reporting
Run a post-sale report covering: total sale revenue, number of orders, average order value, discount usage, margin impact, and channel attribution. This data informs your next sale’s strategy.
For broader guidance on ecommerce analytics, read our guide on ecommerce analytics setup and what to track.
Setting up a sale on Shopify is not complicated, but it requires attention to detail. The mechanics are straightforward — compare-at prices, automatic discounts, discount codes — but the potential for errors is high if you rush the setup, skip testing, or forget the post-sale cleanup.
Take the time to plan your sale properly, test every element before launch, and restore your store to normal trading promptly after the sale ends. These habits prevent the margin leakage, customer confusion, and operational stress that poorly executed sales create.
If you need help configuring your Shopify store for a sale or seasonal promotion — from technical setup to email campaign integration — get in touch. We help UK ecommerce brands run sales that work smoothly and profitably.