BULK TRACKING UPLOAD

Bulk upload tracking numbers to Shopify, the CSV method honestly.

The import is the easy 10 percent. Building the file is the other 90.

A CSV app or Matrixify will happily push a thousand tracking numbers into Shopify in one shot. The problem is that someone still has to read every supplier email and type those numbers into the right row first.

The CSV method, honestly

Bulk tracking upload on Shopify is a solved problem at the import end. Whether you use a dedicated App Store app (BulkTrack, Easy Fulfillment, Dropflow) or a full ETL tool like Matrixify, the shape is the same: you hand Shopify a spreadsheet that maps each order to a tracking number and carrier, and it marks those orders fulfilled in a single pass.

The real steps, briefly:

  1. 1

    Export the orders that need tracking

    Pull your unfulfilled orders to CSV, usually filtered to a date range or a tag, so you have a row per order keyed by order name (for example #1042).

  2. 2

    Fill a tracking-number column

    Add a tracking number and carrier next to each order. This is the column you are paying the tool to consume, and the column nobody hands you ready-made.

  3. 3

    Import the file

    Upload through a CSV fulfillment app or Matrixify, map your columns, choose whether to send the shipping email, and run it. Shopify marks each matched order fulfilled.

That import works. It is reliable and fast, and for a clean file it is genuinely the right tool. The trouble is everything that has to happen before step 3.

Where CSV breaks down: building the file

Here is the part the App Store listings gloss over. Importing the CSV is maybe 10 percent of the job. The other 90 percent is assembling that CSV in the first place. The raw material is a pile of supplier dispatch emails that look nothing alike.

One supplier drops the tracking number in a plain-text sentence. Another buries it in an HTML table. YunExpress and 4PX attach a PDF shipping label and put nothing useful in the body. A batch email lists twelve shipments at once. A split shipment sends two tracking numbers for one order, days apart. To build one row of your CSV you have to open the email, find the number, figure out which Shopify order it belongs to, and paste it in — without fat-fingering a single character.

CSV removes the typing-into-Shopify step. It does not remove the reading-the-email step. The reading step is the one that actually costs you.

That is why a CSV workflow so often turns into a VA workflow: someone has to sit in the inbox, interpret each format, match each order by hand, and keep the spreadsheet clean. The 12-hour lag and the occasional transposed digit are not the app’s fault. They are baked into the part of the job the app never touches.

CSV upload vs forwarding the email

Relayship attacks the 90 percent instead of the 10. Instead of building a file, you forward the supplier email to one address and the matching, fulfilling, and notifying all happen on their own. Here is the same job, side by side.

StepCSV / MatrixifyRelayship
Get tracking from the supplier emailYou open each email and read it — body, HTML, or PDF label — by handGemini extracts the number, carrier, order reference, SKUs, and address automatically
Build the fileYou type each row into a spreadsheet and keep it cleanNo file. Each email becomes a shipment; a batch of N tracking numbers becomes N shipments
Match to the Shopify orderYou eyeball the order name and paste it into the right rowA four-tier cascade (order reference, then customer plus SKU, then name and address) finds it
Import / fulfillUpload the CSV and run the importfulfillmentCreateV2 runs automatically above your confidence threshold (default 0.9)
Customer notifiedGoes out in your next batch, when you next sit down to do itShopify sends its native shipping email in under about 60 seconds

And when an email is ambiguous, Relayship does not guess into your live orders. Anything below the threshold lands in a human confirmation queue, and every correction you make becomes a few-shot example for that supplier’s domain, so the match rate climbs over the first ten or so shipments per supplier.

When CSV is still the right tool

Forwarding does not win every case, and it is worth being straight about the exceptions.

  • One-off historical backfill. You already have tracking sitting in a clean spreadsheet (say you exported it from a 3PL portal) and you just need it into Shopify once. A CSV import or Matrixify is the fastest path. There is no email to forward.
  • A supplier who hands you a clean CSV. If a supplier already emails you a structured file with order references and tracking, importing it directly is simple and you do not need parsing at all.
  • Bulk schema edits beyond fulfillment. Matrixify is doing far more than tracking. If you also need to rewrite products, metafields, or customers in bulk, keep it.

Outside those cases (when the tracking is scattered across forwarded supplier emails that arrive a few at a time, in a dozen formats), forwarding wins, because it deletes the reading and matching work that no CSV app ever touches. If you are weighing it against a person doing that reading, our hiring-a-VA comparison runs the math; if you are weighing it against a feed-based importer, see how it stacks up against Fulfilleo. The full picture lives on the Relayship blog hub.

Start 14-day trial See pricing