Checkout4 min read

Refused COD Orders on Shopify: Hide COD for Repeat Refusers

Buyers who refuse Cash on Delivery parcels cost you shipping both ways. How to spot them in Shopify, what you can do natively, and how to hide COD after a refusal.

In this guide
  1. What a refused COD order looks like in Shopify
  2. What you can do natively
  3. Hide COD at checkout instead
  4. The guest checkout gap
  5. Where Payora: Hide Payment Methods fits
  6. FAQ

The parcel went out with Cash on Delivery. The courier rang the bell, and the buyer refused it, or was never home, or the phone number led nowhere. A week later the parcel is back on your shelf, you have paid shipping twice, and the same buyer can place the next COD order tomorrow.

Refused and fake COD orders are the price of offering COD, and most shops accept some of them. What hurts is the repeat case: the same customer ordering again with COD while their last COD order is still on its way, or right after refusing one. This guide covers how to spot those buyers in Shopify, what you can do without an app, and how to hide COD for them automatically.

What a refused COD order looks like in Shopify

In Shopify, Cash on Delivery is a manual payment method, and its orders stay unpaid until you mark them as paid (Shopify Help Center: Manual payment methods). When a parcel comes back refused, Shopify does not know that by itself. The order stays unpaid and fulfilled until you act on it.

Your options are to cancel the order, so it is recorded as cancelled, or to leave it as it is and record the refusal in a note or a tag. Cancelling is the clearer record: it shows on the customer’s order list and can be filtered, and anything that reads order history can count it.

Make it a habit: when a refused COD parcel is back, cancel the order, restock the items and, if you use one, add a tag such as cod-refused.

What you can do natively

Shopify has no setting that hides COD for a customer based on their past orders. Without an app you have three manual routes:

  1. Check before you ship. Open new COD orders, look at the customer’s order list, and call or email before shipping if their last COD order was cancelled.
  2. Hold risky orders. Add a tag and leave the order unfulfilled until the buyer confirms, or ask for prepayment.
  3. Tag the customer. Add a customer tag such as no-cod after a refusal. On its own, a tag changes nothing at checkout; you need a payment rule that reads it.

All three work, but they all happen after the order is placed, and they all depend on someone remembering to do them.

Hide COD at checkout instead

Shopify lets apps hide payment methods at checkout with a payment customization, a Shopify Function managed under Settings > Payments > Payment customizations (Shopify Help Center: Checkout customization). If the rule can see the customer’s COD history, the buyer who refused last week never gets the COD option, and pays by card or another method instead, or does not order.

Two rules cover most cases:

  • Hide COD while a COD order is still open. One unpaid COD parcel on the road is enough. A second one doubles the risk before the first is settled.
  • Hide COD after a cancelled COD order. The customer who refused a parcel recently pays upfront next time.

Keep a time window. A refusal last spring, followed by several paid orders, should not block a loyal customer forever.

The guest checkout gap

Order history only works when the checkout knows who the buyer is. A buyer who checks out as a guest has no account, so a rule sees no orders, no spending and no COD history. A repeat refuser who checks out as a guest looks like a new buyer.

There is no perfect answer, but two rules narrow the gap:

  • COD only for logged-in buyers. Hide COD when the buyer is not logged in. This is strict, so try it on one market first.
  • A lower COD limit for first-time buyers. Hide COD above a small cart total for buyers with no orders, and keep the normal limit for returning customers. See hiding Cash on Delivery above an order total.

Where Payora: Hide Payment Methods fits

Payora: Hide Payment Methods is an app that hides, renames or moves payment methods at checkout, with rules that run as a Shopify Function. It has order history conditions built for COD:

  • Open COD orders: the customer’s Cash on Delivery orders of the last 60 days that are not cancelled, not archived and not fully fulfilled.
  • Cancelled COD orders: the customer’s cancelled Cash on Delivery orders of the last 60 days. A refused parcel counts once you cancel the order in Shopify; a refund or return alone does not count.
  • Customer orders and Customer total spent, for rules that treat first-time buyers differently.
  • Customer login and Customer tag, for guest rules and the customers you tag by hand.

The preset Hide COD while a COD order is open builds the first rule for you. An order counts as Cash on Delivery when its payment name contains one of the names under Settings › Cash on Delivery names, which start with common names such as “Cash on Delivery”, “Nachnahme”, “Contrassegno”, “Pobranie” and “Ramburs”. To keep the counts, the app reads order IDs, customer IDs, payment names, dates and fulfillment status, saves two numbers on the customer in your store, and does not store the orders. Guests count as customers with no orders.

See the app’s page.

FAQ

Can Shopify block a customer from using Cash on Delivery? Not from the payment settings. A payment customization can hide COD for a customer, based on a customer tag or on their order history.

How do I mark a refused COD order in Shopify? Cancel the order when the parcel is back, restock the items, and add a tag if you track refusals. A cancelled order is a record that rules and reports can count.

Does hiding COD stop the customer from ordering? No. They still see your other payment methods, such as cards or bank transfer.

What about buyers who check out as guests? Guests have no order history at checkout. Use a login rule or a lower COD limit for first-time buyers.