Pre-purchase vs post-purchase upsell: which converts better?

Pre-purchase upsells reach every shopper; post-purchase converts 2-3x higher with no risk to the sale. When to use each on Shopify and how to combine them.

Published Feb 13, 2026· Updated Sep 6, 2026· 7 min read· By the Cart X team

Every merchant who decides to upsell hits the same question next: before checkout, when everyone sees the offer but the sale is still at risk, or after checkout, when the sale is safe but only buyers see it? The short answer is that post-purchase converts better and pre-purchase reaches more people, and the stores that get the most out of upselling run both. This article explains the trade-off with the mechanics, the benchmarks and a decision framework you can apply to your own catalogue.

What a pre-purchase upsell is

A pre-purchase upsell is any offer shown before payment. On Shopify it appears in three places:

  • Product page: “Frequently bought together”, volume pricing, “Upgrade to Pro”.
  • Cart: an add-to-cart popup or a block on the cart page suggesting add-ons. This is the placement most people mean by “cart upsell”.
  • Checkout page: available to Shopify Plus stores through checkout UI extensions, typically for small items like shipping protection or gift wrapping.

The advantage is reach. Everyone who adds to cart sees an in-cart offer, including the majority who will not complete checkout (Baymard Institute puts the average documented cart abandonment rate at around 70%: https://baymard.com/lists/cart-abandonment-rate). Pre-purchase offers also suit items whose value is obvious: batteries with a toy, socks with shoes, a second unit at a discount.

The cost is friction. Every offer before payment is one more decision between the shopper and the order. Used sparingly it lifts AOV; used heavily it lowers checkout conversion, and that loss is hard to see because it does not show up in the upsell app’s dashboard.

What a post-purchase upsell is

A post-purchase upsell appears after payment is authorized and before the thank you page. Shopify’s checkout stores the payment method for the order, so the app can present an offer the shopper accepts with a single click, charged to the same card and added to the same order. Shopify documents this in its post-purchase extension docs (https://shopify.dev/docs/apps/build/checkout/product-offers/post-purchase).

Three things make it convert:

  1. Zero risk to the original order. It already exists. Declining costs you nothing.
  2. Timing. The shopper has just answered “do I trust this store” and “do I want this” with yes. Resistance is at its lowest point in the whole funnel.
  3. No re-entry. No cart, no forms, no second checkout.

The cost is reach: only completed orders see the offer, and Shopify excludes some payment methods and order types from post-purchase entirely. If your store converts at 2%, this placement talks to 2% of visitors.

For a full treatment of the placement, including its downsides, see post purchase upsells: the pros and cons.

The benchmarks

Industry benchmark ranges for Shopify stores look like this. Your numbers will vary with product fit and discount depth, but the ranking is consistent.

Metric Pre-purchase (in-cart) Post-purchase (one-click)
Typical take rate 2-5% 5-15%
Audience Everyone who adds to cart Completed orders only
Risk to the original sale Some None
Friction to accept Add to cart, then checkout One click
Best offer size Under ~$20, obvious value 10-30% of order value
Customer perception Can feel pushy if repeated Reads as a follow-up

Post-purchase offers typically convert two to three times higher than the same product offered pre-purchase, because saying yes is one click and saying no threatens nothing. Pre-purchase wins on exposure by a factor equal to your cart-to-order drop-off, often 3-5x.

Work it through for a store with 5,000 add-to-carts and 1,000 orders a month:

  • In-cart popup at 3% take rate: 150 accepted offers.
  • Post-purchase at 10% take rate: 100 accepted offers.

The higher-reach placement produces more accepted offers here despite the lower rate, but the post-purchase offers can carry a higher price (the order total anchors them) and cost nothing in lost checkouts. Run both and the numbers add.

When to use which

Use pre-purchase for small, obvious add-ons

Low price, no explanation needed, clearly related to the cart. Shipping protection, gift wrapping, a refill, a second unit. Keep it to one popup with one or two products, and never show it twice in a session.

Use post-purchase for the offer you actually want to sell

Anything with a meaningful price, and anything that benefits from the shopper having already committed: accessories for the item they just bought, a 90-day supply after a 30-day, a subscription on a consumable. Do not distract someone buying a $200 jacket with a $50 accessory before they pay. Let them secure the jacket; then offer the accessory with one click.

Use the thank you page for low-pressure follow-ups

A discount on the next order, a related product to browse, a referral. This is a third placement, not a substitute for post-purchase, because offers here start a new order. See thank you page upsells.

Run the hybrid

The stores with the best upsell revenue per order do not choose. A typical setup:

  1. In-cart popup: one low-priced add-on, shown once. Reach.
  2. Post-purchase: the main upsell, discounted 15-25%, with a downsell behind it. Conversion.
  3. Thank you page: a next-order incentive. Retention.

Each order gets three chances to grow, and only the first touches the path to checkout.

If you are launching your first upsell, start with post-purchase. It is the placement where a bad offer costs you the least, so it is the safest place to learn what your customers accept.

What changed with Checkout Extensibility

Post-purchase offers require an app built on Shopify Checkout Extensibility, specifically the post-purchase checkout UI extension. Legacy apps that injected scripts into checkout.liquid cannot do this, and checkout.liquid itself is deprecated. If you are still running a legacy upsell app, upgrading from checkout.liquid to Checkout Extensibility explains what to check, and checkout UI extensions vs legacy apps covers the performance difference. Native extensions also load inside Shopify’s sandbox rather than as third-party scripts, which keeps checkout fast; see how to stay under 200ms INP.

Setting up both in Cart X

Cart X runs all three placements from one app, built on Checkout Extensibility (checkout UI extensions for post-purchase and thank you page, a theme app extension for the in-cart popup). It works with any theme and needs no code.

  1. Install from the Shopify App Store and select Cart X as your post-purchase app in checkout settings.
  2. Create a post-purchase funnel: choose the trigger (products, collection, cart value, tags), pick the upsell and its discount, add a downsell.
  3. Create an in-cart popup for a low-priced add-on on your best sellers.
  4. Optionally add a thank you page offer.
  5. Read take rate, revenue per order and refund rate per funnel, then A/B test the offer or discount.

Frequently asked questions

Does post-purchase upselling work on mobile?

Yes. Post-purchase pages are rendered by Shopify’s checkout and are responsive by default. Most Shopify traffic is mobile, and one click is easier on a phone than a second checkout would be.

Does every order see the post-purchase offer?

No. Shopify excludes some payment methods and order types from post-purchase extensions. Expect the offer to reach most, not all, of your orders. The eligibility rules are in Shopify’s post-purchase documentation linked above.

What is a good upsell conversion rate?

As benchmarks: 2-5% for in-cart popups, 5-15% for post-purchase offers. Relevant, discounted offers priced well below the order total land at the top of those ranges.

Can I show more than one post-purchase offer?

Yes. Cart X supports up to three upsells and three downsells in a funnel. Two steps (an upsell and a downsell) is the right starting point; add a third only once the first two are converting.

The verdict

If you can only run one, run post-purchase: higher take rate, higher offer value, no risk to checkout. If you want the most upsell revenue per order, run the hybrid: a light in-cart offer for reach, a strong post-purchase offer for conversion, and a thank you page incentive for the next order.

Try it on your store

Cart X runs in-cart popups, one-click post-purchase upsells with downsells, and thank you page offers from one app, with targeting, A/B testing and analytics on every plan. It is free up to 100 store orders a month with every feature included. Install it at https://apps.shopify.com/cart-x and launch your first post-purchase funnel in a few minutes.

#post purchase upsell#cart upsell#upsell funnel#aov