Descripción
Cash on Delivery is convenient for customers, but it is also the order type most likely to be refused at the door. The customer never answers, the courier goes back, and the merchant pays for shipping in both directions with nothing to show for it.
Stackedboost COD Deposit Rules lets you set rules that catch the orders most likely to fail. When a rule matches it either asks for a partial advance payment, so the customer pays some of it now and the rest on delivery, or it simply takes Cash on Delivery off the table for that order.
Every rule runs on data your own store already has. There is no external service, no API key, no account to create, and no data leaves your site.
What the free version does, in full:
- Require an advance payment, as a percentage or a flat amount. When a rule matches, the checkout total drops to the deposit, the customer pays that with any normal payment method, and the balance is collected on delivery as usual. Cash on Delivery itself is withdrawn for that order, because Cash on Delivery collects nothing at checkout and so cannot take a deposit.
- Or skip the deposit entirely and simply hide COD when a rule matches, so the customer pays the full amount up front.
- Rules you can combine, all checked locally:
- Cart total is above a threshold you set
- Shipping country is different from billing country
- Guest checkout with no previous completed order on the store
- Customer has a previous order that was cancelled or failed while paying by COD
- Works with the classic checkout and the block based checkout.
- Compatible with High-Performance Order Storage (HPOS).
- Shows the balance still due on delivery on the order screen, in the admin order list, and in the order emails sent to the customer.
How each rule works, and when to switch it on
The four rules are checked with OR: any single match triggers the action you chose. They are deliberately simple, because a rule you cannot predict is a rule you will turn off the first time it surprises a real customer.
Order value is at or above an amount you set. The most expensive parcel to get back is the one worth the most, and a refused high-value order ties up stock as well as shipping. Most stores start here, with the threshold set around the point where a returned parcel stops being an annoyance and starts being a real loss. If you sell one product at one price, this rule is either always on or always off, so use one of the others instead.
Shipping country is different from the billing country. A cheap signal that the two addresses were not typed by the same person. It is not proof of anything, and it has honest explanations, such as gifts and forwarding services. Useful if you ship internationally and see refusals cluster on cross-border orders. Pointless if you only ship domestically, because it will never match.
Guest checkout with no previous completed order. There is nobody to lose face with and no account to lose, and in most stores this is where the majority of refusals at the door come from. This is the broadest of the four, so it is the one most likely to ask a genuine first-time customer for a deposit. Pair it with a modest percentage rather than a large one.
The customer has cancelled or failed a Cash on Delivery order before. Counted from your own order history, against the billing email, and only from orders that were paid by Cash on Delivery. A cancelled card order costs you nothing and is not counted. You set how many previous failures are enough. This is the most precise of the four and the least likely to catch someone unfairly, but it only works on customers who have ordered before.
How the deposit is worked out
You set either a percentage of the order or a flat amount, and optionally a floor so that a small order still carries a deposit worth collecting. The deposit is never larger than the order itself.
The deposit and the balance are both gross figures, because that is what the customer and the delivery driver deal in. Internally the reduction handed to WooCommerce is worked out as the same proportion of the net amount, which is what keeps the final total correct whether your store runs tax-exclusive pricing, tax-inclusive pricing, or no tax at all.
One point that surprises people: when a rule matches, Cash on Delivery is withdrawn for that order in both modes, not only in hide mode. This is not a limitation, it is the only honest reading of the feature. Cash on Delivery collects nothing at checkout, so leaving it available while reducing the total to the deposit would simply record a 100 order as a 20 order and collect nothing at all. The customer pays the deposit with a real payment method, and the balance is collected at the door exactly as before.
What the customer sees
The checkout total drops to the deposit, with a line showing the balance that is still due on delivery, worded however you like. The same line appears on the order confirmation page and in the order emails, so the amount the courier will ask for is never a surprise. If you chose to hide Cash on Delivery instead, the customer sees a short message explaining that it is not available for this order, which you can also reword.
On your side, the balance appears on the order screen, in a column on the orders list so a matching order is obvious without opening it, and in the admin order emails.
Who this is for
Stores in markets where Cash on Delivery is a large share of orders rather than a rarity, which is most of Central and Eastern Europe, Southern Europe, the Middle East, North Africa, South Asia and South East Asia. If refused deliveries, or what carriers call return to origin, is a line item you actually feel, this plugin exists to shrink it.
If Cash on Delivery is only a small percentage of your orders and refusals are rare, you probably do not need this. It is not worth adding friction to a checkout that is working.
The one manual step, and how the plugin helps
The plugin reduces the checkout to the deposit, so WooCommerce records the order as being worth the deposit. That matters when you create the shipping label: if the label is generated from the order total, the courier is told to collect the deposit again instead of the balance, and your customer pays twice.
The plugin does not talk to any courier, and it deliberately does not try to. Cash on delivery markets run on dozens of carriers and no single integration would cover them. Instead it puts the balance everywhere a human will see it before the parcel leaves: on the order screen, in a column on the orders list, in the order emails, and, if you use WooCommerce PDF Invoices & Packing Slips, in a bordered box at the top of the packing slip and invoice that states the amount to collect and warns against collecting the full total.
If you create labels in bulk instead, the balance and the deposit are available as columns in Advanced Order Export For WooCommerce, so the right figure reaches whatever you upload to your courier.
Whatever you use to create labels, take the number from there.
What this plugin does not do
It does not score customers against any external blocklist, database or reputation service, because it makes no external requests at all. It does not verify phone numbers or addresses. It does not cancel or hold orders automatically after the fact. It does not replace a payment gateway, and it cannot take the deposit itself: a real gateway does that. It does not work on stores where Cash on Delivery is the only payment method enabled, because withdrawing Cash on Delivery there would leave the customer with nothing to pay with, and the plugin warns you about this on its settings screen.
None of this is a fraud guarantee. It reduces your exposure by moving part of the payment up front on the orders most likely to be refused. Customers can still refuse a COD order after paying a deposit, though it happens far less often once money has changed hands.
Stackedboost COD Deposit Rules Pro
Free treats every matching order the same: one flat deposit for everyone. Pro sizes the deposit per customer, from what that customer has already done in your store.
- A customer who has completed orders with you and never refused a delivery can pay no deposit at all.
- A customer who has refused deliveries before pays more up front, or loses cash on delivery for that order.
- Every order shows you the record the decision was made on.
The record is read from the orders already in your database, so it works from the day you activate it. Nothing about your customers or your orders leaves your server.
Pro is $79 a year for one site. The free version does not need Pro to be useful.
External services
The free plugin makes no external requests at all. Every rule is checked against your own store data.
If you buy Pro, the plugin contacts the Stackedboost licence service at https://email-risk-guard-production.up.railway.app to check your licence. This happens only when you click Activate on the settings screen, and it sends only two things: the licence key you pasted, and your site address, so the licence can be tied to this site.
No customer data, order data or email address is ever sent. Checkout is handled by Polar (Polar Software, Inc.), which acts as merchant of record and issues the licence key.
Stackedboost terms: https://stackedboost.com/terms/ and privacy: https://stackedboost.com/privacy/
Polar terms: https://polar.sh/legal/terms and privacy: https://polar.sh/legal/privacy
Capturas





Instalación
- Upload the
stackedboost-cod-deposit-rulesfolder to/wp-content/plugins/, or install it through the Plugins screen in WordPress by searching for «Stackedboost COD Deposit Rules». - Activate the plugin through the Plugins screen.
- Go to WooCommerce > Settings > COD Deposit Rules to set your rules and your advance payment amount or percentage.
- Save. The rules take effect on the next checkout that matches them.
FAQ
-
Does this work with the WooCommerce block based checkout, or only the classic shortcode checkout?
-
Both, and the block checkout needed real work rather than a claim. The advance payment is applied as a cart fee, which both checkouts calculate the same way. Hiding Cash on Delivery is different: the block checkout does not honour the usual payment gateway filter, so a plugin that only filters the gateway will appear to work on the classic checkout and quietly do nothing on the block one. This plugin publishes the decision onto the Store API cart and registers the front end callback WooCommerce documents for this, so the method is genuinely withdrawn in both. The gateway filter stays in place as well, so even if the script fails to load, an order cannot be placed with Cash on Delivery when a rule matched.
-
Does this plugin send any of my store or customer data anywhere?
-
No. Every rule is evaluated using data already stored in your WordPress database, on your own server. There is no external API call, no license check that phones home for the free version, and no analytics collection. Nothing about your orders or customers leaves your site.
-
What actually happens to the advance payment and the balance?
-
The advance payment is charged at checkout through whichever payment gateway you already use for prepaid methods on your store, exactly like a normal order paid in full. The remaining balance is recorded as a separate amount on the order (visible on the order screen, in the admin order list, and in the emails sent to the customer) so you and the customer both know what is still owed on delivery. The plugin does not automatically charge the balance. Collecting it on delivery is a manual, real-world step, the same as any other COD order.
-
Does it work with my payment gateway?
-
Yes, with any gateway. The advance payment is simply charged as the order total at checkout, using whatever gateway is enabled for that order. COD Deposit Rules does not require a specific gateway or add one of its own.
-
Will this affect my sales reports or accounting?
-
Be aware of this before you rely on it: when an advance payment applies, the order total recorded in WooCommerce is the amount actually charged at checkout, not the full cart value. The remaining balance is recorded separately, not folded into the order total. If you build reports directly off order totals, a COD order with an advance payment will show the deposit amount, not the full order value, so factor that in when reading revenue reports for COD orders.
-
Can I set different rules for different amounts or countries at the same time?
-
In the free version, all your active rules are checked together and if any one matches, the action you configured (require advance payment or hide COD) applies. Combining rules with AND/OR logic, so you can require different behavior depending on which combination of conditions is met, is a Pro feature.
-
Does this stop chargebacks or guarantee I won’t get a fake order?
-
No. Nothing can guarantee that. This plugin reduces the financial exposure of a refused COD delivery by collecting part of the payment before the order ships. It does not detect fraud, verify identity, or block anyone from ordering.
Reseñas
No hay valoraciones para este plugin.
Colaboradores y desarrolladores
«Stackedboost COD Deposit Rules for WooCommerce» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
ColaboradoresTraduce «Stackedboost COD Deposit Rules for WooCommerce» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.4.0
- The balance and the deposit are now available as export columns in Advanced Order Export For WooCommerce, for merchants who create labels from a CSV rather than one order at a time.
- Both columns are off by default, so an existing export keeps exactly the shape whatever you upload it to expects.
1.3.0
- The outstanding balance is now printed in a bordered box at the top of the packing slip and the invoice, when using WooCommerce PDF Invoices & Packing Slips. It states the amount to collect and warns against collecting the full order total.
- This closes the one place the plugin could cost you money: a label created from the reduced order total tells the courier to collect the deposit again instead of the balance.
- No carrier integration, and none planned. The document is the surface every carrier has in common.
1.2.0
- New in Pro: the deposit now follows each customer’s own record in your store. Customers who have completed orders and never refused a delivery can pay nothing up front; customers who have refused before pay more, or lose cash on delivery for that order.
- The record each decision was made on is now shown on the order screen.
- Free is unchanged. Every rule still runs against your own store data with no external requests.
1.1.0
- New settings screen, built around the split this plugin creates: money taken at checkout against money still due on delivery, read from your own orders.
- Added a breakdown of which rules actually matched, so you can see which risk is real in your store.
- Before any order has matched, the screen now previews the split your current settings would produce on an example order.
- The order screen panel now shows the same two figures in the same layout.
- New plugin icon and banner.
- No changes to how deposits are calculated or collected.
1.0.0
- Initial release.
- Advance payment (percentage or flat amount) before COD is allowed.
- Option to hide COD entirely when a rule matches.
- Built-in rules: cart total threshold, shipping/billing country mismatch, guest checkout with no prior order, prior cancelled or failed COD order.
- Classic checkout and block checkout support.
- HPOS compatible.
- Balance due on delivery shown on the order, in admin, and in order emails.
