Fetchply Docs
Integrations and channels

Cash on delivery confirmation

Ask Shopify shoppers to confirm cash-on-delivery orders on WhatsApp before you ship, so you stop paying to send parcels that get refused.

A cash-on-delivery order is the most expensive order you can ship. Nobody has paid yet, so if the shopper changes their mind or never really meant to order, you pay to send the parcel and pay again to get it back.

Cash on delivery confirmation asks the shopper to confirm the order on WhatsApp within seconds of it being placed. Your assistant answers their questions about delivery, the product, or sizing while they decide, and their answer is written straight onto the Shopify order as a label so your packing team only ships orders somebody actually wants.

It is off until you turn it on, and it only ever affects cash-on-delivery orders. Prepaid orders are untouched.

What the shopper sees

They receive one WhatsApp message naming their order number and total, with three choices:

  • Confirm Order — you are clear to ship.
  • Change Order — they want something different. The order is held and your team is told what they asked for.
  • Cancel Order — nothing is shipped and there is nothing to collect.

They can also just reply with a question first. Your assistant answers it from your store's own information, then asks them again to confirm. Asking a question never decides the order either way.

Before you start

You need three things:

  • A connected Shopify store. See Shopify.
  • A connected WhatsApp business number. See WhatsApp.
  • An approved WhatsApp message. WhatsApp only lets a business start a conversation using wording it has approved in advance. You create and submit this in WhatsApp Manager; approval is usually quick.

Fetchply also needs permission to update your orders, so it can put the label on them. If your store was connected before this feature existed, simply open the Fetchply app in your Shopify admin once and approve the updated permissions when prompted.

If any of these is missing, the Cash on delivery screen tells you which one and will not let you switch the feature on. That is deliberate: starting a conversation we cannot finish would leave your team shipping an order the shopper had already cancelled.

Your approved WhatsApp message

Submit a message in the Utility category — it is about the shopper's own order, not marketing, which is both correct and cheaper to send.

Your wording needs three details, in this order:

  1. the shopper's first name;
  2. the order number;
  3. the order total.

Add three buttons labelled Confirm Order, Change Order, and Cancel Order.

For example: Hi {{1}}, thanks for your order {{2}}. The total is {{3}}, payable when it arrives. Please confirm so we can ship it.

Once WhatsApp approves it, enter its name and language code on the Cash on delivery screen exactly as they appear in WhatsApp Manager.

Set it up

Open Cash on delivery

In your Shopify admin, open the Fetchply app and choose Cash on delivery.

Enter your approved message

Add the message name and language code. If the screen still lists a missing prerequisite, resolve that first.

Choose your reminder settings

Pick how long to wait before the first reminder, how many reminders to send (up to three), and how long to keep waiting before giving up. The defaults wait six hours, send two reminders, and give up after two days.

Check your label wording

Orders are labelled COD Awaiting Confirmation, COD Confirmed, or COD Cancelled. Change the wording if your team filters on different words.

Turn it on and save

Switch on Ask customers to confirm cash-on-delivery orders and save. The next cash-on-delivery order that comes in gets a message.

Order labels

Every order in the flow carries exactly one label at a time, so you can filter your Shopify orders list and ship with confidence:

LabelMeaning
COD Awaiting ConfirmationApplied the moment the order arrives, before any message goes out. Do not ship yet.
COD ConfirmedThe shopper confirmed. Safe to ship.
COD CancelledThe shopper cancelled. Do not ship.
COD Change RequestedThe shopper wants something different. Held for your team.

The order itself is left open when a shopper cancels: the label tells your team not to ship it, while leaving you free to change your mind. Cancel or archive the order in Shopify yourself whenever you are ready.

An order nobody answers keeps its awaiting label. It is never quietly treated as confirmed.

Recognising your cash-on-delivery orders

Shopify shows the payment method differently depending on how your store is set up, so Fetchply matches the usual names automatically — including "Cash on Delivery", "COD", and manual payment.

If your store labels it differently, add your own wording under Cash-on-delivery payment names. You can check what your store actually sends by opening a recent COD order in Shopify and looking at its payment method.

Offering an extra item

You can offer one optional add-on after the shopper confirms, before the order is finalised. Choose the product variant, its price, and what you want to say.

The shopper's order ships either way — the offer is asked once and never repeated. If they accept, the item is added to their existing order and they are told the new total, all payable on delivery.

Seeing your results

Open Cash on delivery in your Fetchply dashboard sidebar, or the same section inside the Shopify app, to see for any period:

  • total cash-on-delivery orders;
  • how many were confirmed, cancelled, or still awaiting an answer;
  • upsell revenue from accepted add-ons;
  • estimated shipping cost you avoided;
  • anything needing your attention, such as change requests.

The shipping figure needs one number from you: your average shipping cost, which you enter on the Cash on delivery screen. Until you do, the card says so rather than showing a zero, because we would otherwise be inventing a saving you cannot verify.

Troubleshooting

A cash-on-delivery order did not get a message. Check the Needs your attention list on the Cash on delivery results, which names the reason. The most common one is that your store labels COD differently from the usual names — add your store's wording under Cash-on-delivery payment names. Note that only orders placed after you switched the feature on are included; your existing orders are never messaged.

The screen says Fetchply needs permission to update orders. Open the Fetchply app from your Shopify admin and approve the updated permissions. Until then, cash-on-delivery confirmation stays off and everything else keeps working normally.

The screen says I need an approved WhatsApp message. WhatsApp does not allow a business to open a conversation with free wording. Submit a message for approval in WhatsApp Manager, then enter its name and language code. Shoppers who happen to have messaged you in the last day can be reached without one, but most cannot.

The shopper has no phone number on the order, or it is missing a country code. Nothing is sent and the order keeps its awaiting label, so your team can follow up by another route. A number saved in local form — for example starting with a single 0 — is not used, because without a country code it could reach a different person entirely. Ask for a phone number including the country code at checkout if this happens often.

The shopper never answers. They get your configured reminders, then the order is left unconfirmed with its awaiting label. Nothing is shipped on the strength of silence. They can still reply later and the conversation carries on.

The shopper asks a question instead of choosing. Your assistant answers from your store's information and asks again. If it does not know something — an exact delivery date, for instance — it says so rather than guessing, and offers to pass the question to a person.

One shopper has two cash-on-delivery orders open. Every message names its order number, and each set of buttons only ever applies to the order it was sent about, so confirming one never touches the other.

The shopper tapped a button from an older message. They are told the current state of that order and what they can still do, rather than an old choice being applied to a decision that has moved on.

The extra item was not added to the order. Some orders cannot be edited once Shopify has moved them along. When that happens the request is written onto the order and it is labelled COD Upsell Requested so your team can add it manually. The shopper's original order is still confirmed, and no revenue is reported for an item that was not actually added.

I cancelled the order in Shopify myself. Fetchply stops chasing the shopper immediately and closes the confirmation. No further messages are sent.

WhatsApp disconnected. No confirmations are sent while it is disconnected, and the reason appears in Needs your attention. Reconnect your number and new orders resume; orders still inside their deadline can still be answered.

My message allowance ran out. Confirmations are paused and the reason is listed. They resume on your next renewal or when you add more messages.

I uninstalled and reinstalled the app. Your settings and results are kept for a short while, so a quick reinstall picks up where you left off. You may need to approve permissions again.

Good to know

  • Only cash-on-delivery orders are touched. Prepaid orders never receive a confirmation message.
  • A shopper is never messaged twice about the same order, and never gets more reminders than you configured.
  • The whole conversation appears in your Fetchply inbox, so you can read it and step in at any point. While one of your team is handling a chat, automatic messages stay out of the way.
  • A shopper who asks not to be contacted stops receiving reminders.
  • Confirmation messages count towards your plan's message allowance.