9 min read Cash on Delivery
How to Enable Cash on Delivery in Shopify: Setup Guide
Turn on Cash on Delivery in Shopify, then decide phone, visibility, and mark as paid rules before you send traffic to checkout.
Shopify lets you turn on Cash on Delivery from Settings > Payments by activating the suggested manual payment method called Cash on Delivery (COD). No app or developer work is required for that one step.
The toggle alone does not control who sees it. Country, postal code, and cart value rules still need a payment customization function or a dedicated app, and skipping that step is a frequent reason a rollout generates support tickets instead of sales.
What Enabling Cash on Delivery Actually Changes
Shopify documents Cash on Delivery as a manual payment method: the customer places the order online, payment happens outside card checkout, and the order is marked Pending, shown as unpaid on the Orders page, until you collect the cash and mark it paid yourself.
Why "Enable" and "Restrict" Are Different Questions
Merchants often expect activation to also decide who sees Cash on Delivery, but native manual payment settings do not include that logic.
Shopify's Payment Customization Function API can hide a payment method by country, cart total, or customer data in checkout, but building one means writing and deploying a Shopify Function with the CLI, not flipping a switch in Settings.
Native checkout settings do not expose a per-payment-method OTP toggle, so requiring OTP only for Cash on Delivery orders needs a checkout extension or an app layered on top of checkout.
Collecting the full order amount through a Cash on Delivery form, instead of a deposit, describes prepaid checkout with delivery-only fulfillment. Cash on Delivery itself exists for orders where part or all of the payment happens at the door: a COD app's partial payment feature, for example, charges less than the full order total and leaves the remainder for delivery.
What Changes for Fulfillment and Support
Every Cash on Delivery order needs someone to mark it paid after the cash is collected, or it stays Pending on the Orders page indefinitely. Decide who does that and when before launch, not after the first order ships.
If a carrier or OTP step needs to reach the customer, set Shipping address phone number to Required under Settings > Checkout: Optional is the default and does not block checkout. For the address and phone problems that show up after launch, see our COD address and phone quality checklist.
The Setup Workflow
Six decisions cover a typical native Cash on Delivery rollout:
- Go to Settings > Payments and choose the suggested Cash on Delivery (COD) method, or a custom manual payment method if you need different wording or more than one cash-based option.
- Write the Additional details and Payment instructions text before activating: customers read this at checkout and on the order confirmation page.
- Set Shipping address phone number to Required under Settings > Checkout if a carrier, driver, or OTP step needs it.
- Decide how you will restrict visibility. Native manual payment settings do not include country, postal code, or cart value conditions: that needs a payment customization function, or an app that adds the same kind of rule without you writing one, such as Progus COD Form.
- Decide who marks Cash on Delivery orders paid and when, and write it into your fulfillment process so orders do not sit Pending.
- Place one test order from an included market and one from an excluded market to confirm the restriction behaves as intended.
If you also want a handling fee, see our COD fee setup guide for Shopify checkout. For the risk and verification side of Cash on Delivery in a dropshipping supply chain, see our Cash on Delivery for Shopify dropshipping guide.
Before You Turn On Traffic
Treat the rollout as finished once three things hold in testing: orders get marked paid inside the window you decided, the right markets see or do not see Cash on Delivery, and support is not fielding questions about wording or a missing phone number. Fix whichever fails before adding traffic.
Final Thoughts
Turning on Cash on Delivery in Shopify is a short settings change: pick the method, write the instructions, activate. Getting it ready for real orders is a separate, short list of decisions: wording, phone requirement, visibility, and who marks payment collected.
Skip these decisions and they show up later as Pending orders nobody claims, phone numbers a carrier cannot use, or Cash on Delivery appearing where it should not. Work through the six steps above before the first real order ships, not after support asks why it is still unpaid.
FAQ
Does Shopify charge a fee for Cash on Delivery orders?
No. Shopify documents that manual payment methods, including Cash on Delivery, are not charged third-party transaction fees, unlike card or wallet payments.
Can I turn off Cash on Delivery for specific products only?
Not from the payment method settings directly. Hiding it for specific products or collections needs a payment customization function, or an app that reads product or collection rules at checkout.
Can I require a deposit before shipping a Cash on Delivery order?
Yes. On Shopify Plus, a payment customization function can set payment terms with a deposit; on other plans, use a COD app that takes a partial prepayment and leaves the rest for delivery.
If I deactivate Cash on Delivery, do past orders change?
Shopify's documentation does not address this directly. It says a manual payment method can be deactivated and reactivated at any time, not what happens to orders already placed under it. Don't assume past orders change when you turn Cash on Delivery off; check your order history if that matters for your records.
Add a 1-click COD order form to Shopify. About COD Form ›