Post Purchase Upsell
Post Purchase Upsell displays product recommendations on the thank-you page after a customer completes a purchase, in a compact, high-intent format.
desc - One or more product offers after purchase with optional countdown and downsell.
Description
Ideal for increasing average order value by offering complementary or related products immediately after payment. Customers see a banner and one or more product cards with an "Add to order" action; items are added to the same order via Shopify's post-purchase extension. Supports a single hero product (expanded layout) or up to three products (compact grid), optional countdown timer, and an optional downsell when the main offer is declined.
Limitations
- Appears only on the post-purchase (thank-you) page—not in checkout
- Single template: exactly 1 product; Multiple template: 1–3 products
- Countdown timer fixed range (20–90 seconds)
- Requires post-purchase extension enabled for your checkout
- Base-currency markets only when using market targeting
Sample Use Cases
- Cross-sell accessories: Case with phone, charger with laptop, care kit with appliance
- Add-on consumables: Refills, filters, replacement parts that pair with the purchase
- Tiered or premium alternatives: Larger size, bundle, or upgrade shown after initial purchase
- Donations or add-on causes: Optional donation or cause add-on at thank-you
- Complementary recommendations: Shopify or integration (Algolia, Boost, etc.) powered suggestions based on order
Configuration Wizard
Post-purchase upsells are configured in a 4-step wizard in the app.
| Step | Name | Purpose |
|---|---|---|
| 1 | Trigger | Who sees the offer (display rules, markets, rollout %) |
| 2 | Offer | Template, products, discount, display options |
| 3 | Messaging | Banner title/subtitle, countdown timer |
| 4 | Downsell | Optional second offer when customer declines |
Move between steps in any order; progress is tracked per step. See Step-by-Step Configuration below for details.
Display Rules
Supports advanced display rules for conditional rendering. Configure in Step 1: Trigger. Use rule groups (e.g. cart total, product in cart, customer tag) so the offer only shows when conditions are met. Leave rules empty to show to all customers who match market and rollout. See Display Rules System documentation for details.
Product Sources
Same as Upsell List—all product source options available in Step 2: Offer:
- Manual Selection (products or collections)
- Collections
- Automatic (Shopify AI – Complementary / Related)
- Algolia (Pro)
- SearchSpring (Pro)
- Boost (Pro)
- Nosto (Pro)
- Metafield (namespace + key, with fallback)
Template constrains count: Single Offer = 1 product; Multiple Offers = 1–3 products.
Key Features
- Two layout templates: Single (expanded) and Multiple (compact grid)
- Optional discount (percentage or fixed amount) with configurable title
- Optional countdown timer (20–90 seconds) for urgency
- Optional downsell with inherit or override display settings
- Display rules, market targeting, and rollout percentage for A/B testing
- Localization support for banner and countdown copy
- Quantity selector and thumbnail toggles per offer
Template Types
Single Offer (Expanded) – single_expanded
One product in a two-column layout (image + details). Best for one hero recommendation.
- Products: Exactly 1
- Layout: Two columns; stacks on small viewports
- Use when: One clear cross-sell (e.g. "Customers who bought X also bought Y")
Multiple Offers (Compact) – multiple_compact
Up to three products in a compact grid (1 = single column, 2 = two columns, 3 = three columns).
- Products: 1–3
- Layout: Responsive grid; columns collapse on small viewports
- Use when: "Pick one" or "add any" from a small set (e.g. 2–3 accessories or variants)
Offer Display (per product)
Each offer card shows:
- Product image (optional, thumbnail toggle)
- Product title
- Price (with compare-at-price if on sale)
- Discount (if configured)
- "Add to order" button (configurable label)
- Quantity selector (optional)
- Variant selector (if applicable)
- Rating/reviews (if integrated)
Step-by-Step Configuration
Step 1: Trigger
- Display rules: Define when the offer appears (cart, customer, etc.). Empty = all eligible.
- Customer country (markets): Restrict by shipping destination. Unselected = all markets.
- Rollout percentage: 1–100%. Use for A/B testing (e.g. 50% of eligible customers).
Step 2: Offer
- Template: Single Offer (Expanded) or Multiple Offers (Compact).
- Product selection: Manual (products/collections), Automatic, or integration (Algolia, SearchSpring, Boost, Metafield). Count must match template (1 or 1–3).
- Discount: On/off, title, type (percentage / fixed amount), value.
- Display: Show thumbnails, show quantity selector, button label.
Step 3: Messaging
- Banner title: Main headline (required).
- Banner subtitle: Supporting line.
- Countdown timer: On/off, duration (20–90 s), optional copy before timer. Localization supported.
Step 4: Downsell (optional)
- Enable downsell: On/off.
- Downsell product: Single product picker (required if enabled).
- Downsell banner copy: Message above downsell offer (required if enabled).
- Display: Inherit from main offer or override button label, thumbnails, quantity, discount.
Best Practices
Template Choice
Use Single Offer (Expanded) when:
✅ One clear hero product
✅ Strong cross-sell (e.g. accessory for purchased item)
✅ Donation or single add-on
Use Multiple Offers (Compact) when:
✅ 2–3 comparable options (e.g. variants or accessories)
✅ "Pick one" or "add any" experience
✅ Testing several products
Product Selection Strategy
Curated relevance:
- Complementary to what was bought (e.g. case for phone)
- Similar price band (avoid one $5 and one $50 unless intentional)
- Bestsellers or new arrivals from a focused collection
- Use manual for full control; use automatic/integrations for scale
Avoid:
- Unrelated products
- Out-of-stock or unavailable variants
- Too many options (stick to 1 or 2–3)
Discount & Messaging
Discount:
- 10–20% or round fixed amount (e.g. $5 off) often converts well
- Use a clear discount title in order summary (e.g. "Post-purchase offer")
Messaging:
- Short, benefit-led title (e.g. "Add this and ship together")
- One-line subtitle with value (e.g. "Ships with your order – no extra shipping")
- Countdown: use only if you're comfortable with 20–90 s; keep copy honest
Downsell Strategy
Use downsell when:
✅ You want a second chance after main offer is declined
✅ You have a lower-priced or alternative product (e.g. smaller size)
Best practices:
- Keep banner copy short and positive ("Wait! We have a better deal for you")
- Inherit main offer settings to keep UX consistent
- Optional: different (e.g. steeper) discount on downsell to encourage acceptance
A/B Testing
Rollout percentage:
- Start at 50% and compare accept rate / AOV before going to 100%
Display rules:
- Test different segments (e.g. high AOV vs low AOV carts, specific product purchased)
Placement (Post-Purchase Page)
The offer appears only on the thank-you (post-purchase) page, after payment is complete.
Typical flow
[Order confirmation / Thank you]
---
[Banner: title + subtitle]
[Countdown timer – if enabled]
---
[Offer: 1 product (expanded) or 1–3 products (compact)]
[Add to order] [No thanks]
---
[If declined + downsell enabled:]
[Downsell banner]
[Downsell product card]
[Add to order] [No thanks]
---
[Continue / View order]
Single vs Multiple Template
Use Single Offer when:
✅ One hero product
✅ Strong, obvious cross-sell
✅ Donation or single add-on
✅ Maximum focus on one recommendation
Use Multiple Offers when:
✅ 2–3 options to choose from
✅ Variants or comparable accessories
✅ "Add any" from a small set
✅ Testing 2–3 products
Post-Purchase vs Checkout Upsell
| Post-Purchase Upsell | Checkout Upsell (e.g. Upsell List) | |
|---|---|---|
| When | After payment (thank-you page) | During checkout (before payment) |
| Surface | Post-purchase extension | Checkout UI extension |
| Products | 1 (single) or 1–3 (multiple) | List/carousel/grid (e.g. 6–24) |
| Countdown | Optional (20–90 s) | N/A |
| Downsell | Optional second offer | N/A |
Use post-purchase when you want to lift AOV after the customer has committed to the order. Use checkout upsell when you want to influence the cart before payment.
Setup & Limitations
One-time setup (required before post-purchase offers will appear)
Complete these steps in the app and in Shopify checkout settings:
- Copy the tracking script – In the app, use the “Copy tracking script” button when prompted (or in the post-purchase setup flow).
- Go to checkout settings – In Shopify admin: Settings → Checkout.
- Select Checkout Components as the post-purchase app – In the Post-purchase Page section, choose Checkout Components as your post purchase app.
- Add the script in Additional scripts – Paste the copied tracking script into the Additional scripts field in checkout settings (under the Post-purchase Page section or in the same checkout settings page, depending on your theme). Save.
- Mark as done – Back in the app, click Mark as done so the app knows setup is complete.
Without step 3, Shopify will not show the post-purchase extension. Without step 4 (the additional script), post-purchase analytics and tracking will not work correctly.
Shopify limitations
Shopify will not surface post-purchase offers in these scenarios:
- Multi-currency orders – When the customer checks out in a currency different from your store’s default currency.
- Certain payment methods – When the customer uses certain installment or third-party services that retain credit card info.
- High traffic – During periods of high order traffic.
- No shipping or local delivery – Orders that have no shipping address or are for local delivery.
For the full list, see Shopify Post-Purchase Limitations.