Ask any WooCommerce store running phone or Messenger sales what “Processing” actually means on a given order, and the honest answer is usually: it depends. Has the customer been called to confirm the size? Has the advance payment landed in bKash? Is it packed yet, or still waiting on the courier pickup? WooCommerce’s order status can’t answer any of that.
Why order status isn’t the right tool
WooCommerce’s built-in statuses — Pending, Processing, On Hold, Completed — are wired into payment gateways, stock management, and customer emails. Repurposing them for an internal checklist risks breaking that automation: mark an order “On Hold” to mean “waiting on courier” and you’ve also just changed what emails go out and how it’s reported in sales analytics.
What was missing wasn’t a replacement for order status — it was a second, independent axis of information sitting next to it.
The stage picker
We added a fulfilment stage field, stored as its own order meta key, completely decoupled from WooCommerce’s native status: Call → Confirmed → Fee bKashed → Packing → Courier. Each stage renders as a coloured pill in the orders list — amber for Call, blue for Confirmed, purple for Fee bKashed, indigo for Packing, green for Courier — so a manager scanning the list can read the whole shop floor’s state in one glance, no clicking required.
Once a stage is picked, it locks in as that coloured pill with a small “Change” link beside it, rather than leaving an always-open dropdown and Save button on screen. That single interaction change — collapse to a clean state, only reopen an editable control on request — makes a list of twenty orders readable instead of twenty rows of form controls.
Making it work on mobile
WordPress’s admin list tables hide every column except the order title on narrow screens, which meant the stage picker — and the customer’s phone number — simply disappeared on a phone. We render a second copy of both inside that one column WordPress keeps visible, shown only below the mobile breakpoint, with the phone number wired as a tel: link. A staff member scrolling the orders list on their phone can now tap to call and update the stage without ever opening an order.
Key takeaways
- Internal workflow state and platform-defined order status are different concerns — conflating them to save a field usually costs more later.
- A locked-value-plus-“Change”-link pattern reads far better in a list of many rows than an always-editable control.
- Mobile column collapsing in wp-admin is aggressive by default; anything staff need to see on a phone has to be deliberately re-surfaced.
Running into a similar limitation in your own WooCommerce or WordPress admin? Let’s Talk — Artintech Solution builds exactly this kind of custom store tooling.