Keep the original ordered quantity as the reference total. Reconcile it to separate cancelled, waiting-for-stock, allocated, in-transit and delivered quantities so each piece is counted once. Give each pending quantity an owner and next update time.
“Dispatched” is not the same as “complete”
A dealer orders 100 shirts. Some leave today, some are still waiting for stock, and the salesperson says the order is done. The customer then calls about the balance. One order-level status has hidden three different jobs.
Keep the order reference, item variant, quantity and agreed delivery date together. A carton is not a piece: record the conversion if your order, warehouse and transporter use different units. Do not combine sizes when a dealer needs a specific assortment.
A tracker that balances
This fictional order contains 100 identical pieces, no cancellations and no delivery returns. All figures are a single snapshot.
| Current position | Pieces | Next responsibility |
|---|---|---|
| Delivered and accepted | 35 | Record confirmation |
| Dispatched, not yet delivered | 25 | Transport follow-up |
| Allocated, not yet dispatched | 20 | Warehouse release check |
| Waiting for stock | 20 | Purchase or replenishment check |
| Total ordered | 100 | Keep all four positions visible |
The check is 35 + 25 + 20 + 20 = 100. Cumulative dispatch is 60 pieces, including the 35 already delivered. Do not add cumulative dispatch to delivered quantity; that would count those 35 twice.
There are 40 pieces not yet dispatched and 65 not yet delivered. Either can be described as “pending”, which is why the label matters. If you add cancellations, record them as a separate bucket and reconcile them to the original order quantity.
Keep the balance linked to the original order
For each further dispatch, record the original order line, quantity, dispatch date and transport reference. Record substitutions only after the customer agrees. Odoo documents a backorder workflow that separates goods sent now from goods to be shipped later. Your software may name these records differently; the useful principle is that the remaining quantity stays visible.
If goods come back, record the return separately and decide whether a replacement is owed. Moving the returned quantity straight into “waiting for stock” can obscure the physical movement and the commercial agreement.
Give a precise customer update
“Aapke 100 pieces mein se 35 deliver ho gaye hain. 25 raste mein hain. 20 allocate ho gaye hain, unka dispatch clearance check kar rahe hain; baaki 20 ki date kal dopahar tak confirm karenge.” This states what is known and when an unknown will be resolved.
Do not invent a delivery date from a dispatch date. Use the carrier’s latest confirmed status and show when it was checked. If the carrier has no update, say that and name the next follow-up.
Review exceptions, not every finished line
Filter for missed commitments, stock still unconfirmed, ready goods held up and delivery confirmation missing. Assign one next action and one person to each exception. A small distributor can do this in a sheet; a larger team needs shared records across sales and dispatch.
A future assistant could bring these exceptions to a phone. The current Dhandha GPT connector does not establish live carrier tracking or automatic dispatch updates merely because sales records are available.
Questions you might ask
What is the difference between pending dispatch and pending delivery?
Pending dispatch has not left the warehouse. Pending delivery also includes goods already in transit. Label the quantity explicitly.
How should partial orders be counted?
At a snapshot, use exclusive quantity buckets. Do not add cumulative dispatched quantity to delivered quantity because delivered goods are already included in dispatches.