Everything between the cart
and the courier.
Six core capabilities, three supporting ones. Each fixes a specific way a COD order fails. All of them configured from one dashboard.
A fake number never becomes an order.
Customers confirm their phone over WhatsApp or SMS before a COD order can be placed. Mistyped and throwaway numbers drop out at the cart, not at the doorstep.
A verification modal appears on the storefront — product page, cart page and cart drawer included. The shopper enters their mobile number, receives a one-time code, and confirms it to proceed.
If they never verify, they cannot place a COD order. They can still pay prepaid, or leave. That is exactly the point: an unverified COD order is the one most likely to come back to you.
Codes are six digits, expire in ten minutes, and are stored as SHA-256 hashes — never in plaintext. Delivery runs through the Meta WhatsApp Cloud API with every credential held server-side.
- Channels
- WhatsApp, SMS, or both
- Code length
- 6 digits, 10-minute expiry
- Rate limit
- 3 sends per number per 10 min
- Returning customers
- Optional skip for verified phones
Every COD order scored before it ships.
Address quality, order history and behavioural signals produce a 0–100 score and a LOW / MEDIUM / HIGH / CRITICAL band on every cash-on-delivery order.
You set the thresholds. Orders at or above your auto-flag score are held for review; if you choose to enable it, an auto-cancel score stops them before dispatch entirely.
The score and its full signal breakdown are saved with every order, so a flag is never a black box — you can see precisely which signals fired and audit the decision months later.
- Score range
- 0–100, four risk bands
- Auto-flag
- Default: flag at 80 and above
- Auto-cancel
- Off by default, yours to enable
- Audit
- Signal breakdown stored per order
A prepaid order cannot come back.
Offer an automatic discount for paying upfront — typically 5–10% — and let the arithmetic do the work. Every conversion is margin that can no longer be returned to origin.
The discount is created and applied automatically at checkout. There are no coupon codes to manage, no manual reconciliation, and the applied percentage is recorded against the order for reporting.
A 7% discount on a ₹1,500 order costs you ₹105. One returned COD order of the same value costs two-way freight plus restocking. The trade is rarely close.
- Setup
- One percentage field
- Discount
- Created and applied automatically
- Reporting
- Prepaid share tracked daily
Take a deposit now, the balance on delivery.
Collect a token amount at checkout and the remainder when the parcel arrives. A customer who has already paid something is far more likely to accept it.
CODGuard uses a Shopify draft order so real products check out discounted down to the deposit — no placeholder products, no inventory side effects. Variant prices are fetched server-side, so the deposit cannot be tampered with from the browser.
When the order arrives, CODGuard runs a Shopify order edit: deposit lines go to zero, the real products come in at full price, and a staff note records deposit paid versus balance due on delivery.
- Default upfront
- 30%, configurable
- Mechanism
- Draft order + automatic order edit
- Balance
- Split proportionally across cart lines
Decide exactly when COD is on the table.
Block COD by pincode, cap it above a cart value, exclude products or entire collections, and add a handling fee — all from the dashboard, with no theme code.
Rules are evaluated in priority order and each one can BLOCK or ALLOW, so you can carve exceptions out of broad policies rather than maintaining two lists.
Enforcement happens at checkout through a Shopify payment customization function, which hides the cash-on-delivery method entirely when your rules say so. Buyers never see an option they cannot use.
- Pincode
- Block high-RTO delivery zones
- Cart value
- Require prepaid above a threshold
- Catalogue
- Exclude products or collections
- COD fee
- Surfaced as a Shopify delivery rate
Find out whether the change actually worked.
Every OTP, payment selection, message and order is recorded. The dashboard compares each rolling 30-day window against the one before it.
Daily roll-ups track total orders, the COD / prepaid / partial split, RTO count, OTPs sent and verified, messages delivered, abandoned versus recovered checkouts, and address corrections.
Underneath sits an immutable event log and a structured error log — a full audit trail of the COD funnel down to the delivery status of an individual message.
- Comparison
- 30 days vs. previous 30
- Granularity
- Down to a single message
- Retention
- Immutable event trail per shop
The three that quietly
save the awkward ones.
A wrong address, a shopper who nearly bought, and the customer you would rather not ship to again.
Address correction
Fix a bad address before the courier finds it.
When fulfilment spots an undeliverable address, they trigger a correction from the Shopify order screen. The customer gets a WhatsApp link, submits the fix, and it syncs straight back to the order.
The form is hosted by CODGuard behind a single-use token, so the customer never needs an account and staff never retype an address from a phone call.
- Trigger
- Admin action on the order
- Channel
- WhatsApp magic link
- Sync
- Writes back to the Shopify order
- Plans
- Starter and above
Abandoned checkout recovery
Bring back the shopper who nearly verified.
Checkouts that started the OTP flow but never converted are tracked separately, so recovery messages reach people who were one tap from ordering.
These are the warmest carts you have: the shopper chose a payment mode and asked for a code. Recovery messages are billed at your plan's message rate, like any other message.
- Tracked
- OTP started, order never placed
- Reporting
- Abandoned vs. recovered, daily
Blacklist & whitelist
Some customers you never want to ship to again.
Maintain per-store lists by phone or email that always block — or always allow — a specific customer, regardless of what the rules and risk score say.
Whitelists matter as much as blacklists: your best repeat buyers should never be slowed down by a rule written for strangers.
- Match on
- Phone or email
- Effect
- Hard block or hard allow
Shopify-native, all the way down.
No script injection, no theme edits, no parallel checkout. Every enforcement point uses a mechanism Shopify built for it.
How the integration works- App embed block
- Renders the verification modal on the product page, cart page and cart drawer — no theme code.
- Payment customization
- A Shopify Function that hides COD at checkout when your rules disallow it.
- Delivery customization
- Hides COD-specific delivery options on prepaid and partial orders, and never hides the cheapest option for a COD buyer.
- Admin order action
- Lets fulfilment trigger an address correction from the Shopify order screen.
- App proxy endpoints
- The storefront talks to CODGuard under your own domain, authenticated by Shopify HMAC.
- Order attributes
- Payment mode, verification state and session id ride along with every checkout.
