Help with auto tag items based on price condition

Hi Everyone,

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.

Can anyone recommend me a way to do this?

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.

If you don’t mind using third-party apps you can solve this using Product variant field changed trigger from the Flow Companion app.

In the Flow Companion app settings, enable tracking of changes to the product variant fields Compare-at price and Price.

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

and if so, update the presence of the on sale tag depending on the minimum Compare-at price and Price values.

This workflow will automatically keep the on sale tag up to date whenever product prices change.

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 :slightly_smiling_face:

@safibra - what you are describing seems to be a roundabout way to setup the following rules.

  1. Discount items that are full price and not ones that have a compare at price > item price
  2. The discount should only apply to specific brands – you can set this up using a product tag/vendor.

You can do this through a Shopify function based discount app like “Dollarlabs“ where we enable you to set up rules like above and chain them using AND/OR logic.

Plus point is that you don’t have to tag anything or create a collection, as all of these rules can literally live inside the app.

Quick question – are these vouchers discount codes generated in bulk? Or is it like a single code?

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:

  1. Go to App Settings

  2. 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.

image

Hi @safibra,

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?