Home›
Customer Service

Shopify order tracking: the blind spot before the tracking number

3 September 2026
VerifiedVerified & Reviewed
Shopify order tracking is the set of features that show a merchant and a customer where an order is after checkout: fulfillment status, tracking numbers, and shipping notifications. A Shopify tracking link is the carrier URL Shopify attaches to a fulfillment once a tracking number is saved on it with a carrier or a tracking URL, so an order with no fulfillment or no number has no link. That is the blind spot: the order that never moves generates no tracking event at all.

What Shopify order tracking covers

Shopify order tracking is the set of features that let a merchant and a customer see where an order is after checkout. Shopify stores the order, records fulfillment when the warehouse or 3PL marks it shipped, attaches a tracking number, and sends shipping confirmation and delivery notification emails. Customers can view status through the order status page or a shop account.

That covers the happy path well. What it does not cover is the order that never gets fulfilled in the first place, which is where most order-status tickets actually come from.

Every order is a promise. Keeyu keeps it. Shopify records the promise and reports progress against it when progress happens.

A Shopify tracking link is the URL a shopper clicks to see a package's carrier status. Shopify takes it from the fulfillment on the order: either a tracking URL saved there, or a URL it builds from the tracking number and the carrier. Shoppers reach it through the shipping confirmation email, the order status page and the Shop app, as Shopify's order tracking guide sets out.

Per the Shopify developer documentation, a tracking number becomes clickable in one of three ways, in this order of priority: a tracking URL was supplied with the fulfillment, the carrier name is on Shopify's supported list so Shopify builds the URL, or the number matches a format Shopify recognizes and it guesses the carrier. The same page warns that the guess can produce an invalid URL, because not every carrier is supported and some carriers share number formats, and it recommends sending both the carrier and the URL. When none of the three applies, the number shows as plain text. A built URL does not mean Shopify updates the shipment status: the link points at the carrier, and the shopper sees whatever the carrier has scanned.

Here is how that reads from an operations seat. Ask a marketplace operator running a large dropship supplier network what comes back from a supplier when an order ships, and the answer is a tracking number and little else. Shopify builds the link from that number and the carrier, which makes the link the one part of the fulfillment that the brand and the shopper can both see. So when a shopper writes in asking for a tracking link, it is evidence that an operations promise broke upstream, before anyone opened a helpdesk.

The carrier's own link is enough when an order ships as one package with a carrier Shopify supports and the link opens that shipment directly. It falls short with carriers whose link opens a general tracking page where the shopper has to type the number in again, which Shopify's troubleshooting notes say is more common with smaller carriers. A branded tracking page, covered further down, adds a view of several packages in one place. Neither can show a carrier scan until a fulfillment with a tracking number is written to the order.

You add a Shopify tracking link by saving a tracking number on the fulfillment, with the carrier or a full tracking URL alongside it, and Shopify generates the link from there. The route your store uses decides who owns the problem when the link is missing.

Route

What creates the link

Where it goes wrong

Label bought in Shopify

Number and carrier saved with the label

Package never handed to the carrier

Typed into the admin

A person adds the number; Shopify detects the carrier or the person picks it

Wrong carrier detected, unsupported carrier with no URL, or notification deselected

App, 3PL or ERP through the API

The integration sends the number, ideally with carrier and URL

Number sent alone so the carrier is guessed, notification flag left at its default, or number sent late or never

In the admin, Shopify's steps are short: open the order, click Add tracking in the Fulfilled section, enter the number and check the carrier Shopify selected. If the carrier is missing or wrong, pick it from the Shipping carrier menu, or choose Other and paste the complete tracking URL, tracking digits included. Leave "Send a notification to the customer" selected when you save, and the shopper gets a shipping update email carrying the link. The same panel is where you correct a number that was entered wrong.

Through the API, the FulfillmentInput field notifyCustomer defaults to false, so an integration that never sets it creates a fulfillment the shopper is not told about. And the fulfillmentTrackingInfoUpdate mutation changes the carrier, numbers and URLs on an existing fulfillment, accepts several numbers for a multi-package shipment, and only emails the shopper if notifyCustomer is set.

The working rule: whoever creates the fulfillment owns the notification. If the 3PL creates it, the 3PL's settings decide whether your shopper gets a link, so ask which system sends the shipping email and whether it sets the notify flag. A shopper asking for a link that already sits on the order is a notification nobody owned. That is an operations gap, and no reply from support closes it. The email copy itself is on the shipping notification emails page.

Split shipments need their own tracking. Per Shopify's fulfillment guide, each fulfillment on an order is fulfilled separately and can carry its own tracking number and its own notification, so a shopper can receive more than one shipping confirmation email for one order. Several numbers can sit on a single fulfillment only when they all come from the same carrier. Keeyu picks up split fulfillments and tracks each part separately against the SLA, even when the parts leave from different warehouses. The shopper-facing wording is on the split shipments page.

The blind spot: orders that never move

Shopify can only show a tracking number once something upstream created one. If an order fails to reach the warehouse, or sits on a fulfillment hold, or is stuck behind a stock issue, there is nothing to track. The order looks fine in the admin. It is simply not progressing, and nothing raises its hand.

Our answer to the blind spot is to track the whole population, not just the parcels: unfulfilled Shopify orders, orders in the warehouse, and fulfilled orders, displayed in real time. Tahir, our CTO, describes the plumbing plainly: Shopify, WMS, carrier portal, helpdesk, all connected.

At one brand on our platform, 70 Shopify orders in the US did not sync to the warehouse and went three days without shipping. Every one of those orders looked normal in Shopify. There was no error state, no alert, no exception. They had just quietly stopped.

That is the ticket generator. Not the customer who wants a more precise ETA, but the customer whose order has not moved for three days while your store shows nothing wrong.

A Shopify order shows no tracking link until a fulfillment with a tracking number is saved on it. The link is also missing when the number is there but Shopify cannot match it to a carrier and no tracking URL was supplied. Work down the causes in this order:

  • Not fulfilled yet. Nothing has shipped, so there is no number.
  • Fulfilled without a number. Tracking was never added, which happens with untracked mail services and manual fulfillment. What the status does and does not promise is on the order fulfilled page.
  • Carrier not recognized. The carrier is not on Shopify's supported list, the number matches no format Shopify knows and nobody pasted a URL, so the number shows as plain text.
  • Link there, but wrong. An app sent the number without the carrier, Shopify matched it to a different carrier, and the link opens a page that knows nothing about the shipment. Shopify's troubleshooting notes say the app needs to send the carrier and the tracking URL along with the number. To the shopper this is the same as no link.
  • Notification off. The integration left notifyCustomer at its default of false, so the link sits on the order and was never sent.
  • Write-back lag or miss. For fulfillment service apps with tracking support turned on, Shopify asks the service once an hour for completed fulfillments still awaiting tracking numbers. An hour of lag is normal. If the service keeps returning nothing, the fulfillment sits complete with no number and nothing on the order says why. Shopify's order tracking guide notes that a fulfilled order with no carrier and no tracking number, or a status of Requested, may still be with the third-party fulfillment app.
  • Write-back shape. Some 3PL connections post tracking at order level only. Extensiv's Shopify connection guide states that line-item-level post-back is not supported, so a short-shipped or split order posts one number and marks the entire order fulfilled.

The write-back causes are the hard ones to see from inside the brand, because every system involved reports success. The warehouse shows the order shipped, Shopify shows it fulfilled, and the tracking number never made the trip between them. Nothing errors, so the report comes from the shopper. That message is an operations alert that arrived late and through the wrong channel.

One customer's team had to check 5 or 6 different systems for every one of those where is my order tickets: Shopify first, then the carrier portals, then the warehouse system, then the email thread with the warehouse. A helpdesk is the right place to write the reply, and Keeyu integrates with Gorgias and Zendesk. What a helpdesk cannot do is put the missing number on the order. That repair sits upstream, in carrier integration and the 3PL connection, and the 3PL and carrier visibility tools page compares ways to watch both. Helpdesk manages complaints. Keeyu prevents them.

Keeyu is not a tracking page and it does not generate the link. It works on the order behind it. Keeyu flags the order that is missing its tracking number, so the team can add the number and rerun the workflow before the shopper has to ask. The opposite failure, a link that exists and has stopped scanning, is covered under what to monitor below.

Every order is a promise. Keeyu keeps it.

Where sync breaks under load

At the start of COVID in 2020, online warehouse sale revenue at P.E. Nation skyrocketed and the Shopify store stopped syncing orders with the warehouse. It oversold. The team finished with a thousand orders for stock that did not exist, and hired six people just to work through the mess.

Volume spikes are exactly when sync fails and exactly when you are least able to notice by hand. Order tracking that depends on a fulfillment event will always be silent in the window where a problem is cheapest to fix.

Load is also a staffing problem, and the numbers show it. One of our customers runs twenty support people year round and scales to forty for the two months around peak, which our co-founder Jevon Le Roux mentioned on eCommerce Australia. That extra twenty exists to catch by hand what the sync drops under load. It is the most expensive monitoring system a brand can buy.

What to monitor beyond tracking numbers

  • Orders that are paid but not fulfilled after a threshold appropriate to your service promise
  • Orders that exist in Shopify but never appeared in the warehouse system
  • Fulfillment holds that were never written back to the store
  • Shipments with a tracking number that has stopped scanning
  • Items still in transit past their expected delivery date

The last one has a clean decision rule. If an item is still in transit well past the date it should have landed, it is lost. We detect that, cancel the order in Shopify, raise a new order, allocate express shipping, push it to the warehouse and notify the customer, as one workflow rather than five manual steps.

A Shopify storefront and tracking page, with the order being fixed behind the curtain before the customer looks

Monitor the checkpoints upstream of the first scan. There are roughly thirty to thirty-five of them between order placed and delivered, which Jevon described on The Ecommerce Edge: paid, processed, allocated, picked, packed, manifested. A tracking number begins after all of those, which is why an order can be silently broken while the tracking page looks fine.

Tracking pages versus preventing the question

Branded tracking pages are worth having. They give the customer somewhere to look and they carry your brand instead of the carrier's. But they answer a question the customer already decided to ask, and they can only show what the upstream systems know.

The alternative is proactive e-commerce operations: watch the order across Shopify, the warehouse and the carrier, and act when it stops moving. Detect. Decide. Act. Keeyu gets shoppers what they want, on time, as promised. They never need the tracking page at all.

We operate at an operational layer traditional helpdesk AI cannot reach: Return to Sender, Lost in Transit, awaiting collection, out-of-stock, resolved end-to-end before the helpdesk ever sees them.

See how the workflows run or book a demo against your own Shopify order flow.

The question has a share you can size. Between 40 and 60% of all support tickets are a version of where is my order, which Jevon gave on The Breakout CEO. A tracking page answers the ones that ask. Preventing the question means the order arrives as promised and nobody opens the page at all.

Every order is a promise. Keeyu keeps it.

For the ticket type this creates, read WISMO. For carrier-side failures, see delivery exceptions. For the operational layer, read post-purchase operations.

Frequently Asked Questions

How can I track a Shopify order?

Customers track through the order confirmation email, the order status page, or the Shop app once a tracking number exists. Merchants see fulfillment status and tracking in the order admin. Everything depends on the fulfillment event firing: an order that never reaches the warehouse produces nothing to track.

Can you track a Shopify order without the app?

Yes. The order status page linked from the confirmation email works without the Shop app, and the tracking number works directly on the carrier's site. What none of those surfaces show is an order that has not shipped at all.

Why does my Shopify order have no tracking?

A tracking number shows on a Shopify order once a fulfillment is saved with one. The carrier's first scan comes later and is what makes the link show movement. No tracking usually means the order has not been fulfilled, the sync between store and warehouse failed, or the warehouse shipped and never sent the number back to Shopify. All three are the merchant's to catch before the shopper has to ask.

Where does a Shopify tracking link come from?

Shopify takes the tracking link from the fulfillment on the order. If a tracking URL was saved there it uses that; otherwise it builds one from the tracking number, using the carrier name when it is on Shopify's supported list or guessing the carrier from the number format. When neither works, the number is not clickable until someone picks the carrier or pastes the URL. The link shows only what the carrier has scanned.

How do I add or resend a tracking link on a fulfilled Shopify order?

Following Shopify's steps, open the order in the admin, add or edit the tracking number on the fulfilled items, choose the carrier, and keep the customer notification selected when you save. For an unsupported carrier, choose Other and paste the full tracking URL. Integrations do the same job with the fulfillmentTrackingInfoUpdate mutation, which only emails the shopper when notifyCustomer is set. What that email should say is covered on the shipping notifications page.

Why did my 3PL order never get a Shopify tracking link?

Usually the warehouse shipped the package and the tracking number was never written back to Shopify, or it was written back at order level so a second package got no number of its own. Check whether the fulfillment exists on the order, whether it carries a number and a carrier, and whether the integration notifies the customer. The 3PL and carrier visibility tools page compares ways to watch that write-back.

Why is my Shopify tracking link not working or showing the wrong shipment?

Shopify's order tracking troubleshooting lists three common causes. Shopify matched the number to the wrong carrier because it was sent without a carrier name. The carrier's link opens a general tracking page where the number has to be typed in again. Or the carrier reused the tracking number during a peak period, so the page shows events from an earlier shipment until the new label is scanned.

References

Keep the promise.

See how Keeyu catches and fixes post-purchase issues before customers notice.

In one call, we’ll map your operations and show how Keeyu detects issues, decides what needs to happen, and takes action across your existing systems.

We’ll confirm your integration requirements and rollout plan during the demo.