How to reduce RTO in ecommerce comes down to two jobs: stop weak orders before they ship, and remove the reasons genuine buyers refuse parcels. Confirm every cash on delivery order by WhatsApp or phone, verify addresses, promise realistic delivery times, reward prepayment, and use couriers that attempt delivery properly and keep customers informed.
RTO, or return to origin, happens when a courier can’t deliver a parcel and sends it back to you. With cash on delivery, the buyer has paid nothing, so changing their mind costs them nothing. The seller pays for the trip out, the trip back and everything in between.
Below you’ll find a cost formula, 15 tactics rated by effort and impact, and the settings to automate confirmation in Shopify and WooCommerce.
Key takeaways
- Each RTO costs you shipping both ways, packaging, the ad spend that won the order and stock stuck in transit.
- Confirming COD orders by WhatsApp or phone before dispatch is the cheapest high-impact fix for most stores.
- Hold unconfirmed orders, cancel them after a set time, and flag phone numbers with repeat refusals.
- Offer a small prepaid incentive, and ask for a partial advance on high-value or high-risk orders.
- Judge couriers on delivery attempts, customer updates and RTO handling, not only on their rate card.
What is RTO in ecommerce, and why does cash on delivery drive it?
RTO is any shipped order that comes back undelivered. Your RTO rate in ecommerce is RTO orders divided by shipped orders, times 100. Track it by courier, city, product, traffic source and payment method, because one blended number hides where the losses come from.
Cash on delivery returns usually trace back to a handful of causes:
- The buyer changed their mind, found it cheaper elsewhere or ordered on impulse.
- The order was fake, a prank or placed by a competitor.
- The address or phone number was wrong or incomplete.
- The buyer wasn’t reachable or didn’t have cash when the rider arrived.
- Delivery took longer than expected and the need had passed.
- The product didn’t match the photos or size the buyer expected.
Every tactic below targets one of these causes. Work out which ones dominate your returns before you pick fixes.
How much does each RTO really cost?
More than the return fee. A refused parcel costs forward shipping, the courier’s return charge, packaging and handling, any COD fee, the ad spend that won the order, and damaged or unsellable stock. It also locks up cash and inventory for the days the parcel spends in transit.
Cost per RTO = forward shipping + return charge + packaging
+ ad cost per order + value of stock you can't resell
Monthly RTO cost = number of RTOs x cost per RTOExample
Illustrative numbers only: forward shipping PKR 250, return charge PKR 150, packaging PKR 60 and ad cost per order PKR 400 add up to PKR 860 per RTO. At 1,000 shipped orders a month and a 20% RTO rate, 200 returns cost PKR 172,000 before any damaged stock. Plug in your own courier rates and ad costs.
How to reduce RTO in ecommerce: which tactics work best?
Order confirmation, address checks and fake-order filters usually give the biggest drop for the least money, because they stop bad parcels before you pay to ship them. The ratings below are our practitioner judgment for a typical small store; test them against your own data.
| # | Tactic | Stage | Effort | Impact |
|---|---|---|---|---|
| 1 | Accurate photos, sizes and specs | Before the order | Medium | High |
| 2 | Honest delivery times by city | Before the order | Low | Medium |
| 3 | Clear COD, exchange and open-parcel terms | Before the order | Low | Medium |
| 4 | Phone and address validation at checkout | Checkout | Medium | High |
| 5 | Prepaid discount or free shipping | Checkout | Low | Medium |
| 6 | Confirm every COD order by WhatsApp or call | After the order | Low | High |
| 7 | Verify vague addresses with a landmark or location pin | After the order | Low | High |
| 8 | Hold, then cancel, unconfirmed orders | After the order | Medium | High |
| 9 | Flag repeat refusers and suspicious orders | After the order | Medium | High |
| 10 | Partial advance on high-risk orders | After the order | Low | Medium |
| 11 | Choose couriers by city performance | Delivery | Medium | High |
| 12 | Dispatch and out-for-delivery messages | Delivery | Low | Medium |
| 13 | Rescue failed attempts before the parcel returns | Delivery | Medium | Medium |
| 14 | Secure, professional packaging | Delivery | Low | Low |
| 15 | Log RTO reasons and rates by segment | After an RTO | Medium | High |
What should you fix before the order is placed?
Set expectations the parcel can meet. Most “not as expected” refusals start on the product page or at checkout.
- Accurate product pages: real photos, a size chart with measurements, materials, and a short video for anything where fit or texture matters. Our guide to optimizing category and product pages covers writing descriptions that answer buyers’ questions.
- Honest delivery times: show realistic days by city on the product page and at checkout. A parcel that arrives after the promised date is an easy one to refuse.
- Clear COD terms: state the total payable on delivery, whether customers can open the parcel before paying, and how exchanges work.
- Checkout validation: require an 11-digit mobile number starting 03 for Pakistani orders, a city picked from a list, and a field for area and nearest landmark.
- Prepaid incentives: offer a small discount or free shipping for bank transfer, wallet or card payment. Even a modest share of prepaid orders removes those parcels from RTO risk.
How do you confirm COD orders and filter out fake ones?
Contact every COD buyer before dispatch, and don’t ship until they reply. A WhatsApp message with a one-tap reply works for most customers; call anyone who doesn’t answer within a few hours.
Example
A confirmation message you can adapt: “Assalam o Alaikum Ayesha, thank you for your order #1042 from YourStore: 1 x Cotton Kurta, size M, PKR 3,450 payable on delivery. It will reach Gulberg, Lahore in 2 to 3 working days. Reply 1 to confirm or 2 to cancel. If the address needs a landmark, please send it here.”
Meta has charged per message on the WhatsApp Business Platform since July 1, 2025, and says utility templates, the category for order updates, are free when sent inside an open 24-hour customer service window. So a “Confirm on WhatsApp” button on your thank-you page does double duty: the customer messages first, and your reply costs nothing. The WhatsApp marketing guide covers the Business app and Platform setup.
- Verify addresses: ask for a landmark or a shared location when an address is vague, and check that your courier serves the area before you book.
- Hold, then cancel: keep unconfirmed orders on hold and cancel them after a fixed window, such as 48 hours, so stock returns to sale.
- Flag risky orders: keep a list of phone numbers with past refusals, and review duplicate orders, unusually large quantities and mismatched names before shipping.
- Ask for a partial advance: for high-value items or flagged buyers, request the delivery charge or a deposit by bank transfer or mobile wallet, and offer prepayment in full with a discount.
How do couriers, tracking and packaging affect RTO?
A good courier delivers on the first attempt, tells the customer when to expect the rider and reports why failed deliveries failed. Pakistani couriers such as PostEx, Leopards and M&P all run COD services; compare them on your own shipments, city by city, not on their rate cards alone.
| Question | Why it matters for RTO |
|---|---|
| How many delivery attempts, and does the rider call first? | Each extra attempt is another chance to deliver instead of return |
| What do you charge for returned parcels? | The return charge is a direct part of your cost per RTO |
| Do customers get dispatch and out-for-delivery messages? | Buyers who know the parcel is coming keep cash ready and answer the rider’s call |
| Do you record a reason for every failed attempt? | Reasons such as address not found or customer refused tell you which fix to apply |
| Can you reattempt on request before returning? | Lets you rescue parcels after calling the customer yourself |
| How fast are COD payments remitted and returns sent back? | Slow returns and remittances lock up cash and stock |
| Does your portal or API connect to Shopify or WooCommerce? | Automatic booking and tracking cut manual errors |
Send your own dispatch message with the tracking link, and call the customer the moment a delivery attempt fails, before the courier starts the return. Pack securely and neatly; a crushed or opened-looking parcel invites refusal at the door.
Learn from every RTO
Log a reason for each returned parcel and review your RTO rate monthly by courier, city, product and ad campaign. If one campaign or product returns far more than the rest, fix the targeting or the product page. Buyers who refuse twice can move to prepaid-only. Our e-commerce operations support can set up this reporting for you.
How do you automate COD confirmation in Shopify and WooCommerce?
Both platforms can hold unconfirmed COD orders and cancel them automatically; confirmation messages come from a WhatsApp integration or app. For store setup itself, see starting a Shopify store in Pakistan or setting up WooCommerce in Pakistan.
Shopify
- Activate COD under Settings, then Payments, in the manual payment methods. Shopify marks these orders as unpaid until you mark payment received.
- Install Shopify Flow, which is free on the Basic, Grow, Advanced and Plus plans.
- Build a workflow triggered when an order is created, with a condition for COD orders. Use the Add order tags action to tag it unconfirmed and Hold fulfillment order to stop dispatch.
- Add a Wait step, then Cancel order if the tag is still there, and Send internal email so your team can call the customer first.
- Connect your WhatsApp app or provider to send the confirmation and remove the tag when the customer replies.
Don’t rely on Shopify’s fraud analysis for COD. Shopify says it covers online credit card orders it can verify, so cash orders need your own rules.
WooCommerce
- Open the Cash on Delivery gateway from the offline payment methods in your WooCommerce payment settings.
- Use the description and instructions fields to tell buyers you’ll confirm by WhatsApp before dispatch.
- Use Enable for shipping methods to limit COD to the zones or methods where your courier performs well.
- Keep unconfirmed orders On hold. When you cancel an order, WooCommerce returns its stock to inventory if stock management is on.
- Add a WhatsApp notification plugin for confirmations, and the Advanced Cash on Delivery with Fee extension if you want a COD surcharge that nudges buyers to prepay.
How TechZone can help
TechZone helps Pakistani stores cut cash on delivery returns on Shopify and WooCommerce. We rebuild product pages and checkout fields, set up confirmation workflows with Shopify Flow or WooCommerce plugins, connect courier portals, and build RTO dashboards by courier, city and campaign. For custom confirmation bots or courier integrations, our AI automation team can help. See how our online store services work, or book a free 30-minute call to review your RTO numbers together.
Frequently asked questions
What is a good RTO rate for a COD store in Pakistan?
No single RTO rate counts as good for every store in Pakistan, because product type, price, city mix and traffic source change it sharply. Measure your own RTO rate by segment for a month, then set targets against that baseline. A falling RTO rate after confirmation calls and address checks is the result that matters.
Should I stop offering cash on delivery to reduce RTO?
Removing cash on delivery entirely usually costs more sales than it saves in returns, because some buyers only order when COD is available. A safer approach is to keep COD, confirm every order, charge a small COD fee or give a prepaid discount, and move repeat refusers or high-risk orders to prepaid or partial advance payment.
Can I charge customers for refused COD parcels?
In practice, recovering the cost of a refused COD parcel from the customer rarely works, because the buyer has paid nothing up front. Prevention works better: take a partial advance on risky orders, and move buyers with past refusals to prepaid-only. State these rules clearly on your COD policy page.
Does open parcel delivery reduce or increase RTO?
Open parcel delivery can cut refusals from buyers worried about receiving the wrong or damaged item, but it can also increase returns when the product doesn’t match the photos or size chart. If you allow open parcel checks, make product pages accurate first, then compare your RTO rate before and after on the same products.
How soon after dispatch should I contact a COD customer?
Contact a COD customer at three points: confirm the order before dispatch, send the tracking link on dispatch, and message again when the parcel is out for delivery. A final call when a delivery attempt fails gives you a chance to arrange a reattempt before the courier starts returning the parcel to you.



