Vietnamese WordPress hosting where payment happens at the door.
Cash on delivery means the order is not paid when it ships and may never be paid at all. The customer decides at the doorstep, days later.
The sale finishes at the door.
Every ecommerce assumption about payment preceding fulfilment is inverted here.
Orders that stay open for days
An order ships unpaid and settles when the courier collects cash. Its lifecycle is measured in days with several intermediate states rather than paid or unpaid.
Refusals recorded as outcomes
A meaningful share of COD orders are declined at the door. That is a normal outcome needing a state and a stock return, not an error.
Courier status updates absorbed
Delivery progress arrives as callbacks from the courier. Those have to be reachable and idempotent, since the same update often arrives twice.
Stock committed before payment
Inventory is held for goods that may come back, so availability reflects what is genuinely sellable rather than what has been paid for.
An origin in the region
Checkout and account pages always reach the origin, and Vietnam is well served from within Asia.
Fulfilled, not yet sold.
A store treating shipment as completion overstates revenue and understates stock. Neither is visible until somebody reconciles the courier's remittance against the order list.
- Order states covering the full COD lifecycle
- Refusals recorded with stock returned
- Courier callbacks reachable and idempotent
- Stock reflecting genuinely sellable goods
Revenue is what was collected.
The number that matters is not orders placed but cash remitted, and the gap between them is the entire operational challenge.
What we change for Vietnamese stores
Payment arriving after delivery rather than before it changes what an order means at every stage.
| Setting | What we do | Why |
|---|---|---|
| Order lifecycle | States covering shipped, delivered, refused and remitted | Cash on delivery means an order can be fulfilled and never paid, so paid-or-unpaid cannot describe where it actually is. |
| Refusal handling | Recorded as an outcome with stock returned | Doorstep refusals are a routine share of COD volume, and treating them as failures leaves inventory committed to goods sitting in a warehouse. |
| Courier callbacks | Reachable and idempotent | Delivery updates arrive as machine requests and frequently arrive twice, so a non-idempotent handler double-counts or double-returns stock. |
| Stock commitment | Reflecting sellable rather than paid goods | Inventory is held against orders that may come back, so availability has to account for goods in transit both ways. |
| Origin region | Asia rather than a distant origin | Checkout and account pages always reach the origin, and those are the requests where distance is felt. |
Simple, transparent pricing.
Every plan includes free migration, daily backups, SSL and 24/7 support.
- 1 WordPress site
- 10 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Support tickets
- 5 WordPress sites
- 50 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Priority support tickets
- 20 WordPress sites
- 200 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Dedicated support
Questions, answered.
Why is paid-or-unpaid not enough for COD?
What happens when a customer refuses delivery?
Do courier updates arrive twice?
How should I read revenue on a COD store?
Count the cash, not the shipment.
Move the store to an Asia origin - migration is free, order states modelled.