# Condition reference

> Every condition you can use in a checkout rule, what it checks, and which operators it offers.

Source: https://backtrackhq.com/docs/building-rules/condition-reference/

This page lists every condition in the rule builder, grouped the way the
condition dropdown groups them. Each row says in one line what the condition
checks.

> **Note:** Not every condition is in every rule. Which conditions you see
> depends on the rule type (for example Hide shipping methods) and on the
> rule set you pick. Use **Search for a condition...** in the **Rule sets**
> card to find the set that has the one you need.

> **Caution:** Conditions marked "(Plus required)" only work when your
> checkout supports checkout extensibility (Shopify Plus). Development stores
> always work. They do not match in accelerated checkouts such as Apple Pay
> or Google Pay.

## Always

| Condition | What it checks |
|---|---|
| **Always** | Always true. Use it when the action should run on every checkout. |

## Date Time

Times use your store's timezone.

| Condition | What it checks |
|---|---|
| **Day of the week** | The current day, for example Saturday or Sunday. |
| **Time of the day** | The current time of day. |
| **Day of the week and Time of the day** | A day and a time window together. |
| **Date and time** | A calendar date and time. |
| **Date, day of the week and time** | A date, a day and a time together. |

## Customer

| Condition | What it checks |
|---|---|
| **New customer** | The shopper has no previous orders. A shopper who is not logged in also counts as new. |
| **Repeat customer** | The shopper is logged in and has at least one previous order. |
| **Customer total previous spent** | How much the customer has spent with you before, in store currency. |
| **Customer tags** | The tags on the customer's Shopify profile. |
| **Customer is logged in** | The shopper is signed in to a customer account. |
| **Customer is not logged in** | The shopper checks out as a guest. |
| **Email address** | The shopper's email address. |

## B2B Details

| Condition | What it checks |
|---|---|
| **Purchasing company** | The B2B company the shopper is purchasing for. |

## Order Details

| Condition | What it checks |
|---|---|
| **Order total amount** | The order total, in store currency. |
| **Order subtotal amount** | The order subtotal, in store currency. |
| **Order total quantity** | How many items are in the cart in total. |
| **Order total weight** | The cart's total weight. Pick a unit: Pound (lb), Ounce (oz), Kilogram (kg) or Gram (g). |

## Cart Details

| Condition | What it checks |
|---|---|
| **Cart attribute** | A cart attribute, by its key and value. |
| **Item quantity per SKU** | The quantity of one cart line with a given SKU. It matches when any single line with that SKU is in range. |
| **Total item quantity of a SKU** | The quantity of a given SKU added up across all cart lines. |

## Cart Has Any Items

| Condition | What it checks |
|---|---|
| **SKU** | Any cart item has one of these SKUs. |
| **Product tags** | Any cart item's product has one of these tags. |
| **Collection** | Any cart item is in one of these collections. |
| **Cart has subscription item** | At least one item is a subscription. |
| **Cart has no subscription item** | No item is a subscription. |
| **Any item cost per quantity** | The price of one unit of any cart item, in store currency. |

## Shipping

| Condition | What it checks |
|---|---|
| **Selected shipping method** | The name of the delivery method the shopper picked. |
| **Selected shipping type** | The kind of delivery: Pickup, Local delivery, Shipping, Pickup point, Retail or None. |

## Discounts

| Condition | What it checks |
|---|---|
| **Discount code or automatic discount** | One of the discounts you select is applied at checkout. Works on all plans. |
| **Any discount applied** | Any discount code or automatic discount is applied anywhere in the cart. |
| **Cart item has a discount applied** | A cart item has any discount applied. |
| **Cart item has one of selected discounts** | A cart item has one of the discounts you select. |
| **Total discount amount (any discount type)** | The total of all discounts, in store currency. |
| **Total discount percentage (any discount type)** | All discounts as a percentage of the cart subtotal before discounts. |
| **Order discount amount** | The order discount total, in store currency. |
| **Order discount percentage** | Order discounts as a percentage of the subtotal. |
| **Product discount amount** | The product discount total, in store currency. |
| **Product discount percentage** | Product discounts as a percentage of the subtotal. |
| **Shipping discount amount** | The shipping discount total, in store currency. |
| **Shipping discount percentage** | The shipping discount as a percentage of the selected shipping rate. |
| **Discount code or automatic discount (wildcard, Plus required)** | Discount codes or automatic discount titles you type. `*` is a wildcard. |

Percentage examples from the app: a 10% discount code on a 100 subtotal is
10. Free shipping on a 15.00 rate is 100.

The wildcard condition matches a pattern: `summer*` matches `SUMMER10` and
`SUMMER-BOGO`.

### Same cart item

In a checkout validation rule using **Rule set six**, a rule group can turn
on **All conditions must match the same cart item**. Then every condition
in that group is checked against one cart item. Example: "the discounted
item is also the item tagged `final-sale`", not "some item is discounted and
some other item is tagged".

## Payment

| Condition | What it checks |
|---|---|
| **Selected payment method (Plus required)** | The payment method the shopper selects, for example Cash on Delivery. |

## Shipping Address

| Condition | What it checks |
|---|---|
| **Has shipping address** | The checkout has a shipping address. |
| **Has no shipping address** | The checkout has no shipping address. |
| **Has P.O. box address** | The address is a P.O. box. Checkout validation only. See [what counts](https://backtrackhq.com/docs/rules/example-block-po-boxes/#what-counts-as-a-po-box). |
| **Has no P.O. address** | The address is not a P.O. box. |
| **Address line 1 and 2** | Both lines read together as one text. With **contains**, a value in either line matches. |
| **Address line 1** | Address line 1 only. |
| **Address line 2 (Apartment, suit, etc)** | Address line 2 only. |
| **Full name** | The full name on the address. |
| **First name** | The first name on the address. |
| **Last name** | The last name on the address. |
| **Company** | The company on the address. |
| **Phone number** | The phone number on the address. |
| **City / Area** | The city or area. |
| **Province code / State code** | The province or state, picked from a list. |
| **Country code** | The country, picked from a list. |
| **Zip code / Postal code** | The zip or postal code. |

## Comparisons

| Condition | What it checks |
|---|---|
| **Item quantity per SKU vs Item quantity per SKU** | Compares the quantity of one SKU with another SKU, with a multiplier. |

The multiplier is in the **Multiplier** field.

## Operators

The operator list depends on the kind of value.

### Text

**contains**, **does not contain**, **is**, **is not**, **is empty**, **is
not empty**. Matching ignores upper and lower case. You can type several
values separated by commas. See
[Several values in one field](https://backtrackhq.com/docs/building-rules/comma-separated-values/).

### Amounts, percentages, quantities and weight

**is greater than or equals**, **is less than or equals**.

### SKU quantity

**Quantity is greater than or equals**, **Quantity is less than or equals**.

### SKU comparison

Each starts with **has quantity which is**, then one of:

- **equal to** or **not equal to**
- **greater than or equals to** or **less than or equals to**
- **multiple of** or **not multiple of**

### Lists (tags, collections, countries and similar)

- **Has any of these values** or **Does not have any of these values**
- **Has only these values**
- **Has empty value** or **Does not have empty value**
- **is one of** or **is none of**

### Dates and times

- **is** or **is not**
- **is between** or **is not between**. A range reads "from ... to ...".
- **is before** or **is not before**
- **is after** or **is not after**
