Courier Automation: Booking, Tracking & COD
Courier Automation: Booking, Tracking & COD
Once your zones, methods and rates are set (see Delivery Zones), the Delivery module can run the whole parcel cycle without anyone copying data into a courier portal.
The cycle
- Quote at checkout: the delivery fee comes from your rate rules (zone, weight, method, free-delivery promotions). Every discount on delivery records who paid for it.
- Confirm the order: confirming creates the delivery record automatically, once per order. An order with no usable address waits as pending instead of being sent to a courier that would reject it.
- Auto-book: the parcel is created at the courier through its API and the tracking number is saved on the order.
- Status from the courier: courier callbacks and periodic syncs move the order — in transit, delivered, partly delivered, returned or cancelled.
- Cash on delivery: collected cash is recorded against each order and posted to the ledger.
- Completion: you can require a real delivery before an order counts as delivered.
Partial deliveries and returns
- A parcel knows which order lines it carries, so the order knows exactly how much arrived.
- Only what arrived counts as sold; the rest returns to stock or is re-sent.
- Returned parcels bring stock back to its location and unwind loyalty points and revenue.
Customer risk
Before you ship, the order page shows the buyer's delivery history — delivered, returned and cancelled parcels — with a threshold you set. Use it to call risky buyers first or ask for an advance payment on cash-on-delivery orders.
Setup checklist
- Enter each courier's API credentials in Delivery → Settings and test one parcel per courier.
- Choose whether parcels are booked automatically on confirmation or manually.
- Register the courier's callback address if the courier supports webhooks; otherwise rely on the scheduled sync.
- Check that the queue worker and scheduler are running; booking and syncing happen in the background.
Last updated: 10/5/2026

