I am looking for a way to auto tag items as “on sale” at parent level.
We have a substantial catalogue of around 40,000 active SKUs (around 7,000 parent level).
The prices change frequently. Almost every day. An item is defined as “on sale” where the price is less than the compare at price.
For a selection of brands we want to offer a voucher but only where the item is full price and not on sale.
In order to do this, we need to be able to create a smart collection including only products from a defined range of brands where the product is AUTOMATICALLY tagged as “not on sale”. If the tag changes, the product comes out of that collection.
I have tried using flow but flow has a limit of 100 products which is really annoying.
Did you try running the workflow more frequently? You could run it every 10 minutes, which limit your updates. If you do updates in a big batches that makes things more difficult as everything will have the same updated_at time stamp.
Other options:
Use inventory quantity changes to do a price check.
Add more filters to your query. Like maybe you only care about certain collections or products with certain tags.
Use an app trigger like “Product updated” provided by the app Flow helper.
One problem with product updated is that it runs very often and won’t tell you the price changes. There isn’t a price changed event yet that Flow can use to build a trigger, unfortunately.
After that, create a workflow that starts with the Product variant field changed trigger. Then check whether either the Compare-at price or Price field has changed
For auto-tagging 40,000+ SKUs based on price, use a dedicated app like Pro:Tagger or Tag Genie from the Shopify App Store. These handle bulk operations beyond Flow’s 100-product limit and can automatically add/remove “on sale” tags when prices change.
Set rules to tag products as “on sale” when price < compare_at_price, and “not on sale” when otherwise. This will automatically update your smart collections for voucher eligibility.
This is a good explanation of how Flow + Flow Companion can handle price change triggers… that can work nicely for many stores.
Another approach some merchants find easier to maintain over time is to use a rule-based tagging tool that handles price and variant updates automatically.
With a rule system like that:
you set a condition such as “tag as on-sale when price < compare-at price”
tags are added when the rule matches
tags are removed when the rule no longer applies
existing products can be tagged via backfill so everything starts in sync
That reduces the number of steps and workflows to manage, especially if you have frequent price changes or multiple triggers.
Just sharing a simpler alternative that some folks prefer for ongoing tagging logic
Hi, in the app Stack Discounts Pro, you can configure discounts to be automatically skipped for products that are already on sale (i.e., products with a compare-at price).
To enable this behavior:
Go to App Settings
Set Sale price handling → Skip discounts for products on sale
Once this option is enabled, all discounts created in the app will be skipped for products that have a compare-at price.
I saw your post about managing around 40,000 active SKUs with prices changing almost every day, while vouchers should only apply to products that are not already on sale.
How are you preventing voucher and sale-price conflicts today?
Do you have a reliable way to preview which products will qualify before the promotion goes live, or do you verify the result afterward?