Skip to main content

Filter conditions reference

Every condition you can add to a product source filter, and which sets accept it.

Written by Shashank Agrawal

The conditions offered when you press Add condition on a product source depend on which set you are adding to. There are two vocabularies, because the two sets are evaluated in completely different ways.

You never have to work this out yourself — the menu only ever offers what the set you are in can actually use. This page explains why the lists differ and what each condition does.


​

The two vocabularies

Static sets are compiled into a database query and run across the whole catalogue. Every indexed product field is available.

Dynamic sets run in memory against products that have already been chosen, comparing them to the product the visitor is viewing. Only a few attributes make sense there, so the list is short.

The one exception is Best Seller, whose dynamic set is compiled into the query like a static one — so it gets the full list below.


​

Conditions in static sets


​

Tags

Condition

Keeps

has tag

Products carrying this tag.

does not have tag

Products not carrying this tag.

One tag per condition. For two tags, add two conditions and choose Match ALL or Match ANY.


​

Category

The product type from Shopify.

Condition

Keeps

is

Products whose category matches this value exactly.

is not

Everything else.

matches the current product

Products in the same category as the one being viewed.


​

Vendor

Condition

Keeps

is

Products from this vendor.

is not

Products from any other vendor.

matches the current product

Products from the same vendor as the one being viewed.


​

Price

Condition

Keeps

is greater than / is greater than or equal to

Products above, or at and above, an amount.

is less than / is less than or equal to

Products below, or at and below, an amount.

is / is not

Products at exactly that amount, or not.

is within ± % of the current product

Products priced near the one being viewed. 20% around a ₹1,000 product keeps ₹800 to ₹1,200.

is at or above the current product

Upsells.

is at or below the current product

Cheaper alternatives.


​

Metafield

Condition

Keeps

equals

Products whose metafield holds exactly the value you type. Address the metafield as namespace.key.

matches the current product

Products whose metafield holds the same value as the one being viewed. Products that do not carry the metafield at all are ignored by this condition.

Add more than one metafield to a single condition with Add another metafield.


​

Conditions in dynamic sets


​

Tags of the current product

excludes the matching tags of the current product.

You list a set of tags to watch. Only those also present on the product being viewed are used, and recommendations carrying them are dropped.

The common use is out-of-stock size tags. List OOS32, OOS34, OOS36; if the product being viewed is out of stock in 34, recommendations also out of stock in 34 are dropped, and the other two tags do nothing. If the current product carries none of them, nothing is filtered.


​

Metafield of the current product

matches the current product. Keeps products whose metafield holds the same value as the product being viewed — a pattern, a colour group, a fit code. Address it as namespace.key.


​

Variant availability

is in stock for at least N% of variants.

Reads as a sentence: 70% of variants where inventory.isAvailable is true, and optionally counting only variants whose name contains "Standard".

The scope is what makes this useful. Without it, every variant counts, so a product with many discontinued colourways fails on stock it does not need. Scoped to variants whose name contains a particular option, only the variants you care about are measured.

Three parts of the condition are fixed, because only one value works for each: the field counted is always inventory.isAvailable (the only yes/no a variant carries), the scope reads the variant name, and the scope comparison is contains.

A product with no variants left after scoping is kept rather than dropped.


​

"Matches the current product" needs a current product

Every condition phrased that way compares against a reference product. That only exists when the entry point is Current Product — or, in a static set, when the recommendation is being built for a specific product, as it is during Similar generation.

Where there is no reference product, those conditions are not offered.


​

Conditions you cannot edit here

A condition may appear as a read-only row labelled Grouped condition. That means it is a nested group, or it names a field this editor does not offer — usually set up for you by Cooee.

It still runs exactly as before, and it is saved untouched when you save the source. You can delete it if you no longer want it, but you cannot edit it in place. Ask your Cooee contact if you need one changed.

Did this answer your question?