Order tags turn a confirmation call into a packing decision. When every COD order carries a tag such as COD-CONFIRMED, COD-CANCELLED or COD-UNREACHABLE, your fulfilment team can filter the order list and pack only what the customer has confirmed, without asking anyone. This post covers what each tag means, how to name them, and a daily routine that works for small and growing teams.
For Shopify stores: Shopify COD order confirmation calls tag each order COD-CONFIRMED or cancel it, based on the customer's keypress. In pilot; we set it up with you.
The tag set
A simple, complete set covers every outcome of a confirmation step:
| Tag | Meaning | What the warehouse does |
|---|---|---|
| COD-CONFIRMED | Customer confirmed (pressed 1) | Pack and ship |
| COD-CANCELLED | Customer cancelled (pressed 2) | Nothing; the order is cancelled |
| COD-PENDING | Answered but gave no answer | Wait for follow-up or apply your rule |
| COD-UNREACHABLE | No answer after every attempt | Apply your rule: ship, hold or call manually |
| (no tag) | Not yet called, or not a COD order | Prepaid orders ship as normal; COD waits |
The last row matters. A COD order with no confirmation tag is one the system hasn't finished with. Your packing filter should exclude it until it gets a tag.
Naming tags well
- Use one prefix for the whole set. COD-CONFIRMED, COD-CANCELLED and COD-UNREACHABLE sort together and are easy to find in a tag list.
- Upper case, hyphenated, no spaces. Fewer typos in filters, and they stand out on the order page.
- Don't collide with other apps. Shipping, checkout or review apps may add their own tags. If one of them already uses a similar name, rename yours so filters don't mix them up.
- Keep them stable. Saved filters and reports break if someone renames a tag mid-month.
On Edesy, the labels for confirmed, cancelled, pending and unreachable are configurable, so you can match an existing convention.
How the tags get there
On Shopify, a confirmation call ends in one of these:
- Press 1: the order gets the confirmed tag and a note.
- Press 2: the order is cancelled using Shopify's own order cancel, the same as cancelling it in your admin.
- No key pressed: the order gets your no-input (pending) label.
- No answer after the last retry: the order gets your unreachable label.
- Already cancelled or already tagged confirmed before the call: no call is made.
Payment status isn't touched. It updates through your usual COD remittance.
Other platforms record outcomes differently. WooCommerce has no tags, so the answer is an order note and, if you choose, a status change (for example from on-hold to processing). A custom store receives the result at its own action URL and updates the order however it likes. See how COD confirmation calls work for the full list.
The daily routine
Morning
- Filter: COD orders with COD-CONFIRMED plus prepaid orders. That is today's packing list.
- Filter: COD-UNREACHABLE. Apply your rule. Many stores ship low-value orders and hold high-value ones for a manual call.
- Filter: COD-PENDING. Customers answered but didn't press anything. Decide whether to call them yourself or treat them like unreachable.
Before pickup
- Re-run the packing filter. Orders confirmed since the morning join the list.
- Check nothing untagged is packed. A COD order without a confirmation tag shouldn't be in the pickup batch unless you've chosen to ship it.
End of day
- Count each tag. Confirmed, cancelled, pending, unreachable. A sudden change, such as many more unreachable orders than usual, is worth looking at the next morning.
Worked example (illustrative)
Assumed round numbers, not data from any store: a store has 200 COD orders from the last 24 hours. At 9 am, 140 are tagged COD-CONFIRMED, 15 were cancelled, 10 are COD-PENDING, 20 are COD-UNREACHABLE and 15 are still being called. The packing team starts with the 140. The ops lead ships the unreachable orders under the store's value threshold and calls the rest. By the 4 pm pickup, more of the 15 still in progress have been confirmed and added to the list.
Who owns the tags
Give each tag set one owner, usually the operations lead. That person decides the names, the rule for unreachable orders and what happens to pending ones, and is the only one who renames anything. Packing staff read tags; they don't invent new ones. When a new app or warehouse joins, the owner checks that its tags don't clash with yours before it goes live.
Setting up saved views
In Shopify's orders list, save views so the team doesn't rebuild filters every day:
- Ready to ship (COD): tagged COD-CONFIRMED, unfulfilled
- Needs a decision: tagged COD-UNREACHABLE or COD-PENDING, unfulfilled
- Waiting for confirmation: COD orders (payment pending) not tagged with any confirmation tag, unfulfilled
Exact filter names vary with your admin version; the idea is one view per decision.
Name them clearly; new team members will rely on them.
Common mistakes
- Packing by "all unfulfilled orders". That includes COD orders not yet confirmed. Filter on the tag instead.
- Treating unreachable as cancelled. Some unreachable customers are real buyers who were busy. Decide by rule.
- Manual tags that look like automatic ones. If staff confirm an order by hand, use the same confirmed tag so the filter works, but add a note saying who confirmed it.
- Different tag names per warehouse. Keep one convention across locations.
Edits after confirmation
Orders change after they are confirmed. Agree in advance how the team handles it:
- Customer cancels after confirming (by email or chat). Cancel the order as usual. The confirmed tag stays as history, but the cancelled status keeps it out of packing.
- Address change after confirming. Update the address and leave the confirmed tag; the customer already confirmed the order itself.
- Order edited (items added or removed). If the COD amount changes a lot, consider confirming again by hand, so the customer isn't surprised at the door.
- Order split into several shipments. Confirmation covers the order; each shipment inherits it.
Write these rules down where the packing team can see them. Most mistakes in COD fulfilment come from people guessing what a tag means in an edge case.
Reporting with tags
Tags make simple reporting possible without a separate tool:
- Confirmation rate: confirmed ÷ COD orders called
- Cancelled on call: COD-CANCELLED ÷ COD orders called, which is the share of orders you stopped before shipping
- Unreachable rate: watch the trend; a rise can mean a calling-hours or script problem
Compare these with your RTO numbers over a few months; see how to calculate your real RTO cost per COD order.
Get tags on every COD order
If you're on Shopify, join the pilot for Shopify COD confirmation calls. We set up the connection, the tags and the script with you, then your team works from the filters above.