Skip to main content

Choosing Who Sees an Upsell

Use filters to target an upsell to specific scenarios — cart subtotals, customer segments, products in cart, and more.

Written by Tom Nipravsky

By default an upsell shows to every customer the rest of your configuration allows. Filters let you narrow that down — show the upsell only when a condition is true (or false). You can target by what's in the cart, what the customer's tagged with, whether they're logged in, and more.

The filter system is shared between Checkout and Order-editing upsells; everything in this article applies to both.

Two audience modes

Open the Filters section on the upsell form. The first control is the Audience selector with two options:

Show to all customers

The default. The upsell shows on every checkout (or every order) that meets the rest of your configuration — no filtering on cart contents or customer attributes. Pick this when you want a universal offer.

Match conditions

Switches on the conditions builder. The upsell only shows when the conditions you specify all evaluate to true (or to whatever combination of AND/OR you set). Pick this when you want to scope the offer to a specific scenario.

Building conditions

When you switch to Match conditions, you'll see a list where you can add as many conditions as you need. Each row has:

  • A Field — what to check (e.g. Cart subtotal)

  • A Condition (operator) — how to check it (e.g. Greater than)

  • A Value — what to compare against (e.g. 50)

From the second condition onward, an AND / OR selector appears between rows so you can combine conditions however you like.

Available fields and operators

Field

What it checks

Operators

Cart subtotal

The cart's running subtotal

Greater than / Less than / Equals / Between

Cart total items

Total quantity of items in the cart

Greater than / Less than / Equals / Between

Cart contains product

Whether specific products are in the cart

Contains / Does not contain

Cart contains collection

Whether the cart contains anything from specific collections

Contains / Does not contain

Customer logged in

Whether the customer is signed in

Is (true / false)

Customer tags

Tags applied to the customer record

Contains / Does not contain

A few notes on specific fields:

  • Cart subtotal is interpreted in your shop currency. When the buyer's checkout is in a different currency, the app converts the buyer's total back to your shop currency before evaluating the condition — so a > 50 rule in a USD shop applies whether the buyer is paying in USD, EUR, or GBP.

  • Cart contains product / collection can hold multiple values. Contains matches if any of the listed products / collections are present; Does not contain matches when none of them are.

  • Customer tags are matched exactly (case-sensitive). Make sure the same tag string is applied consistently by whatever process tags your customers.

How conditions combine

Each condition after the first one has an AND / OR selector that controls how it joins to the previous one:

  • AND — both this condition and the previous one must be true

  • OR — either this condition or the previous one must be true

This lets you build expressive rules like:

  • "Cart subtotal > $100 AND customer is logged in"

  • "Customer tag contains vip OR cart subtotal > $200"

  • "Cart contains product from Phones collection AND cart does not contain product from Cases collection"

Tip: If you find yourself building a very complex filter, consider splitting the upsell into two simpler upsells — each with a focused audience. The first matching active upsell wins, so two narrowly-scoped upsells often perform better than one trying to cover too many scenarios.

Worked examples

A handful of common patterns you can copy.

"Only show to customers spending over $100"

  • Audience: Match conditions

  • Cart subtotalGreater than100

"Only show to logged-in customers (so I know who they are)"

  • Audience: Match conditions

  • Customer logged inIsTrue

"Push a phone case when the cart contains a phone"

  • Audience: Match conditions

  • Cart contains collectionContainsPhones

Use this with Manual selection of the matching cases as the product source for a tightly-targeted cross-sell.

"Only on small orders (≤ 2 items)"

  • Audience: Match conditions

  • Cart total itemsLess than3

"Premium offer only — over $200 OR a VIP"

  • Audience: Match conditions

  • Cart subtotalGreater than200

  • ORCustomer tagsContainsvip

A note on Order-editing upsells

When the customer is editing their order and adds a product, then removes it before saving, the removed product does not count as "in the cart" for filter purposes. Filters always evaluate the live state of the order — items the customer rejected don't pollute the conditions.

What's next

Did this answer your question?