How to stop prepaid orders paying the COD shipping fee on Shopify
Short answer: When the shopper picks the shipping rate that includes your COD fee, hide every payment method except Cash on Delivery so prepaid orders never pay the fee. In Checkpost, choose “COD fee: prepaid methods off with the COD rate” from Templates, adjust the values, test it, then save and enable the rule.
The problem
If prepaid methods stay available with the COD rate, shoppers who choose it and then pay by card are charged a cash fee for nothing, which leads to complaints and refunds.
How to set it up
- Install Checkpost from the Shopify App Store.
- Open Templates and choose COD fee: prepaid methods off with the COD rate.
- Use the word in your COD rate's name and the name your checkout shows for cash on delivery.
- Use Try this rule to test a sample cart, then click Save rule.
The rule
Hide payment methods except those containing "Cash on Delivery" when all of these conditions is true:
- Delivery method name contains any of COD
Shoppers see no message: the methods are changed before checkout shows them.
Rule definition (JSON)
{
"name": "Only COD with the COD rate",
"action": {
"kind": "hide_payment",
"methods": [
"Cash on Delivery"
],
"match": "except"
},
"match": "all",
"conditions": [
{
"kind": "text",
"field": "delivery_method_title",
"op": "contains_any",
"values": [
"COD"
]
}
]
}Examples with the default settings
These outcomes apply to this rule alone. Other enabled rules may also affect checkout.
| Test cart | Expected outcome |
|---|---|
| Standard (COD) chosen: only COD remains | Hide payment methods except those containing "Cash on Delivery" |
| Standard chosen: every method stays | Methods unchanged by this rule |
Where this rule works
This changes matching payment methods that Shopify exposes to the customization. Payment rules do not have the same express-checkout coverage as cart validation. Shopify limits wallet customization and credit-card customization on non-Plus US/Canada stores. See Shopify's payment compatibility and verify your COD/manual method in a development store. Geographic payment rules currently use the first delivery group's address.
Tips
- "Every method except" hides all payment methods whose name doesn't contain Cash on Delivery. Check the exact name your checkout shows.
- Install it with "COD fee: offer COD only with the COD rate". The pair makes the COD rate and Cash on Delivery go together.
- Express buttons such as Shop Pay or Apple Pay appear before shipping is chosen and aren't affected by this rule.
FAQ
What if Cash on Delivery isn't offered for the address?
Then no payment method remains with the COD rate, and the shopper has to pick the normal rate. Offer the COD rate only in zones where you accept cash on delivery.
Related rules
Hide cash on delivery over $500
Hide the Cash on Delivery payment method when the cart subtotal is over 500, so big orders are paid upfront.
Hide cash on delivery for first orders
Only returning customers can pay cash on delivery: hide it for guests and customers without a previous order.
Hide pay-later methods for pre-orders
Hide buy-now-pay-later and cash on delivery when the cart contains pre-order products.
Show bank transfer first for wholesale
Move the bank transfer payment method to the top of the list for customers tagged wholesale.
Add cod fee: prepaid methods off with the cod rate to your store