Cash on Delivery not showing at Shopify checkout: the 7-point fix list
Updated · ACOD (E-TRADE PARTNER)
When Cash on Delivery doesn't appear at Shopify checkout, the cause is almost always one of seven things: the manual payment method isn't active, the customer's address has no shipping rate, the country isn't in an active market, a gift card is applied, a payment customization is hiding it, the order doesn't match a COD app's conditions, or you're testing wrong. Work through the checklist below in order — it resolves nearly every case we see in support.
We build ACOD, a COD fee and rules app, and “COD is not showing” is the single most common question merchants bring to our support chat — usually about setups that don't involve our app at all. Shopify computes the payment-method list at the very last step of checkout from several independent settings, and any one of them can silently remove Cash on Delivery. Here is the complete diagnostic, in the order that finds the problem fastest.
1. Is Cash on Delivery active as a manual payment method?
Go to Settings → Payments → Manual payment methods. “Cash on Delivery (COD)” must be added and active. Two traps here: first, deactivating a third-party COD gateway app does not activate the manual method — they are separate systems. Second, if you renamed the manual method (say, to “Pay on delivery”), it still works, but any app rule that targets the method by name must match the new name exactly.
2. Does the customer's address fall in a shipping zone with a rate?
Shopify only shows checkout payment options if the shipping address matches a shipping zone that contains at least one rate (Settings → Shipping and delivery). If a customer's country or region has no rate, checkout either fails earlier or quietly drops options. If you charge your COD fee through a dedicated COD shipping rate (the way ACOD does it), that rate must exist in every zone where you want COD offered — a COD rate created only for India will never produce a COD option for a UAE address.
3. Is the customer's country in an active market?
Check Settings → Markets. If the destination country isn't part of an active market, Shopify won't offer checkout for it at all — no payment methods, COD included. This one bites merchants expanding to a neighboring country: they add the shipping zone but forget the market.
4. Is a gift card (or store credit) applied?
When a gift card is applied to the order, Shopify hides all manual payment methods, including Cash on Delivery. This is platform behavior, not an app bug, and it surprises everyone the first time. If a test order mysteriously has no COD option, check the payment section for an applied gift card first.
5. Is a payment customization hiding it?
Go to Settings → Checkout and review the payment customizations listed there — including ones created by apps you've installed (ACOD's rules appear there too). A “hide COD when X” rule that matches more broadly than intended is the most common cause we debug: a country list with the wrong country, a postal-code prefix that catches more codes than planned, or a maximum order value set lower than you remember. Deactivate customizations one at a time and retest to isolate the culprit.
6. Does the order actually match your COD app's conditions?
If you use a COD rules app, the inverse of #5 also applies: COD may be configured to show only when conditions match — order total between a minimum and maximum, specific products absent from the cart, customer not tagged as risky, a particular shipping method selected. Re-read each active condition against the exact cart you're testing. In ACOD, rules combine, so one unmet condition hides COD even when the others pass.
7. Are you testing the right way?
- Test with a real, complete address in the target country — the payment list is only computed at the payment step, after a valid shipping address is entered.
- Go all the way to the payment step. The cart page and the information step tell you nothing about payment methods.
- Test in an incognito window or logged out — customer tags on your own account can trigger tag-based rules.
- If your app has a testing mode, use it. ACOD's testing mode shows the COD setup only to checkouts using the email test@example.com, so you can verify changes on a live store without exposing them to real customers.
Still not showing?
If all seven checks pass and COD still doesn't appear, you most likely have two customizations fighting each other — for example a currency app, a shipping app, and a COD app each adding checkout rules. List every app in your store that touches checkout, and test with all but one disabled. If ACOD is one of them, message us in the in-app chat with your checkout address and cart — walking through exactly this list with merchants is a daily routine for us, and setups get fixed in minutes, not days.
Want COD rules that are easy to see and test?
ACOD shows every show/hide rule in one place, with a safe testing mode and per-condition control by location, order value, products, and customer tags.
Install ACOD on Shopify — 7-day free trialFrequently asked questions
›Why does Cash on Delivery disappear when a gift card is applied?
That's built-in Shopify behavior: applying a gift card hides all manual payment methods, including COD. No app setting can override it. The order has to be paid without the gift card for COD to reappear.
›Does COD require a specific shipping rate to exist?
Payment methods only appear when the shipping address falls in a zone with at least one rate. If your COD fee is charged through a dedicated COD shipping rate, that rate must exist in every zone where COD should be available.
›Why does COD show for me but not for my customers?
Usually location or tags: your test address is in a covered zone while theirs isn't, or a customer-tag rule treats your account differently. Test logged out, with the exact address a real customer reported.
›Can a COD app hide Cash on Delivery by mistake?
Yes — any payment customization with a too-broad condition can. Check Settings → Checkout for active customizations and disable them one at a time to find the rule that's matching unexpectedly.