The parcel lifecycle
Every parcel carries a status. MMDeliApp changes the status automatically as work is recorded: you never type a status by hand. Each change is saved in the parcel’s Status History with the time and the person who made it.
- PENDING
- PICKUP_REQ
- PICKED_UP
- AT_HUB
- SORTED
- IN_TRANSIT
- DELIVERED
- RECEIVED
- SETTLED
- AT_HUB → HANDED_OFF when handed to a D2D partner
- IN_TRANSIT → FAILED → AT_HUB when the parcel is scanned back in
Statuses
Section titled “Statuses”| Status | Meaning | What moves it here |
|---|---|---|
| PENDING | Booked, waiting to be collected | Creating the parcel |
| PICKUP_REQ | The merchant asked for a pickup | Request Pickup on the parcel |
| PICKED_UP | Collected from the merchant | Scanned or recorded on a pickup run |
| AT_HUB | Arrived at your hub | Hub Scanning, or a failed parcel scanned back in |
| SORTED | Given a sort location | Sorting |
| IN_TRANSIT | Out with a driver | Starting the delivery run |
| DELIVERED | Handed to the recipient | The driver records Delivered |
| FAILED | Delivery attempt did not succeed | The driver records Failed with a reason |
| HANDED_OFF | Given to a partner courier | Confirming a D2D handoff |
| RECEIVED | The cash for it is in the office | Recording a cash collection |
| SETTLED | The merchant has been paid | Processing a merchant payout |
| CANCELLED | Will not be delivered | Cancelling the parcel |
Which parcels can go where
Section titled “Which parcels can go where”- A pickup run accepts parcels that are PENDING or PICKUP_REQ.
- A delivery run or a D2D handoff accepts parcels that are AT_HUB, SORTED, or IN_TRANSIT.
- A merchant payout includes parcels that are RECEIVED.
If a scan is refused, the message tells you the parcel’s current status. That usually means a step was skipped, for example a parcel that was never scanned in at the hub.
Correcting mistakes
Section titled “Correcting mistakes”Mistakes are fixed by reversing the step, not by editing the status:
- A delivery result recorded by mistake can be reversed from the delivery run. You must give a reason, and the parcel goes back to IN_TRANSIT. If the merchant was already paid for it, void that payout first.
- A cash collection can be voided, which returns its parcels to the previous state.
- A processed payout can be voided, which returns its parcels to RECEIVED.
Every reversal is recorded, and the matching journal entries are reversed automatically.