Checkout ExtensionsDocs
Reference

Conditions

Conditions let you control exactly when an extension block is shown. Each rule can have one or more conditions combined with AND (all must pass) or OR (any must pass) logic.

AND logic

Every condition in the rule must be true for the block to show. Use this to narrow your audience — e.g. cart total > $50 and customer is logged in.

OR logic

Any single condition being true is enough to show the block. Use this to broaden your audience — e.g. customer tag is "vip" or customer tag is "wholesale".

General

Default behaviour with no targeting.

ConditionWhat it checksOperatorsExample value
Always showNo conditions — block is always visible
🛒

Cart

Target based on what is in the cart.

ConditionWhat it checksOperatorsExample value
Cart totalCart subtotal amount> · ≥ · < · ≤ · =50.00
Cart item countTotal number of items in cart> · ≥ · < · ≤ · =3
Cart attributeCustom cart attribute key equals a valueis · is not · contains · not containsKey: gift Value: true
Product in cartA specific product (by ID or title) is in the cartis · is notSummer T-Shirt
👤

Customer

Target based on who is checking out.

ConditionWhat it checksOperatorsExample value
Customer logged inCustomer has an account and is signed in
New customerCustomer has zero previous orders
Customer tagCustomer has a specific Shopify tagis · is notvip
Customer countryCustomer's billing / localization country codeis · is notUS
Customer emailCustomer's email addressis · is not · contains · starts with · ends with@company.com
Customer typeB2B (company account) or B2C (regular customer)is · is notb2b or b2c
📍

Shipping Address

Target based on where the order is being shipped.

ConditionWhat it checksOperatorsExample value
CountryShipping destination country (ISO code)is · is notUS · GB · AU
Province / StateShipping state or province codeis · is notCA · NY · TX
CityShipping city nameis · is not · containsNew York
ZIP / Postal codeShipping postal codeis · is not · contains · starts with10001
Address line 1Street address (first line)is · is not · contains123 Main
Address line 2Apt / unit / suite (second line)is · is not · containsApt
🔧

Checkout Context

Target based on selections made during checkout.

ConditionWhat it checksOperatorsExample value
Shipping methodName of the selected shipping optionis · is not · containsExpress
Payment methodName of the selected payment methodis · is not · containsPayPal
LanguageCheckout language (ISO code)is · is noten · fr · de
MarketShopify market handleis · is notus · eu · au
🗓️

Date & Time

Target based on when the checkout happens.

ConditionWhat it checksOperatorsExample value
DateCurrent date compared to a target dateafter · before · on2024-12-25
Day of weekDay the checkout is taking placeis · is notmonday · friday
TimeCurrent time compared to a target time (24 h)after · before14:00

Tips

  • String comparisons are case-insensitive — "VIP", "vip", and "Vip" all match.
  • Customer tags require a tag lookup at checkout load time. Avoid combining many tag conditions in a single rule.
  • Cart attribute conditions require the attribute to be set by your storefront or another app before checkout.
  • Date and time conditions use the customer's local time on the server at the moment of checkout load.
  • For B2B targeting, set Customer type = b2b — this matches any customer with a linked company account.