Cash on delivery is a conversion tool in some markets and a liability in others. The order gets placed, the parcel ships, and the buyer is not home or has changed their mind. You pay outbound and return shipping on a sale that never happened. The answer is rarely to switch it off entirely. It is to show it only to the orders where it works.

Where cash on delivery goes wrong

  • High-value carts. Refusal rates climb with the amount at the door.
  • Cross-border orders. Your courier may not even support it there, and the customs step doubles the refusal window.
  • First-time buyers. No history, no prepayment, no commitment.
  • Bulky or made-to-order products. Return shipping wipes out the margin.

Payment method rules in one minute

A payment method rule in Smart Checkout Widgets does one of three things to the payment methods Shopify has already produced: hide, rename, or re-order. It runs as a Shopify Function, so it works on every Shopify plan and applies before the buyer sees the payment step. Rules match the payment method's displayed name, case-insensitively, anywhere in the name, so "Cash" matches "Cash on Delivery (COD)".

Four rules that cover most stores

1. Hide cash on delivery above a cart value

Action: hide. Match: "Cash on Delivery". Condition: cart total greater than 500. Pick the number from your own refusal data, not a guess. Most stores find a clear threshold where refusals jump.

2. Hide it outside your home market

Action: hide. Condition: country is not PL, DE, CZ. Text conditions take comma-separated lists, so one condition covers every market where the option is safe. Postcode "starts with" conditions let you cut out remote areas within a country too.

3. Show it only to customers who have paid before

Action: show. Condition: customer order count greater than 0. Customer conditions match only a signed-in buyer, so a guest checkout never qualifies. That is the behaviour you want here: the buyer has to be someone you know.

4. Hide it for made-to-order and bulky collections

Action: hide. Condition: collection is "Furniture" or product tag is "made-to-order". Collection and product-tag conditions look at what is in the cart, so a single bulky item is enough to trigger the rule.

Combine conditions with any, all or none

Each rule runs always, or when any, all, or none of its conditions are met. "Hide COD when all of: total above 500, country is not PL" is stricter than "any of", which would hide it as soon as either is true. Decide which you mean before you save, then test both sides of the boundary.

Rename and re-order while you are there

If you keep cash on delivery, rename it to say what it costs: "Pay at the door (+€3 handling)". Move your preferred prepaid method to the top so it is the default eye lands on. Small changes in order and wording shift the mix toward the methods that actually settle.

Things worth knowing

  • Missing data never matches. Until the buyer enters an address, a country condition is false, including "country is not". Rules re-evaluate as checkout fills in.
  • Weight conditions are in grams whatever unit your variants use.
  • Rules are stored against your shop and applied by Shopify Functions, so a theme or checkout update does not reset them.

Measure it

Before you change anything, note your cash-on-delivery share of orders and its refusal rate for the last 90 days. Set the rules, wait a month, and compare. If refusals drop and total conversion holds, tighten the threshold. If conversion falls, loosen it. The rule is a dial, not a switch.

Frequently asked questions

Can I hide cash on delivery for orders over a certain amount in Shopify?

Yes. A payment method rule can hide any payment method when the cart total, subtotal, quantity or weight passes a value you set.

Do payment method rules require Shopify Plus?

No. They run as a Shopify Function, which is available on every Shopify plan.

Can I show cash on delivery only to returning customers?

Yes, with a customer order-count condition. It only matches signed-in customers, so guests never see the option.

Can I rename a payment method instead of hiding it?

Yes. Rename changes only the label the buyer sees, for example to add a handling fee note, and leaves the payment gateway unchanged.