Checkout Upsells
Overview
Checkout Upsells render a pre-purchase offer block inside Shopify Checkout. When a rule’s trigger conditions match the live cart, the block appears with the offered product and an “Add to order” button. A single click adds the item to the cart without the buyer ever leaving checkout.
Upsells use the same condition engine as discounts, so you can target offers by cart value, customer tags, authentication status, product presence, and cart attributes.
Plan requirement: Pro (up to 10 rules) and Enterprise (up to 30 rules). Starter plans do not include checkout upsells.
Use Cases
- Protection plans — Offer a 2-year warranty SKU when the cart subtotal exceeds $200.
- Free-shipping unlock nudges — For carts between $30 and $45, offer a low-cost item that nudges the buyer past your free-shipping threshold.
- Matching accessories — When a specific SKU is in the cart, promote its companion product.
- VIP-only offers — Expose an exclusive variant only to customers tagged
VIP.
How It Works
- You create a rule with a set of trigger conditions and one or more offer variants.
- At checkout, the upsell block evaluates your rule against the live cart. If every trigger condition passes, the offer renders.
- When the buyer clicks “Add to order”, the offered variant is added to the cart and attribution is stamped onto the line so analytics can track the accept.
The block refreshes automatically as the cart changes, so if the buyer removes an item that made the trigger conditions pass, the offer disappears.
Placement Options
Each rule has a placement that controls which checkout step the block renders on. In a multi-step checkout, this lets you time an offer for the moment the buyer is most receptive.
| Placement | Where the Block Renders |
|---|---|
any | Every checkout step (default). |
information | The contact and shipping-address step. |
shipping | The shipping-method step. |
payment | The payment step. |
Important: Shop Pay and other one-page checkouts only expose a single step. On those flows, only rules with placement
anywill appear — step-specific placements (information,shipping,payment) never match. If an upsell must reach every buyer regardless of checkout type, useany.
Offer Configuration
Each rule’s offer defines what the buyer sees and what gets added to the cart.
| Field | Description |
|---|---|
| Offer variants | One or more product variants that the rule can offer. At least one is required. |
| Display mode | grouped shows a single card with a variant picker; separate shows one card per variant. |
| Headline | Bold heading displayed above the offer (optional). |
| Subtext | Supporting body text below the headline (optional). |
| CTA label | Button text. Defaults to “Add to order” if not set. |
| Max quantity per accept | How many units are added each time the buyer clicks the CTA. Defaults to 1. |
| Priority | Sort order when multiple offers match. Lower numbers render first. Defaults to 100. |
grouped mode is usually the right choice when you’re offering a product with size or color variants — the buyer picks the variant inline. separate is better when each variant is a distinct product-like offer (for example, three different protection plans).
Trigger Conditions
Rules can combine any subset of the supported trigger conditions with AND/OR logic. Leaving the condition list empty means the offer always matches.
Supported conditions: cartSubtotal, cartTotalQuantity, cartLineCount, customerTag, customerIsAuthenticated, product, cartAttribute.
Operators mirror those available on discount conditions (greaterThan, between, hasAny, hasNone, exists, and so on). See the Cart-Level Conditions reference for operator details.
Important: Upsells Don’t Apply Discounts
Important: A checkout upsell adds a product to the cart. It does not apply its own discount. If you want the offered product to appear at a discounted price, create a matching Discount Function (for example, a Conditional Discount with the offered variant’s product tag and a percentage discount value). The two features work together: the upsell moves the product into the cart, and the discount prices it.
This separation keeps the system predictable: every discount your buyer sees is driven by your discount configuration, not by a side effect of a different feature.
Analytics Integration
Every accepted upsell is tracked automatically. Acceptance events are surfaced in the Analytics Dashboard with revenue, accept count, top rules, and per-rule trend data, so you can measure which offers drive the most incremental revenue.
No customer identifiers are stored with the acceptance record — Alfo keeps analytics anonymized at the session and order level.
Example Configurations
Protection Plan for Premium Purchases
Offer a 2-year protection plan when the cart subtotal exceeds $200.
- Trigger conditions:
- Cart subtotal greater than $200
- Offer variant: Protection plan SKU (variant GID)
- Display mode:
separate - Headline: “Protect your purchase”
- Subtext: “2-year coverage for accidents, drops, and spills.”
- CTA label: “Add protection”
- Placement:
any - Priority: 50
Free-Shipping Unlock Nudge
When the cart is between $30 and $45, offer a low-cost accessory that pushes the buyer past your $50 free-shipping threshold.
- Trigger conditions:
- Cart subtotal between $30 and $45
- Offer variants: Socks, hair ties, sticker pack (three variants)
- Display mode:
grouped - Headline: “Add one more item to unlock free shipping”
- CTA label: “Add to order”
- Placement:
information - Priority: 10
VIP-Only Early Access
Expose an exclusive variant only to customers tagged VIP.
- Trigger conditions:
- Customer tag has any of
VIP
- Customer tag has any of
- Offer variant: Early-access product variant
- Display mode:
separate - Headline: “VIP early access”
- Subtext: “Available to you before public launch.”
- Placement:
any - Priority: 25
Managing Upsells
The Checkout Upsells page in the Alfo admin lists every rule with the fields you need to scan quickly:
- Status — Enabled or disabled, with a toggle.
- Placement — Which checkout step the rule targets.
- Variant count — How many variants the offer can render.
- Priority — Sort order when multiple offers match.
- Delete — Remove rules you no longer need.
Clicking any rule opens its editor where you can change trigger conditions, offer configuration, placement, and copy.
Next Steps
- Analytics Dashboard — Measure which upsells drive revenue.
- Cart & Checkout Validation — Block or warn buyers with matching rules.
- Bundle Discount — Discount specific product combinations.