Shopify shipping guide

Can I add tracking numbers to Shopify orders in bulk?

Not with Shopify's own bulk action. Selecting orders and choosing Mark as fulfilled moves them to Fulfilled with no tracking field, and Shopify tells you to add tracking numbers manually afterwards. To get tracking onto many orders at once, fulfill them from wherever you buy the labels, so each number is written as the label is created.

What Shopify's bulk fulfillment action actually does

The bulk action marks orders Fulfilled and optionally emails the customer. There is no tracking field in the flow. Shopify's own instruction is that after you mark your orders as fulfilled, you can add tracking numbers to your orders manually, one order at a time.

  1. Go to Orders in your Shopify admin.

  2. Select the orders you want to fulfill.

  3. Click Mark as, then Fulfilled.

  4. Optionally check Send a notification to the customer.

  5. Click Mark as fulfilled.

Every order in that selection is now Fulfilled with no tracking number attached, so the customer email carries no link.

Orders the bulk action will skip

Two states are excluded, and both are easy to miss when a selection count does not match what you expected.

StateWhat Shopify doesHow to clear it
On holdStatus cannot be changed by a bulk actionRelease all holds on the order first
ScheduledCannot be processed in bulkOpen the order and change the fulfillment date
Over 250 selectedSome features might not be availableWork in smaller selections

Adding tracking to one order, the manual route

This is the pass you repeat for every order the bulk action touched. It is also the only place Shopify lets you type a tracking number in the admin.

  1. Open the order from Orders.

  2. Click Mark as fulfilled in the Unfulfilled or In progress section.

  3. Type the number in the Tracking number field. Shopify might recognize the format and select the carrier for you.

  4. Pick the carrier yourself if the guess is wrong, or pick Other and paste the full tracking URL.

  5. Leave Send a notification to the customer checked if you want the email to go now.

  6. Click Mark as fulfilled.

Which email the customer gets, and when

The two emails are separate templates with separate triggers. Shipping confirmation is sent when an order is fulfilled, with or without tracking. Shipping update is sent when tracking information is updated, which is what fires if you fulfill first and add the number later.

Fulfilling in bulk and adding tracking afterwards means most customers get two emails: one with no link, one with the link.

The order of operations that removes the second pass

Buy the label first, then create the fulfillment. When the fulfillment is created through Shopify's API it carries the tracking number and carrier with it, so the shipping confirmation goes out already clickable and nothing has to be typed back into the admin. That is how any shipping app avoids the spreadsheet step: the number never leaves the system that generated it.

Key takeaways

  • Shopify's bulk Mark as fulfilled action does not accept tracking numbers.
  • Tracking added after fulfillment sends the shipping update email, not the shipping confirmation.
  • Orders on hold and orders scheduled for a future date are excluded from bulk status changes.
  • Fulfilling from the system that buys the label puts the number on the fulfillment in one pass.
With I'd Ship That

Tracking is written back when the label is bought

The Shopify connection is in early access. Paid orders arrive through Shopify webhooks and a 10 to 15 minute poll, land in The Workbench, and you rate USPS and UPS across the batch and print one merged PDF.

As each label is bought we create the fulfillment against that order's fulfillment order with the tracking number and carrier, and Shopify sends its own notification to the buyer. No tracking numbers are typed twice, and no list is exported to a spreadsheet.

See the Shopify integration

Only if you check Send a notification to the customer before confirming. Leaving it unchecked marks the orders Fulfilled quietly. The customer can still see the fulfillment on the order status page, and adding tracking later will send the shipping update email unless that notification is handled differently at the point of fulfillment.

Not through the bulk fulfillment action, which has no tracking field at all. A spreadsheet route means opening each order and typing the number into the Tracking number field, or using an app that creates the fulfillments through the API with tracking already attached. The second route is the reason most sellers stop keeping a tracking spreadsheet.

Shopify records the tracking information against the existing fulfillment and sends the shipping update email, which is the template triggered when tracking information is updated. The number then appears on the order status page and in later emails. The shipping confirmation is not sent again, because that one fires on fulfillment.

Orders with an active hold are excluded from the Unfulfilled list until the hold is released, and their status cannot be changed by a bulk action. Scheduled orders behave the same way until the fulfillment date is reached or you change the date on the order page. Clear both states first, then reselect.