How conditions work
Conditions, called display rules in earlier versions of the app, are the checks a customization makes before it does anything. A block only shows when its conditions pass. A function only applies when its conditions pass.
Functions, and blocks made before the Content block, have a Conditions card with two choices:
| Always on | Only sometimes | |
|---|---|---|
| Blocks | Show for all orders | Show only when conditions pass |
| Functions | Apply to all checkouts | Apply only when conditions pass |
Pick the second option to start adding conditions.
Content blocks, automations, Product offers and Custom fields forms, and the progress bars, Reviews and What happens next made since the Content block, have a Who sees it card instead, with their own list of conditions. Choose Only checkouts that match conditions (Only checkouts that match the rules in content blocks, Only buyers who match conditions on a Product offer that shows on product or cart pages) to add them. The rest of this page is about the Conditions card.
Block not showing, or a function not applying? Start with common mistakes.
Groups and conditions: AND and OR
Section titled “Groups and conditions: AND and OR”Conditions are arranged in groups.
- Inside a group, conditions are joined with OR. At least one condition in the group has to pass.
- Groups are joined with AND. Every group has to pass.
In the builder, the first group starts with Show block IF (or Apply IF for functions). Each later group is labeled AND. Inside a group, the second and later conditions are labeled OR.
- Click Add condition to add your first condition.
- Click AND at the bottom of the card to start a new group.
- Click OR at the bottom of a group to add another condition to that group.
A worked example
Section titled “A worked example”You want a block to show to customers in Canada or the US, but only when the cart total is more than $100:
Group 1: Shipping country includes Canada OR Shipping country includes United StatesANDGroup 2: Cart total is more than 100| Customer | Group 1 | Group 2 | Block shows? |
|---|---|---|---|
| Canada, $150 cart | passes | passes | Yes |
| US, $80 cart | passes | fails | No |
| UK, $200 cart | fails | passes | No |
To build it: click Add condition, pick Shipping country, then click OR on that group and add a second Shipping country. Then click AND and add Cart total.

What you can’t build
Section titled “What you can’t build”Conditions always take the shape (A or B) and (C or D). There’s no way to say (A and B) or (C and D) in one customization. When you need that, create two customizations with the same content, one for each side of the OR.
Adding several conditions at once
Section titled “Adding several conditions at once”The Add condition picker lets you tick more than one condition before clicking add. Every condition you tick goes into the same group, so they’re joined with OR, even if you opened the picker with the AND button.
To join conditions with AND, add them one at a time, clicking AND before each one.
Finding conditions
Section titled “Finding conditions”The picker has a search box and filters: for blocks, All, Cart, Line item, Customer, Discount, Shipping, Payment, Date & time and Other. Functions have their own filters, such as B2B and Shipping & delivery. Search matches condition names, so typing zip, tag or date is usually the fastest way to find a condition.
Functions have fewer conditions than blocks, and each function type offers a different list. See conditions for blocks and conditions for functions.
Numbers and comparisons
Section titled “Numbers and comparisons”Number conditions offer is equal to, is not equal to, is more than and is less than.
is more than and is less than are strict. There’s no “at least” or “at most”. For “$50 or more”, use is more than 49.99. For “3 items or fewer”, use is less than 4.
Avoid is equal to for money amounts. The total has to match to the cent, so it rarely passes.
Currencies
Section titled “Currencies”Money conditions work differently for blocks and functions.
- Blocks made before the Content block compare the number you type directly with the amount in the customer’s checkout currency. No conversion happens, even though the admin shows your store’s currency code next to the field. A Cart total is more than 100 condition means 100 USD for a customer paying in USD and 100 EUR for a customer paying in EUR.
- Functions treat the number as your store’s currency and convert it to the customer’s currency before comparing.
- Product offers convert too: their spend tiers, goals, and Cart total and Cart subtotal conditions are typed in your store’s currency and converted at Shopify’s rate. See amounts in other currencies.
- Content rules convert the same way.
If you sell in more than one currency, give other blocks with money conditions a market. Create one block per market, set each block’s Markets (under Where it shows) to that market, and use amounts in that market’s currency. See markets.
When conditions are checked
Section titled “When conditions are checked”Blocks made before the Content block check their conditions when checkout loads and again whenever the customer changes something the conditions depend on: their cart, address, shipping method, payment method, discount codes, or login. A block can appear or disappear while the customer is on the page.
A few conditions don’t trigger a re-check on their own. The block updates the next time something else changes.
- Date, day, and time. A block doesn’t appear at midnight while the page sits open.
- The order note.
- Tax amounts.
- Cart attributes and the selected shipping option, in some cases.
Functions run on Shopify’s servers each time the checkout changes, so they always use current data.
Content rules are checked again on every change, the order note and cart attributes included, and date and time rules change the block at their minute.
Markets
Section titled “Markets”Blocks (under Where it shows) and some functions have Markets settings as well as conditions. Apply to all markets leaves it up to the conditions. Apply to selected markets only hides the customization in every other market, whatever the conditions say. Product offers have no Markets setting: use the Market condition in Who sees it. See markets.
When more than one block passes
Section titled “When more than one block passes”Conditions decide whether a block is allowed to show. When several blocks are allowed in the same spot in checkout, one is picked at random. To control exactly which block shows where, see choosing which block shows.
The Content, Product offers and Custom fields app blocks don’t pick: every block, offer or form that passes shows, stacked.
Common mistakes
Section titled “Common mistakes”The block never shows. Check that every group can pass at the same time. Two conditions in separate groups like Shipping country includes Canada AND Shipping country includes United States can never both be true. Put them in the same group so they’re joined with OR.
The condition passes before the customer has entered anything. Address, shipping, and payment conditions see empty values until the customer fills them in. A does not include condition passes on an empty address, and an includes condition fails.
“Does not include” behaves unexpectedly with tags.
Line item tags does not include sale passes as long as at least one product in the cart doesn’t have the tag. To mean “the cart has no sale items”, use Quantity of items with product tags sale is equal to 0.
A money condition works in one currency but not another. Blocks don’t convert currencies, except Product offers. See Currencies above.
Cart total changes during checkout. Cart total is Shopify’s running checkout total, which includes shipping and tax once they’re known. Use Cart subtotal when you want the value of the products only.
Date conditions are a day off. Save the block again. Date uses your store’s time zone, but a block last saved before that change still reads the customer’s clock until it’s saved. Day and Time always use the customer’s device clock and time zone, so allow for customers in other time zones. Product offers’ Day and time condition uses your store’s time zone.
The block changes every time the cart changes. Several blocks pass their conditions in the same spot, so a new one is picked at random each time. Set a Fixed block ID.
