Skip to content

Conditions

A condition is a single if clause attached to an operation. Every condition has the same shape:

<field> <operator> <value(s)>

For example: cart total weight equals 5 kg or customer country equals CA.

If you don’t add any conditions to an operation, it always fires. If you add one or more, all of them must be true for the operation to fire (an implicit AND).

The available fields are organized by subject — what part of the cart or customer the field reads.

Subject Field What it reads Type
Cart line product_tags The tags on each product in the cart String (multi)
Cart line shipment_value The shipment subtotal (cart subtotal) Number
Cart line shipment_weight Total weight of items in the shipment Number
Cart line shipment_quantity Total quantity of items in the shipment Number
Customer customer_tags The tags on the logged-in customer String (multi)
Destination country_code The customer’s shipping country (ISO 3166-1 alpha-2) String
Destination province_code The customer’s shipping province / state (ISO 3166-2) String
Destination postal_code The customer’s shipping postal / ZIP code String

The full list with notes is in Condition fields.

  • String fields accept: equals, contains, starts_with, ends_with.
  • Number fields accept: equals, contains, between (a range).
  • Multi-value string fields (like tags) accept: contains (any of the values matches).

The operator menu in the form changes to match the field type.

Number conditions (shipment_value, shipment_weight, shipment_quantity) carry a unit. For weight, the unit is the shop’s default weight unit (set in Settings) at the time the condition was created. Changing the shop default later doesn’t change existing conditions.

You can also override the unit per condition if you want a rule to evaluate against a specific unit (e.g. “more than 10 lb” while the shop default is kilograms).

Each condition has a negate toggle. When turned on, the condition’s meaning flips — it fires when the comparison is not true.

For example, with country_code equals CA and negate on, the condition is “the country is not Canada.” Conditions still combine with AND across the operation.

For multi-value string fields (like tags), the rule “contains” is by default any of — the condition is true if at least one of the listed values matches. The condition has a toggle called all must match which flips it to all of — every listed value must be present for the condition to be true.

Conditions are scoped to a single operation. There is no global AND/OR between operations. If you need OR logic, build two operations with the same action and different conditions.