Cash on delivery on Shopify: confirm orders over WhatsApp before you ship

Why COD orders get refused at the door, how a WhatsApp confirmation with Confirm and Cancel buttons cuts returns, and how to set it up so replies tag the order automatically.

If you sell with cash on delivery, you know the pattern: the parcel travels across the country, the customer is not home or has changed their mind, and you pay the outbound and return shipping for nothing. Confirming the order over WhatsApp within minutes of checkout is the cheapest fix, and it works because the customer is still holding their phone.

Why a WhatsApp confirmation works better than a call

  • It arrives instantly and asynchronously; nobody has to pick up.
  • The customer taps a button instead of typing, so replies are unambiguous.
  • It doubles as an order summary, which catches wrong sizes and addresses early.
  • It creates a written record that the order was confirmed, useful when a courier reports a refusal.

How the flow works in Beacon Messenger

  1. A customer places an order with a cash-on-delivery or manual payment gateway.
  2. Shopify sends the orders/create webhook. Beacon Messenger recognises the gateway and queues the Cash on delivery confirmation automation, after any delay you configured.
  3. The customer receives your approved template with the order details and two quick-reply buttons: Confirm order and Cancel order.
  4. When they tap Confirm, Meta sends the reply to Beacon Messenger's webhook, which adds the tag beacon-cod-confirmed to the order in Shopify. Tapping Cancel adds beacon-cod-cancelled.
  5. Your fulfilment team filters orders by tag. Ship the confirmed ones, hold or cancel the rest, and follow up manually on orders with no reply.

Creating the template in WhatsApp Manager

Create a utility template with a body such as "Hi {{1}}, thanks for ordering from {{2}}. Order {{3}} totals {{4}} and will be paid in cash on delivery. Please confirm so we can ship it." Add two Quick reply buttons labelled Confirm order and Cancel order. Utility templates with quick replies are normally approved within minutes to a few hours. In Beacon Messenger, map {{1}} to customer first name, {{2}} to shop name, {{3}} to order number and {{4}} to order total.

Handling no replies

Not every customer responds. Decide a rule, such as shipping after 24 hours without a reply for repeat customers and holding first orders, and make it visible to whoever packs. The delivery log shows whether the confirmation was delivered and read, which helps distinguish a customer who is ignoring you from one whose number is wrong.

Things to avoid

  • Sending the confirmation from a personal WhatsApp account or an unofficial gateway. Automated sends from those get numbers banned.
  • Asking for anything beyond a confirmation in the first message. Keep it to the order; questions about substitutions can come after the tap.
  • Charging customers to confirm. The message is a utility conversation billed to your Meta account; it should never be a paywall for the shopper.

More guides