# COD Order Tags: COD-CONFIRMED, COD-CANCELLED and Your Fulfilment Workflow

> How to use order tags like COD-CONFIRMED, COD-CANCELLED and COD-UNREACHABLE so your packing team ships only confirmed cash-on-delivery orders, with a daily routine and naming tips.

Source: https://edesy.in/blog/cod-order-tags-fulfilment-workflow-2026

**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](https://edesy.in/cod-order-confirmation/shopify)
> 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](https://edesy.in/cod-order-confirmation/how-it-works) for the full list.

## The daily routine

### Morning

1. **Filter: COD orders with COD-CONFIRMED** plus prepaid orders. That is today's packing list.
2. **Filter: COD-UNREACHABLE.** Apply your rule. Many stores ship low-value orders and hold
   high-value ones for a manual call.
3. **Filter: COD-PENDING.** Customers answered but didn't press anything. Decide whether to call
   them yourself or treat them like unreachable.

### Before pickup

4. **Re-run the packing filter.** Orders confirmed since the morning join the list.
5. **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

6. **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](https://edesy.in/blog/rto-cost-per-cod-order-calculation-2026).

## Get tags on every COD order

If you're on Shopify, [join the pilot for Shopify COD confirmation calls](https://edesy.in/cod-order-confirmation/shopify).
We set up the connection, the tags and the script with you, then your team works from the filters
above.

## Related reading

- [What is COD order confirmation?](https://edesy.in/blog/what-is-cod-order-confirmation-2026)
- [When to call a COD customer](https://edesy.in/blog/best-time-to-call-cod-customers-india-2026)
- [Fake COD orders: how to filter before shipping](https://edesy.in/blog/fake-cod-orders-how-to-filter-2026)

## Frequently Asked Questions

### What does the COD-CONFIRMED tag mean?

It marks a cash-on-delivery order that the customer has confirmed, for example by pressing 1 on a confirmation call. Packing teams filter on it so only confirmed COD orders are packed and handed to the courier.

### Should a cancelled COD order be tagged or cancelled?

Cancelled, if your platform and process allow it, so it can't reach packing by accident. A tag such as COD-CANCELLED alongside is useful for reporting, but the order status is what stops it being shipped.

### Do confirmation tags change the payment status?

They shouldn't. A tag records the customer's answer. Payment status for a COD order changes when the cash is collected and remitted, through your normal COD process.

### What if my platform doesn't support tags?

Use what it does support. WooCommerce, for example, has no order tags, so confirmation is recorded as an order note and, if you choose, a status change. The workflow is the same: the packing team filters on the confirmed status.
