Playbook · Updated June 2026

Why COD Blocks Post-Purchase Upsells (and How to Get Around It)

You built a one-click upsell. It works great — until a cash-on-delivery order comes in, and the offer never shows up. Here's the simple reason why, the full list of payment methods that block it, and five workarounds that still grow your order value on COD.

By the PPUA Team · Published 3 June 2026 · ~10 min read
The short answer

A post-purchase upsell charges a saved card with one tap. Cash on delivery has no saved card — the buyer pays cash at the door, later. So there is nothing for Shopify to charge, and it skips the offer on COD orders. The fix is simple: stop waiting until after checkout. Make your offer before the customer pays — in the cart, on the product page, or as a bundle. That works on every order, COD included. Our own app, Oxify Cart Drawer PostPurchase, was built for exactly this.

What's on this page

  1. What a post-purchase upsell is
  2. What COD is — and why it's big
  3. The real reason COD blocks the offer
  4. Which payment methods show the upsell
  5. Other things that quietly hide it
  6. 5 workarounds that still raise AOV
  7. Which method works on COD?
  8. Which workaround should you pick?
  9. A bonus win: fewer returns
  10. Mistakes to avoid
  11. FAQ

First, what a post-purchase upsell is

A post-purchase upsell is a one-click offer. It shows up right after the customer pays, on the thank-you page.

The magic is the one click. The card is already charged, so the buyer can add another item with a single tap. No new checkout. No typing card details again.

That one detail — "one click, no re-typing" — is the whole point. And it's also why COD breaks it.

What COD is — and why it's a big deal

COD means cash on delivery. The customer orders now and pays cash when the package arrives at their door.

In a lot of the world, COD is not a small thing. In India, industry reports put it at around 60% of online orders. It's also huge across parts of Southeast Asia, the Middle East, North Africa and Latin America. (See e-commerce in India for background.)

So if you sell in those markets, this isn't an edge case. It could be most of your orders. And right now, most of those orders show no upsell at all.

The real reason COD blocks the offer

Here's the simplest way to think about it.

To charge an add-on in one click, Shopify needs a card it can use again. During a normal card or Shop Pay checkout, Shopify saves (or "vaults") that card for a few seconds. That saved card is what the upsell charges.

COD never gives Shopify a card. There's no payment yet — just a promise to pay cash later. So there is nothing to vault and nothing to charge.

When Shopify sees no card it can charge, it does the only sensible thing: it hides the upsell page and sends the buyer straight to the thank-you page.

The rule to remember: if the card isn't saved by Shopify at checkout, the one-click upsell can't run. COD never saves a card — so it's always skipped.

This isn't a bug, and it isn't your app being broken. It's how Shopify's post-purchase product offers are built to work. Every post-purchase app — AfterSell, ReConvert, Zipify, ours — follows the same Shopify rule, so switching apps won't change it.

And it's not only COD. Any payment method where Shopify can't reuse the card gets skipped too — which surprises a lot of merchants.

Quick reference

Which payments show the one-click upsell?

Usually shows the upsell

  • Credit and debit cards on Shopify Checkout
  • Shop Pay
  • Direct card gateways listed in your region
  • PayPal Express — only if approved for automatic payments

Skips the upsell

  • Cash on delivery (COD) and manual methods
  • PayPal wallet and most express wallets
  • Apple Pay, Google Pay, Amazon Pay
  • Buy-now-pay-later (Klarna, Affirm, Afterpay)
  • Gift cards
  • Redirect or offsite gateways (e.g. Mollie)

Based on Shopify's published behaviour for post-purchase product offers as of June 2026. The exact list can change and can vary by region and gateway — always test with a real order on your own store. The common thread: the offer needs a card Shopify can charge again in one click.

Other things that quietly hide the upsell

Payment method is the big one. But even on a normal card order, Shopify will skip the post-purchase offer in a few other cases. If your offer "isn't showing" and the payment looks fine, check these:

Notice the pattern. Most of these come back to the same thing: Shopify can't safely charge a saved card in that situation, so it plays it safe and shows nothing. COD is just the most common version of that problem.

5 workarounds that still raise your AOV on COD

You can't force Shopify's native upsell onto a COD order. But you don't need to. You just need to move the offer to a spot where a saved card isn't required. Here are five ways, from easiest to most advanced.

1

Move the offer before checkout

This is the big one. Offer the extra item in the cart drawer, on the product page, or as a "frequently bought together" pick — before the customer pays.

No payment has happened yet, so no saved card is needed. It works on 100% of orders: COD, PayPal, gift card, all of them.

Think of it as catching the customer while the cart is still open, instead of after the door has closed. This is exactly what our app, Oxify Cart Drawer PostPurchase, is built to do — cart-drawer upsells, gifts and discounts that fire before payment, so COD orders count too.

Works on every COD order
2

Use bundles, gifts and volume discounts

Give people a reason to add more before they check out:

  • Buy 2, get 1 or a bundle price on a matching set.
  • Spend ₹X, get a free gift — a classic cart-value nudge.
  • Volume discount: the more they add, the more they save.

All of this lifts the order value at the cart, where COD doesn't get in the way. It's also the safest kind of upsell, since the customer is still deciding.

Works on every COD order
3

Use a COD order-form app with built-in upsells

Some apps replace the normal checkout with a COD order form and add their own upsells and quantity offers right on that form.

They don't use Shopify's native post-purchase system, so they sidestep the saved-card problem. Well-known options in this space include EasySell, Releasit, CodMonster and Madgic.

Good fit if COD is most of your sales and you run a dropshipping-style store where the order form is your checkout.

Built for COD-heavy stores
4

Nudge customers to prepay

Give a small reward for paying online instead of COD:

  • A little discount for prepaid orders.
  • Free shipping when they pay by card or wallet.
  • A clear "pay now and save" badge at checkout.

Every customer who switches to prepaid unlocks Shopify's native post-purchase upsell again. Bonus: prepaid orders get returned far less often (more on that below).

Unlocks the native one-click upsell
5

Offer on the thank-you page (with one catch)

You can still put an offer on the thank-you (order status) page for COD buyers. It shows fine there.

The catch: with no saved card, it can't charge silently. So a "yes" becomes a new order or a second step, not a one-tap add to the same order. Treat it as a bonus, not your main lever — and pair it with a follow-up email or SMS a few days later with a "complete the set" code.

Works, but not a silent one-click charge
Side by side

Which upsell method actually works on COD?

MethodWorks on COD?EffortBest for
Native post-purchase (one-click)LowCard & Shop Pay orders
Pre-checkout (cart drawer, bundles)LowEvery store, especially COD
COD order-form app upsellsMediumCOD-heavy / dropshipping
Thank-you-page offerLowBonus add-on, any method
Post-delivery email / SMSLowRepeat sales

"Partly" means the offer can show, but it can't charge a saved card on COD, so a yes becomes a separate order or second step. For a deeper look at where each offer lives, see our guide on post-purchase vs pre-purchase upsells.

Which workaround should you pick?

You don't have to choose just one. But if you want a simple plan:

The smart move for most stores: do your upselling before checkout so it works for everyone, then use prepaid nudges to slowly grow the share of orders that can get a native post-purchase offer. That's the combination we'd run, and it's why Oxify Cart Drawer PostPurchase puts the cart drawer, free gifts and volume discounts in one app.

A bonus win: COD costs you more than missed upsells

Here's something many merchants miss. COD doesn't just block upsells — it also gets returned a lot.

When a COD package comes back undelivered, it's called RTO (return to origin). Industry data shows RTO can hit 20–30% of COD orders, versus just 2–3% for prepaid ones. You pay shipping both ways and get nothing.

So pushing customers toward prepaid does double duty. You unlock the one-click upsell and you cut expensive returns. That's why the prepaid nudge in workaround #4 is worth real effort, not just a footnote.

Mistakes to avoid

Want more of these? See our full list of post-purchase upsell mistakes that quietly flatten AOV.

Questions, answered

COD & post-purchase upsell FAQ

Why isn't my post-purchase upsell showing on COD orders? +

The one-click upsell charges a saved card. COD has no saved card — the buyer pays cash at the door later — so there's nothing to charge. Shopify skips the offer page and sends the customer straight to the thank-you page.

Which payment methods block Shopify post-purchase upsells? +

COD and manual methods, gift cards, PayPal and express wallets (Apple Pay, Google Pay, Amazon Pay), buy-now-pay-later (Klarna, Affirm, Afterpay), and redirect gateways like Mollie. Offers mainly show for credit-card and Shop Pay orders. A non-default currency, duties, local delivery, and totals under $0.50 also hide them.

Can I show a one-click upsell on cash-on-delivery orders? +

Not through Shopify's native post-purchase offer, because there's no saved card to charge. But you can still raise the order value on COD by offering before checkout (cart drawer, bundles, volume discounts) or by using a COD order-form app that adds its own upsells outside Shopify's native system.

Do cart and pre-purchase upsells work with COD? +

Yes. Cart-drawer upsells, product-page bundles, free-gift thresholds and volume discounts all happen before payment, so they don't need a saved card. They work on every order — COD, PayPal and gift cards included.

Do thank-you-page upsells work for COD orders? +

They can show on COD orders, but they can't silently charge a card, so a "yes" becomes a separate order or a second confirmation rather than a true one-click add. For COD, raising the value before checkout or on a dedicated COD form is usually cleaner.

Does PayPal support post-purchase upsells? +

Standard PayPal and most express wallets don't, for the same reason as COD: the card isn't saved by Shopify during checkout. PayPal Express can work only if the account is approved for automatic payments (reference transactions).

Will moving customers to prepaid help? +

Yes, twice over. Prepaid orders pay by card or Shop Pay, which unlocks the native post-purchase upsell. Prepaid also has much lower return rates than COD, so a small "pay online and save" reward often pays for itself.

Upsell before checkout — so COD orders count too.

Oxify Cart Drawer PostPurchase adds cart-drawer offers, free gifts, BOGO and volume discounts that fire before payment — so they work on every order, cash on delivery included.

Install the app Read the upsell apps guide
14-day free trial · No credit card · Cancel anytime

From the Oxify Cart Drawer PostPurchase team. We build tools for Shopify merchants who want a higher average order value without adding checkout friction — a cart drawer, free gifts, BOGO and volume discounts, a thank-you-page editor and one-click post-purchase upsells, all in one app. Because our cart and bundle offers run before checkout, they keep working on COD, PayPal and gift-card orders that skip the native post-purchase page. Payment-method behaviour described here reflects Shopify's published rules for post-purchase product offers as of June 2026; test on your own store, since gateways and regions vary.