Skip to main content

ArtinTech Solution

Bulk-Dispatching a Day of Orders to a Courier API

At the end of a packing day a shop has a table of orders and a pile of parcels, and every one of those parcels has to be registered with the courier before pickup. Done through the courier’s own dashboard, that is an hour of retyping addresses that already exist in WooCommerce.

A bulk action, not another screen

The integration lives in the bulk-action dropdown of the native orders list. Staff already filter that list by status every day; sending the filtered selection to the courier belongs in the same place, not behind a separate menu item with its own search and its own idea of what is ready to ship.

That hook exists under two different names — one for the legacy orders table, one for the High-Performance Order Storage screen — so both are registered. Otherwise the action is simply absent for stores on the newer storage, with no error to explain why.

Reporting the failures, not just the successes

Each selected order becomes one API call, and some of them will fail: a missing phone number, an address the courier rejects, a token that expired overnight. The loop counts successes and failures separately and carries the failed order numbers through to the admin notice, so the message reads as a list of exactly which orders still need attention.

A bulk action that reports “done” while quietly skipping six parcels is worse than one that fails outright, because the shop only discovers the gap when six customers ask where their order is.

Guardrails worth building in

The action stops immediately if no API credentials are configured, skips orders that no longer exist, and does not re-send an order that already carries a consignment reference. Repeated clicks are inevitable when a page is slow; duplicate parcels are expensive.

Key takeaways

  • Put integrations where the work already happens — the native orders list, not a separate screen.
  • Register bulk-action hooks for both HPOS and the legacy orders table.
  • Count failures separately and name them; partial success reported as success is a support ticket in waiting.
  • Make repeat submissions safe, because someone will click twice.

Related reading: sending orders to a courier via WhatsApp, logging consignment IDs on the orders list, custom order statuses.

Running into a similar limitation in your own WooCommerce or WordPress store? Let’s Talk — ArtinTech Solution builds exactly this kind of custom store tooling.

Share this article

Leave a Reply

Your email address will not be published. Required fields are marked *