Upselling vs cross-selling: what's the difference on Shopify?

Upselling upgrades the item in the cart; cross-selling adds a complementary one. Which converts better on Shopify, where to show each, and how to run both.

Published Jun 4, 2023· Updated Sep 6, 2026· 5 min read· By the Cart X team

Upselling and cross-selling both raise average order value, and Shopify merchants use the words almost interchangeably. They are different offers with different placements and different conversion patterns, and knowing which one you are running tells you where to put it and what to expect. This article defines both, shows where each belongs in a Shopify store, and answers which one is “better” with the honest answer: it depends on the product, and most stores should run both.

Upselling: a better version of the same thing

An upsell offers a higher-value version of the product the customer is already buying. A bigger size. The premium model. A longer supply. An extended warranty on the same item.

The customer’s decision is already made; the upsell refines it. “You chose the 30-day supply; the 90-day works out to $0.60 a serving instead of $0.85.” The value has to be stated in the customer’s terms, because the only question in their mind is “what do I get for the extra money?”

Benefits for the store

  • Higher revenue per item without adding SKUs to the order
  • Often higher margin: the premium variant usually carries more margin than the base one
  • Signals that you understand what the customer is trying to accomplish

Where it works on Shopify

  • Product page: as a variant choice, with the difference explained in one line. This is the natural home.
  • Cart popup: “Upgrade to the Pro for $30 more” when the base model is added to cart.
  • Post-purchase: supply-length and quantity upgrades (“upgrade to 90 days”) convert well with one click because the customer has already committed to the product.

Where it struggles. Upgrades that require comparison (a $500 laptop to a $900 one) do not belong in a popup or a post-purchase page. Keep the increment proportional: roughly 25-30% above the base price is the ceiling before the upgrade starts reading as a different purchase.

Cross-selling: something that goes with it

A cross-sell offers a complementary product: the case with the phone, the filter with the coffee maker, the memory card with the camera. The customer’s original item is unchanged; you are adding a second line to the order.

The decision the customer is making is different: not “is the better version worth it?” but “will I need this?” That is why relevance matters even more for cross-sells than upsells. A memory card with a camera is a yes before the customer finishes reading. A memory card with a pair of shoes is noise.

Benefits for the store

  • More items per order, which raises AOV even when each add-on is cheap
  • Product discovery: customers meet lines they would not have searched for
  • Repeat purchase paths: consumables and refills cross-sold once tend to be reordered

Where it works on Shopify

  • In-cart popup: low-priced add-ons, shown once when the main product is added. Highest reach, benchmark take rate 2-5%. See in-cart upsells.
  • Post-purchase, one click: the strongest placement for cross-sells. The order is secured, the total anchors the add-on’s price, and the customer already thinks of the main item as theirs, so an accessory reads as completing it. Benchmark take rate 5-15%. See post-purchase upsells.
  • Thank you page: related products for the next order, lower pressure.

Where it struggles. Irrelevant pairings, and add-ons priced too close to the main item. Keep cross-sells at roughly 10-30% of the order value.

Side by side

Upselling Cross-selling
What changes The item in the cart gets better or bigger A second item is added
Customer’s question Is the upgrade worth the difference? Will I need this?
Best placement Product page, cart popup; post-purchase for supply length Post-purchase one click; in-cart for cheap add-ons
Typical increment 15-30% above base price 10-30% of order value
Typical take rate 3-8% pre-purchase 2-5% in-cart, 5-15% post-purchase
Main risk Increment too large, looks like a different product Irrelevant pairing, impulse refunds

Which is better?

Measured by take rate, cross-selling in the post-purchase step wins for most Shopify stores. A relevant accessory offered with one click after payment converts two to three times better than anything shown before checkout, and it carries no risk to the original order.

Measured by revenue per accept, upselling often wins, because the increment on a premium variant or a longer supply is usually larger than the price of an accessory.

Which matters more depends on the catalogue:

  • Single hero product with variants (a bottle in three sizes, a device in two tiers): upsell first, on the product page. Cross-sell accessories post-purchase.
  • Products with obvious companions (cameras, coffee gear, skincare routines): cross-sell first, post-purchase. Add a quantity upsell for consumables.
  • Consumables and refills: both, in sequence. Upsell to the larger supply post-purchase; if declined, downsell to a smaller add-on or a subscription.
  • Apparel: cross-sell (matching pieces, care products) beats upsell in most cases, because size and fit are already chosen.

Check margins too. A cross-sell with 70% margin can be worth more than an upgrade with a bigger sticker and 30% margin.

Running both in one funnel

The most effective setups do not choose. A typical Cart X funnel for a $60 coffee grinder:

  1. In-cart popup: a $12 cleaning brush (cross-sell, cheap, obvious).
  2. Post-purchase upsell: a second bag of beans at 25% off, or the insulated travel case (cross-sell, one click, priced within 30% of the order).
  3. Post-purchase downsell if declined: a $9 filter pack.
  4. Thank you page: “subscribe to beans and save 15%” (upsell to recurring).

Each step is targeted by product, collection, cart value or tag, so a different best seller can have a different sequence. Take rate, revenue per order and refund rate are tracked per funnel, and you can A/B test an upsell against a cross-sell on the same trigger to settle the question for your own store.

All shopper-facing copy should follow Shopify’s post-purchase rules: a visible “Decline offer”, a “Pay now · $X” button that says the customer is paying, a struck-through compare-at price when discounted, and no manufactured urgency.

Try it on your store

Cart X runs upsells and cross-sells across in-cart popups, one-click post-purchase offers with downsells, and thank you page offers, built on Shopify Checkout Extensibility with no code. Every feature, including targeting, A/B testing and analytics, is free up to 100 store orders a month. Install it at https://apps.shopify.com/cart-x

#cross-sell#upsell strategy#aov#post purchase upsell