Services Marketplace Work Hosting About
Start a projectSign in

Refunds, Returned Parcels and Blocking

Last updated 14 September 2026

Refund an advance

Open the order and press Refund advance in the COD Protection box. The advance is refunded to the buyer through Razorpay, the advance line is removed, the order total returns to the full amount and a note records the Razorpay refund id. A second press is refused, so an advance is never refunded twice.

Automatic refund on cancel

Refund the advance automatically when an order is cancelled is off by default, on purpose. When a buyer refuses a parcel at the door, most stores cancel the order too, and that is exactly the case the advance exists to cover. Turn it on only if you never cancel refused parcels.

Orders that are never paid

If the buyer leaves without paying the advance, the order stays Pending payment and your stock is held for the WooCommerce hold stock time (WooCommerce, Settings, Products, Inventory). WooCommerce then cancels it and releases the stock. The order is marked "Advance never paid" and counts in the report as an order that never shipped.

If a buyer pays after WooCommerce has cancelled the order, the payment is still recorded and the order is put On hold with a note, so you can check stock and either ship it or refund the advance.

Returned parcels and blocking

When a cash on delivery parcel comes back, open the order and press Mark parcel returned. This adds one strike to the buyer's phone number and to their delivery address. When either reaches Returns before blocking (2 by default), cash on delivery is hidden for that buyer at checkout, and they can still pay online.

  • Phone numbers are matched on the last ten digits, so +91, a leading 0 and spaces do not matter.
  • Addresses are matched on the first address line and the pincode, ignoring case, spaces and punctuation.
  • Block COD for this buyer blocks immediately. Clear this buyer removes their strikes.
  • Phone numbers and addresses are stored only as keyed hashes, never as plain text.

Shared addresses such as offices and hostels can collect strikes from different buyers. Raise the threshold if that is common for your store, or clear the buyer from any of their orders.

Report

WooCommerce, COD Protection, Report shows, for 7, 30, 90 or 365 days: orders that asked for an advance, advances paid, orders that never paid and never shipped, advance collected, cash still to collect, and estimated shipping saved.

Estimated saving counts two shipping legs for every order that never shipped and for every returned parcel whose advance was kept, at the one way shipping cost you set in Settings.