Skip to main content

Shopify Order Tracking in Google Sheets: A Practical Guide for Merchants

· 8 min read
The team behind Your Package Tracker

Shopify is excellent at taking orders and printing labels. It's surprisingly weak at answering the question that fills your support inbox: where is every order right now?

The admin shows "Fulfilled" — which only means a label exists. Whether the package is moving, stuck in a sort facility, bouncing back to you, or sitting on a porch since Tuesday is hidden behind a per-order click to the carrier's site. Multiply by a hundred open orders, a dropship supplier or two, and the inventory POs coming into your warehouse, and you're managing a delivery operation with no delivery view.

This guide builds that view in Google Sheets: every outbound order and every inbound shipment, live statuses, one formula.

"Fulfilled" is not "delivered"

Shopify's order statuses stop at fulfillment because Shopify's job ends at the label. Everything your customers care about happens after that — and that's the part you're blind to in the admin:

  • The order marked fulfilled 9 days ago that never left the origin facility
  • The DHL international shipment sitting in customs
  • The "delivered" package the customer says never arrived
  • The return-to-sender you found out about when it landed back on your dock

Merchants solve this with a shipping ops sheet: a Google Sheet where every open order is a row and a live Status column replaces the click-through-to-carrier ritual. With Your Package Tracker the statuses come from live carrier push notifications, so the sheet keeps itself current — no refresh, no Apps Script triggers, no re-running an import.

Step 1: Export orders with tracking numbers from Shopify

Shopify's built-in CSV export includes fulfillment tracking data:

  1. In admin, go to Orders, filter to the window you care about (e.g. Fulfilled, last 30 days).
  2. Export → Selected orders → CSV.
  3. Open the CSV — you want Name (order number), Shipping Name, Fulfilled at, and the tracking columns from your fulfillments.
  4. Paste into Google Sheets.

If you fulfill through apps (ShipStation, Shippo, a 3PL portal), their exports carry the same fields — order ref, tracking number, carrier — and land in the same layout:

ColHeaderExampleNotes
AOrder#1052Shopify order name
BCustomerJane DoeFor support lookups
CFulfilled at2026-08-14For aging checks
DTracking #1Z999AA10123456784Required
ECarrierUPSRequired — one per row, mix freely
FStatus(formula)=PKG_STATUS_LIVE(D2, E2, TODAY())
GSummary(formula)=PKG_SUMMARY_LIVE(D2, E2, TODAY())
HLast event(formula)=PKG_LAST_EVENT_LIVE(D2, E2, TODAY())

Day-to-day, you don't need to re-export everything — export new fulfillments (or paste them from your label app) and append. Delivered rows can be cut to an archive tab weekly to keep the working set tight.

Step 2: The formula

In F2:

=PKG_STATUS_LIVE(D2, E2, TODAY())

Drag-fill down all open orders — 50 or 500. The _LIVE formulas are built for bulk: registrations are batched behind the scenes and each carrier's rate limits are respected independently, so a big paste doesn't produce an error cascade. First lookup of each number shows Registering... briefly, then real data. After that, every new carrier scan flows into the sheet on its own.

Mixed carriers are the normal case for Shopify stores — UPS Ground domestic, USPS for lightweight, DHL Express international, plus whatever your dropship supplier uses — and they all work in the same column, because the formula reads the carrier per row. More on that pattern in our multi-courier guide.

Step 3: Turn the sheet into a daily exceptions dashboard

The point isn't to stare at 300 statuses — it's to surface the ten that need action. Three moves:

Conditional formatting. Delivered → green, Out for Delivery → yellow, Exception / Alert / Return → red. (Format → Conditional formatting → "Text contains".)

A stalled-shipment flag. Add a column comparing fulfillment age to status:

=IF(AND(TODAY()-C2 > 7, F2 <> "Delivered"), "CHECK", "")

Anything fulfilled more than a week ago and not delivered gets a CHECK — that's your carrier-claim and customer-outreach list, computed for you.

Proactive support. Filter the red rows each morning and email those customers before they email you. "Your order hit a carrier delay, here's the latest scan, here's what we're doing" turns a refund request into a loyalty moment — and cuts your "where is my order?" ticket volume at the source.

Step 4: Inbound — supplier POs and restocks in the same file

The pattern our merchant customers use most: a second tab for purchase orders, tracking inbound freight and parcels right next to outbound orders.

Every Shopify store has an inbound side — restock POs from manufacturers, packaging supplies, a container's parcels forwarded from a freight consolidator, dropship test orders you placed to check a supplier's real delivery time. Whether next month's launch happens on schedule depends on shipments Shopify has no idea exist.

Inbound POs tab:

ColHeaderExampleNotes
APOPO-2026-031Your PO number
BSupplierShenzhen Aud. Co.
CContentsSKU-BT01 x 500What inventory is on the truck
DNeed by2026-09-01Launch/restock deadline
ETracking #SF123456789012
FCarrierSF ExpressOr UPS, DHL, YunExpress, a freight forwarder
GStatus(formula)Same PKG_STATUS_LIVE
HLast event(formula)Customs holds show up here

Same formulas, same auto-updates. Now "will the restock beat the stockout?" is a glance at one tab, not an email thread with your supplier. For international POs, the Last event column is where the real story lives — export scans, customs clearance, handoff to the destination carrier — which is exactly the visibility you need to decide whether to slow ad spend before inventory runs dry.

Dropshippers run the same structure with a twist: the "PO" rows are customer orders, shipped by the supplier via China Post, Yanwen, or YunExpress. Paste the supplier's tracking CSV in, and you're watching your customers' deliveries even though you never touched the boxes.

Real merchant scenarios

The DTC brand with a 3PL. The 3PL ships UPS/USPS domestic, DHL international. Ops keeps the sheet as the daily exceptions dashboard; support uses Ctrl+F on the customer name to answer tickets in seconds with the exact latest scan.

The dropshipping store. Supplier ships 60 orders a week from overseas. The sheet is the only place with per-order delivery truth — and a weekly pivot on delivered-vs-shipped dates per supplier tells you which supplier's "7–12 days" is real and which is fiction.

The seasonal launch. 4 POs from 3 factories need to land before Black Friday. The Inbound tab with Need by vs live status is the difference between reacting to a customs hold on day 2 and discovering it on day 12.

Frequently asked questions

Does this connect to my Shopify store? No API connection or app install on the Shopify side. You bring order + tracking data via CSV export (or from your fulfillment app); the sheet does the tracking. Your store credentials are never involved.

Shopify already sends customers tracking emails. Why this? Those emails serve the customer, one order at a time — if they read them. This gives you the fleet view: every open shipment, sortable and filterable, with the problems highlighted.

Can it handle my volume? Drag-fill handles hundreds of rows in one go; lookups are batched and rate-limited per carrier automatically. Quota is pooled — 500 lookups on Growth is 500 total across all carriers and tabs, and cached re-reads are free.

My supplier gives me a tracking number but not the carrier. Try auto in the carrier column — many numbers (like UPS's 1Z prefix) are self-identifying. Ambiguous ones need the carrier name from the supplier; see the edge-case notes in our multi-courier guide.

What does it cost? 3 free lookups to try. Plans from $19/month — full pricing.

The takeaway

Shopify tells you an order was fulfilled; your customers judge you on whether it was delivered. A Google Sheet with live tracking formulas closes that gap — and closes it for the inbound POs your inventory depends on too. One file: orders out, stock in, exceptions in red.

Install Your Package Tracker free from the Google Workspace Marketplace →

Also selling on other channels? See our guides for Etsy sellers and Amazon sellers, or the live auto-updating tracking guide for how the _LIVE formulas work.