New features available! Check the changelog
Subscribfy

Conditions

Control when a discount fires and which lines or options it matches

Conditions decide when a discount fires. They form a boolean tree attached to Branch nodes, and the same builder powers per-line and per-option matching targets.


Three Condition Shapes

ShapePurpose
LeafA single predicate, for example "subtotal is 100 or more"
LogicalCombines several children with AND, OR, or NOT
ArrayIterates a collection and combines the per-element results

Array conditions power line-level and delivery-option-level filtering. They loop over each cart line or each delivery option and evaluate an inner condition per element.

A tree using all three shapes

This example reads: "cart is 100 or more, AND (customer is logged in OR shipping to Germany), AND at least one line is from vendor Acme".


Logical Operators

OperatorMeaning
ANDAll children must be true
ORAt least one child must be true
NOTNegates a single child

Trees can nest to any depth, so you can express combinations like "A AND (B OR NOT C)".


Comparison Operators

Fourteen operators are available for leaf predicates.

OperatorApplies to
EqualsAll types
Not equalsAll types
Greater thanNumbers
Greater than or equalNumbers
Less thanNumbers
Less than or equalNumbers
In listAll types (value is a list)
Not in listAll types (value is a list)
ContainsText
Does not containText
Starts withText
Ends withText
Is nullAll types (no value needed)
Is not nullAll types (no value needed)

Fields You Can Test

Every leaf predicate targets one of the following fields read from the cart at checkout.

FieldType
Cart subtotal amountNumber (money)
Cart total amountNumber (money)

Reachable through an Array condition that iterates each cart line.

FieldType
Line idText
Line quantityNumber
Line subtotal amountNumber
Line amount per quantityNumber
Product idText
Product titleText
Product vendorText
Product typeText
Product is a gift cardYes / No
Variant idText
Variant SKUText
Variant titleText
Variant requires shippingYes / No

Reachable through an Array condition that iterates each delivery option, except address which is available directly.

FieldType
Delivery option handleText
Delivery option titleText
Delivery option costNumber
Delivery method typeText
Shipping country codeText (two letters)
FieldType
Is authenticated (logged in)Yes / No
Buyer emailText
Customer idText
Customer emailText

Any field that expects a Shopify id (product, variant, collection, customer, company) is filled with a resource picker that searches Shopify, so you never type raw ids.


Not Yet Available

The following fields are not exposed as condition sources at launch: custom metafields on product, customer, or cart; customer tags; order-history counters such as number of orders and amount spent; B2B company and company location; delivery estimated dates; cart tax and duty amounts; and weight. See How It Works for the roadmap.


Was this page helpful?

On this page

AI Chat

Ask a question about Subscribfy