Appearance
Order Lifecycle
This page documents order states, transition rules, review flags, and manual/offline payment handling.
Core states
pendingpaidfulfilledrefundedcanceled
Invalid transitions are blocked (for example paid -> pending). Terminal states such as refunded and canceled are protected.
Terms & consent record
When terms acceptance is required, the order records the terms version the buyer agreed to and a UTC timestamp, stamped server-side at checkout (the client only asserts acceptance — the authoritative version comes from your settings). These two fields are deliberately retained through GDPR anonymisation: once the personal data beside them is scrubbed they are no longer personal data, but they remain the legal record that consent was given, and to which version.
"Shipped" status (cash on delivery)
A physical order can be marked shipped independently of payment, so a cash-on-delivery parcel reads as "Shipped" to the customer while payment is still pending — rather than the misleading "Pending" it would otherwise show in transit. This is a display/fulfilment signal, not a new order state: the pending → paid → fulfilled machine above is unchanged.
- Use Mark as shipped in an order's Tracking panel (a tracking number is optional).
- Mark fulfilled is offered only once an order is paid; it back-fills the shipped timestamp if it was never set.
- Digital-only orders never show shipping controls — there is nothing to ship.
Payment integrity and review flags
After webhook processing, received payment amount is compared against order totals. Significant variance triggers a review flag (needs_review) so staff can inspect before fulfillment.
Typical review reason:
payment_amount_mismatch
Manual transactions (offline methods)
For COD and bank transfer orders, admins can record manual payments:
- Open order details.
- Use Record Payment.
- Enter amount/reference/note.
- Save to move order from
pendingtopaid.
Manual payments are logged for audit tracking.
Customer-facing order pages
- Public order status: secure links for guest access.
- My Orders: authenticated customer order list/detail.
- Tracking updates: exposed on order view after fulfillment actions.
Stale order cleanup
The scheduled cleanup task can cancel old pending orders and release reserved stock.
Key settings:
- Enable cleanup
- Threshold in hours (default 48)
- Schedule via Joomla Scheduled Tasks