Cash on Delivery, fully controlled
Offer pay-at-delivery at checkout and fence it in by country, order amount, product, category and stock — with a guided setup wizard, clear reasons for shoppers, and a pending → collected → reconciled cash lifecycle in the back office.
The problem
In cash-heavy markets shoppers expect to pay at delivery, but Odoo eCommerce ships no first-class COD option. Bolt-on workarounds offer no eligibility control, so merchants accept COD on high-value, out-of-stock or unserviceable orders — inviting fraud, failed deliveries and losses.
The solution
A controllable Cash on Delivery provider that appears at checkout only when your rules allow it, tells shoppers exactly why when it does not, and gives finance a clear cash-collection lifecycle — all set up through one guided wizard that confirms COD is live.
Everything you need to run COD safely
Every capability below is implemented in the module.
COD at Checkout
Cash on Delivery registers as a native website payment provider, so shoppers can select pay-at-delivery and confirm their order without any upfront payment.
Publish & Unpublish
Turn COD on or off site-wide from a single control. Enable the provider and publish it to go live, or pause it instantly without touching multiple screens.
Country Filtering
Restrict Cash on Delivery to the countries you can actually service. Leave the list empty for all countries, or select only the regions your couriers reach.
Min & Max Amount
Confine COD to a safe value band with a minimum and maximum order amount, so you avoid unsecured high-value shipments and uneconomical tiny ones.
Product & Category Rules
Exclude fragile, perishable or high-risk items from COD by product or by product category, because cash-on-delivery risk is not uniform across your catalog.
Stock-Aware Suppression
Automatically hide COD when the cart contains an out-of-stock item, so cash-on-delivery is never offered on an order that cannot actually ship.
Reason Messaging
Instead of a generic dead-end, the cart tells shoppers exactly why COD is unavailable — amount below the minimum, out of stock, or region not served — and confirms when it is available.
Guided Setup Wizard
Configure the provider, publishing and rules in one place, then click Activate — the wizard verifies the option is live so you never have to wonder whether COD is enabled.
Collection Lifecycle
A dedicated COD Orders desk and a pending → collected → reconciled status let finance identify COD orders and close the cash loop, with a Mark Collected action on each order.
How it works
Run Guided Setup
Open the setup wizard, pick the provider, publish it, and Activate to confirm COD is live.
Set the Rules
Add country, amount, product, category and stock rules on the Cash on Delivery Rules tab.
Customer Checks Out
Shoppers see whether COD applies in the cart and select it at payment when eligible.
Collect & Reconcile
Track each COD order from pending to collected to reconciled on the COD Orders desk.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Open the guided COD Setup wizard, choose the Cash on Delivery provider, tick Publish on Website and click Activate. The wizard enables and publishes the provider and confirms COD is live, so there is no scattered configuration to hunt down.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Website Cash on Delivery (COD) — Controlled & Stock-Aware
Controlled, stock-aware Cash on Delivery for Odoo eCommerce — from guided setup to reconciled cash.
Buy on Odoo App Store