Customer conditions

Last updated: September 23, 2026

Customer conditions target who is buying: country, state or province, customer tags, login status, lifetime order count, and lifetime spend. They power location-based compliance fees (only Colorado pays the delivery fee) and customer-class rules (wholesale accounts skip the surcharge).

Customer country

Rules: is one of, is not one of. Value: pick one or more countries from the list; FlexiFees stores Shopify's country codes and shows the names. About the pickers.

Because you pick from a list, there are no code puzzles (GB is the United Kingdom, DE Germany) and no typos. Logged-in customers match by their default address country; guests by the cart's shipping address or, failing that, the storefront-detected country. Country DE is half of the Pfand rule; is not one of your home markets drives an international handling fee.

Timing note. A logged-in customer's default address is cached briefly (up to about 3 minutes). After editing an address, allow a few minutes plus a cart change before the fee reacts.

Logged-in customer state / province

Rules: is one of, is not one of. Value: pick a country, then its states or provinces, from as many countries as you need. FlexiFees stores Shopify's own codes and shows the names, so "Québec" versus QC can no longer go wrong.

The precision tool for US state fees: CO for the Colorado Retail Delivery Fee, MN for Minnesota, CA for CRV and the e-waste fee. Several states combine in one list for multi-state programs like mattress recycling. Some codes are shared between countries (CO is Colorado, but also Cork and Como), so add a Customer country condition to pin the country.

Logged-in customers only. The fee is added in the cart, before checkout asks for an address. FlexiFees knows the state for logged-in customers with a saved default address. For guest checkouts the state is only known later, at checkout, so state-based fees do not apply to guest carts today. A cart-page ship-to-state selector is planned. The default address is cached for up to about 3 minutes after an edit.

Customer tag

Rules: contains, does not contain, is one of, is not one of.

Matches tags on the customer record, so it works for logged-in customers (guests never match a positive rule). The classic B2B lever: tag wholesale pays a handling fee, or is exempted from one, without touching your products. Tag edits take up to a few minutes (cache) plus a cart change to show.

Customer is logged in

Rules: is equal to. Values: yes / no.

Whether the session belongs to a signed-in customer. Charge guests a verification or handling fee that account holders skip, or make a fee exclusive to account holders. Updates on the next cart change after login.

Customer order count (lifetime)

Rules: is greater than or equal to, is less than or equal to, is equal to, is not equal to.

The number of orders the logged-in customer has placed in your store; guests never match. Is equal to 0 targets true first-time buyers (a new-customer service fee), at least 5 waives a fee for regulars. Shopify updates the count with a short delay and may skip unpaid or cancelled orders, so treat it as roughly right rather than instant.

Customer total spent (lifetime)

Rules: is greater than or equal to, is less than or equal to, is equal to, is not equal to.

Lifetime spend in your store currency, for logged-in customers; money, not an order count. At least 1000 makes a clean VIP waiver: loyal customers stop paying the surcharge automatically. Like the order count, it refreshes with a short delay and nets out refunds.

Related

Start free trial on Shopify