Zolo Digital
Let’s Connect
Back to Blog

September 26, 2026

Push courier tracking back to Shopify, or your support team pays for it

Push courier tracking back to Shopify, or your support team pays for it

Courier tracking belongs on the Shopify order, not in the courier's portal. When a booking writes the tracking number back to Shopify as a fulfillment, the customer gets a tracking email automatically, the order status page shows it, and most "where is my order?" tickets never get sent.

"Where is my order?" is the most common support question in ecommerce, and most of those tickets are avoidable.

Why do "where is my order" tickets happen?

A typical setup without integration:

  1. The order comes into Shopify.
  2. Someone books the courier in the courier's portal.
  3. The tracking number stays in that portal, or in a spreadsheet.
  4. The customer gets no shipping email, or one with no tracking link.
  5. The customer emails support, and support has to ask the warehouse.

Every step after 2 is wasted work.

What does a closed loop look like?

When the courier booking writes the tracking back to Shopify as a fulfillment with tracking info, Shopify does the rest for free:

On the technical side, that means creating the fulfillment through Shopify's Admin API with the tracking number, the courier's name and a tracking URL, either from your OMS or from a small integration that listens for courier bookings.

How does the fulfillment get created?

Under the hood it's one Admin API call: create a fulfillment for the order's fulfillment order, with tracking info attached, which is the tracking number, the courier's name and a tracking URL. Two details decide whether the customer actually benefits:

The same call handles updates. When the courier's status changes, the integration can update the fulfillment's status and the customer sees "out for delivery" on the order status page without anyone touching the order.

What about cash on delivery and partial shipments?

Both are normal in the markets I work in, and both break naive integrations.

With cash on delivery, the order is unpaid when it ships. The integration has to book the courier with the collection amount, then mark the order paid when the courier confirms delivery and remits the cash, or handle the return when the customer refuses it. If the integration only fires on "order paid", COD orders never ship.

With partial shipments, one order can become two parcels on different days. The fulfillment call takes specific line items and quantities, so each parcel gets its own tracking, and the order shows as partially fulfilled until the last one leaves. An integration that can only fulfil the whole order will either hold back the parcel that's ready or lie about the one that isn't.

What should you check in a courier integration?

Why does this matter more than it looks?

Support tickets cost time. But the bigger cost is trust: a customer who can't find their parcel is less likely to buy again, however good the storefront is.

I've built courier and OMS integrations for Shopify stores. If yours has this gap, let's talk.