A sale collection sounds simple.
You want one place where shoppers can see products that are currently on sale.
But in Shopify, there are a few different ways to build that collection, and they do not all behave the same way.
You can use compare-at price.
You can use product tags.
You can build a manual collection.
You can mix collection rules with your own cleanup process.
The right choice depends on how your store runs sales and how much cleanup you want to do by hand.
Quick answer
The simplest way to create a Shopify sale collection is to create a smart collection and use a condition that includes products with a compare-at price.
Shopify’s smart collection docs explain that smart collections include products based on conditions you set, and Shopify’s smart collection conditions docs include compare-at price as a condition.
That works when compare-at price is a reliable signal in your store.
If your sale workflow depends on a tag like
saleoron-sale, you can also create a smart collection based on that product tag. The catch is that the tag needs to stay accurate when products go on sale or come off sale.
What a sale collection does
A sale collection groups products that should be shown together as discounted, marked down, or part of a sale.
That might be:
- a general Sale collection
- a Clearance collection
- a seasonal sale collection
- a Last chance collection
- a collection linked from your main menu
- a collection used in email or ads
The collection itself does not create the sale.
It only groups products.
The sale pricing comes from your product prices, compare-at prices, discounts, or other pricing setup. The collection just decides which products belong together.
That distinction matters.
If the collection rule is wrong, the sale collection is wrong.
Option 1: Use compare-at price
Compare-at price is the native Shopify signal many merchants use for sale pricing.
Shopify’s sale pricing docs explain that a sale price can display when the compare-at price is higher than the product price.
For example:
- Price:
$20 - Compare-at price:
$30
That tells Shopify and your theme that there is a price comparison to show.
A sale collection can use compare-at price as the collection rule.
That is useful because the collection can follow pricing data instead of requiring a separate sale tag.
But it works best when compare-at price is used cleanly across the store.
If compare-at prices are old, inconsistent, copied from previous campaigns, or applied only to some variants, the collection can get messy.
Option 2: Use a sale tag
Another common setup is a tag-based sale collection.
For example, you might create a smart collection where:
- Product tag is
sale
Shopify’s tag documentation explains that product tags can help organize products and can be used as conditions for smart collections.
Then any product with the sale tag appears in the sale collection.
This is simple and easy for a team to understand.
It also gives you control.
Maybe not every product with a compare-at price should appear in the public Sale collection. Maybe clearance products use a different tag. Maybe a discounted replacement part should not be merchandised as a sale item.
Tags let you decide what belongs.
But tags come with a chore.
Someone has to add the tag when the product goes on sale and remove the tag when the sale ends.
If that does not happen, the sale collection falls out of sync.
Compare-at price vs sale tags
Compare-at price and sale tags are related, but they are not the same job.
Compare-at price is pricing data.
A sale tag is organization data.
A product can have compare-at pricing without a sale tag.
A product can have a sale tag even after the compare-at price is removed.
A product can be discounted in one variant but not another.
That is why sale collection setup can get annoying.
If your collection uses compare-at price, the collection depends on pricing fields being accurate.
If your collection uses tags, the collection depends on tags being accurate.
Neither setup is magic.
Both need clean product data.
How to create the collection
The exact Shopify admin screens can change, but the basic idea is the same.
- Open Shopify admin.
- Go to Products > Collections.
- Create a new collection.
- Choose smart collection if you want products added automatically by rules.
- Add a condition for the sale signal you want to use.
- Save the collection.
- Check which products appear.
- Adjust the rule if the wrong products show up.
For a compare-at price collection, use a compare-at price condition if it fits your store’s setup.
For a tag-based sale collection, use a product tag condition such as:
- Product tag is
sale
After saving, review the collection like a shopper would.
Do the right products show up?
Are old sale products still there?
Are current sale products missing?
That review matters more than the rule looking correct on paper.
When compare-at price rules work well
Compare-at price rules work well when your store uses compare-at price consistently.
This can be a good fit if:
- compare-at price always means “currently on sale”
- old compare-at prices are removed after sales end
- variants are handled consistently
- sale products should appear automatically
- your team does not need a separate sale tag workflow
This setup keeps things closer to Shopify’s native pricing data.
It can reduce manual tagging if your compare-at prices are clean.
The catch is that compare-at price needs to stay clean.
If compare-at prices are used for other reasons, the sale collection may include products you did not intend.
Where compare-at price rules get annoying
Compare-at price rules get annoying when your pricing data has mixed meanings.
For example:
- old compare-at prices were never removed
- compare-at price is used for MSRP, not active sale pricing
- only one variant has compare-at price
- clearance products need separate treatment
- a product is technically discounted but should not be in the public Sale collection
- imported products bring over compare-at values from another platform
Shopify smart collection conditions can be literal.
If the rule says a product belongs, the product belongs.
That might not match how you think about the sale.
When sale tags work better
Sale tags work better when you want more control over merchandising.
A sale tag can say:
This product belongs in the sale collection right now.
That can be cleaner than relying only on compare-at price, especially if your store has exceptions.
Tag-based sale collections are useful when:
- your team understands the tag workflow
- the sale collection should be curated
- compare-at price is not a reliable signal
- some discounted products should be excluded
- sale collections are used for merchandising, not just pricing display
The downside is tag cleanup.
If the tag gets stale, the collection gets stale.
A product can stay in the Sale collection after the sale ends. Or a discounted product can be missing because nobody added the tag.
Common mistakes
The first mistake is assuming a sale collection creates the sale.
It does not. The collection groups products. Pricing is handled elsewhere.
The second mistake is using compare-at price without checking old data.
Old compare-at prices can make products appear in a sale collection when they should not.
The third mistake is using a sale tag without a cleanup process.
Adding sale is easy. Removing it after the sale ends is the part that gets missed.
The fourth mistake is forgetting variants.
A product might have one discounted variant and several regular-priced variants. Decide whether that should count as a sale product for your store.
The fifth mistake is not reviewing the collection after setup.
Always check the actual products that appear. The collection rule may be technically correct and still not match what you wanted.
When manual cleanup is enough
Manual cleanup is fine when sales are simple.
You can probably handle it by hand if:
- your catalog is small
- sales are rare
- one person manages pricing
- sale tags are easy to review
- sale collections are small
- products do not have many variants
In that case, keep it simple.
Use compare-at price or a sale tag. Review the collection. Fix anything obvious.
You do not need a complicated sale system for a small sale collection.
When automation starts to help
Automation helps when sale collection cleanup keeps coming back.
If you use a sale tag to control the collection, the tag needs to follow the pricing rule.
A useful cleanup workflow is simple:
- Check whether a product has a variant where price is lower than compare-at price.
- Add the sale tag when the product matches the rule.
- Remove the sale tag when the product no longer matches.
- Let the sale collection follow the tag.
That does not create the discount.
It does not run the campaign.
It only keeps the tag from falling behind the pricing.
Tiny tool option
SaleTag adds or removes a sale tag when a product has at least one variant priced below compare-at price.
That can help if your sale collection is based on a tag like
saleoron-sale.SaleTag does not create discounts. It does not edit prices. It does not change compare-at prices. It does not edit your theme or control storefront sale badges.
It is built for the boring cleanup work: keeping sale tags in sync when product pricing changes.
Keep the collection rule simple
A sale collection should be easy to explain.
If compare-at price means “on sale” in your store, a compare-at price rule may be enough.
If the sale collection needs more control, use a sale tag.
Either way, the collection is only as good as the data behind it.
Keep the rule simple. Keep the cleanup clear. And if the same tag cleanup keeps coming back, automate that small piece.