Cash on Delivery in Shopify: The Real Funnel (and Why Your CPA Is Wrong)
Real COD funnel with operations numbers. Out of 100 leads, 72 actually get delivered. Why your apparent CPA is fiction, and which products you should never put on COD.
COD converts better than online payment for one reason: the customer doesn't commit anything when registering. Between the lead and an actual delivery, though, two silent filters wipe out a chunk of the funnel. In my operation, 100 leads turn into 89 confirmations and 72 deliveries. That means your real CPA sits about 30% higher than your ads dashboard claims. And heavy or oversized products? Worst possible fit for this model.
Why COD converts so well
Cash on delivery is still everywhere it was a decade ago. Rural Spain. Italy and France in pockets. MENA. India. Southeast Asia. Plenty of LATAM. Wherever card penetration is low, where people still distrust paying upfront, or where the audience just prefers "see it first, pay after."
The commercial logic is plain: the customer doesn't risk money when they fill the form. They type a name, a phone, an address. Click. The transaction hangs in limbo until the courier rings the doorbell.
That lubricates the conversion path. The visitor decides on impulse, completes a thirty-second form, and leaves. No card to pull out. No 3D Secure prompt. No friction-driven abandonment at checkout. Form-completion rate on COD can run two or three times higher than card checkout on the same product.
So far, that's the story you see on YouTube. The part those videos skip is what comes next.
The real funnel
Take a hundred leads from a campaign. With online payment, those hundred completed checkouts already paid — they're a hundred sales. With COD, no.
Here's what happens in my operation, month after month, on a Shopify store running COD in Spain:
- 100 leads register through the COD form
- 89 confirm when we call them to verify they actually want the product
- 68 receive the product on the first delivery attempt
- 5 weren't home, ask for re-delivery the next day
- 2 weren't home on the second attempt either
- 72 actual sales after the re-delivery attempts
Two filters do the damage:
Filter 1 — phone confirmation. Eleven out of every hundred leads die here. Change of mind. Don't pick up the phone. Typed a fake number. Already bought it somewhere else. Some operators add SMS OTP at registration to cut the fake phones from 8% down to 1-2%. That helps, but it doesn't fix the "changed my mind" group.
Filter 2 — actual delivery. Of the 89 confirmed, 17 don't receive on first attempt. Fifteen do on attempt two or three. Two never receive at all. Net delivery rate against confirmed sits around 81%.
If you take one number from this article: 72 out of 100 leads are real sales.
The invisible cost of re-delivery
Every time a courier shows up and nobody answers, the courier bills you. Some treat it as a partial "failed attempt" rate. Others charge full. In Spain, a re-delivery runs $2-5 depending on the courier.
In the example above, seven leads needed at least one re-delivery attempt. At $4 per attempt, that's $28 of extra reverse logistics — money you can't pin to a specific sale. It spreads across the 72 deliveries: about $0.39 per delivered order.
And that's the easy scenario. When a product actually comes back to the warehouse (customer never confirmed, courier already charged outbound and return), the cost per unit lands between $8 and $15. On a $30 AOV, that's five points of margin gone per failed unit.
Your dashboard CPA is fiction
Here's the math most people get wrong.
Say you spend $1,000 on ads. Generate 100 leads. Meta, TikTok or Google shows you:
- Apparent CPA: $10
Misleading. It divides by leads, not sales. If only 72 actually convert:
- Real CPA per delivered sale: $1,000 / 72 = $13.89
That's 39% higher than what the dashboard shows. And we haven't even added re-delivery costs, warehouse returns, or the call center operations cost that confirmed those 100 in the first place.
Stack it all up:
| Item | Calculation | Total |
|---|---|---|
| Ad spend | 1,000 | $1,000 |
| Re-delivery (courier) | 7 × $4 | $28 |
| Warehouse return (~2) | 2 × $12 | $24 |
| Call center confirmation | 100 × $0.50 | $50 |
| Total cost over 72 sales | $1,102 | |
| Full real CPA per sale | $1,102 / 72 | $15.30 |
That's up to 50% higher than apparent. If your gross margin per sale is $20, what looked like a healthy 2x ROAS is actually $4-5 per sale in real profit. A five-point drop in delivery rate puts you operating at a loss, and you won't see it coming.
Products that don't survive COD
After a year running multiple products on COD, the pattern is clear.
Expensive products with cheap shipping — fine. AOV of $80-150, small light packaging. If the customer doesn't answer, the courier just loses a trip. Re-deliveries cost little.
Cheap products with expensive shipping, or heavy items — disaster. I had 40 kg dumbbells in the catalog. Delivery rate fell to 50%. When customers saw a big heavy box at the door without having paid, they'd either not answer or claim it never arrived. Re-shipping dumbbells ran $25 a pop. Pulled them from the catalog after three months.
Small cheap products — watch out for a counterintuitive effect. When the customer sees a tiny box at the door — smaller than expected — rejection rate at the moment goes up. People who haven't paid yet have low friction to say "no, not what I wanted" and turn it back. That doesn't happen with online payment because the economic sacrifice is already made.
Commodity products — worse than single-product DTC. If the customer can buy the same thing at the local store, they'll reject when seeing the package because "I don't need it that much anymore." Products with unique value or hard to find locally convert better.
The trap of "professionalizing"
When a COD operation grows, two paths open up:
Path A — switch to online payment. Most operators end here. Card + Bizum + PayPal. The operational friction of call center, re-deliveries, doorstep rejections all disappears. But initial conversion drops to half or a third. It's a rational decision when margin can't support COD operations anymore, or when the team can't scale.
Path B — specialize in COD. Some operators become experts: better confirmation rates with OTP + optimized call center scripts, better delivery with local couriers who know the addresses, careful product and market selection. They hit 90% delivery against confirmed. But it takes obsession with metrics and continuous data work.
What almost nobody does well: measure the full funnel with the granularity it needs.
What you actually need to measure for serious COD
Four metrics that change decisions:
- Confirmation rate per SKU — some products generate more fake phones. Filter by product, not by aggregate.
- Delivery rate per postal code or region — specific couriers perform differently. Some zones the courier leaves the package. Others, they try twice and return it.
- Real CPA per acquisition channel — the funnel breaks differently by traffic source. TikTok organic vs Meta paid vs SEO organic have different delivery rates because intent differs.
- Net margin post-COD per SKU — not "this product sells" but "this product profits after deducting reverse logistics, re-deliveries and returns."
Shopify native won't give you any of this. Neither will traditional affiliate apps (built for online payment checkout). What operators end up doing: exporting CSVs, cross-referencing manually with courier data, calculating in Excel.
What I'm building
After running COD with this kind of operations for a year, I started developing a Shopify app specifically for it: CODprofit. It covers three things:
- Automatic calculation of real CPA (not apparent) using Shopify + courier status data
- Performance analysis by SKU, zone and channel with the granularity native is missing
- Native COD affiliate system — because no existing affiliate app (GOAFFPRO, Refersion, UpPromote) is built for the COD flow, where the sale gets confirmed AFTER and attribution has to wait
It's wrapping up MVP, about to publish on the Shopify App Store. If you run COD and want a heads-up when it's available, drop your email in the newsletter below — launch comes with early adopter pricing.
Verdict
COD is an excellent tool for validating products and markets where conversion friction is low. But it requires measuring the real funnel, not the apparent one.
Three operational rules:
- Calculate CPA by dividing by actual deliveries, not leads. The 30-50% difference is what determines whether you operate with margin or at a loss.
- Exclude heavy or expensive-to-ship products from the COD catalog. The math doesn't work after the first re-delivery.
- When the operation passes 500 orders/month, decide between professionalizing COD or switching to online payment. The middle ground burns out the team and doesn't scale.
The model is viable. It's profitable. And in some markets it's irreplaceable. But the difference between operating well and operating at a loss is whether you can see the real numbers.
Frequently asked questions
Why does COD convert so much more than online payment?
Because the customer doesn't commit financially at the moment of registering. No card to pull out, no 3D Secure, no payment-friction abandonment. The friction gets shifted to a later moment (confirmation + delivery), where part of the funnel collapses silently.
What's a good COD delivery rate?
It depends on the market. In Spain with the right product, 70-80% is the typical range. Very specialized operators hit 85-90%. Below 60%, something's broken: wrong product for the format, market full of fake phones, or a mediocre courier.
Does it make sense to combine COD with online payment?
Almost always yes. Offer both at checkout, let the customer pick. Card users with confidence pick online (better margin for you). The rest pick COD. Initial friction stays low because COD is visible.
Does SMS OTP cut cancellations?
It cuts fake phones (typically 8% down to 1-2%). It doesn't cut the "changed my mind" group — those show up at phone confirmation regardless. Worth the SMS cost if your fake-phone rate is high.
What happens with products that physically return to the warehouse?
That's where you lose the most money. Each product that comes back full: outbound shipping + return shipping + operations cost of processing the return + the product cost itself if you can't resell it. On low-margin products, two returns per 100 sales can wipe out all your profitability.
Recibe los cambios de TikTok Shop antes que los demás.
Cambios de política, comisiones, fees y herramientas que valen la pena. Cada viernes. Sin spam.
Cash on Delivery in Shopify: Complete Guide to Setting Up COD
How to activate cash on delivery (COD) in Shopify. Recommended apps, mistakes that kill profitability, and real operations data from an active Shopify with COD.
7 COD Mistakes Costing Shopify Merchants Real Money
The most expensive operational mistakes with cash on delivery on Shopify — from an active Shopify in Spain. Why Thursdays kill conversion and which SKU is dragging your average down.
COD vs Prepaid: When to Switch Your Shopify Payment Model
Decision analysis between cash on delivery and online payment. When each one fits by market, volume and margins. When to migrate and how not to lose conversion in the process.
Shopify vs WooCommerce 2026: Which One to Choose for Your Operation
Decisional comparison between Shopify and WooCommerce from an operator's perspective. Real costs, scalability, technical control, customization. When to choose each one.