← Back to blog
2026-08-06 · ShipCay team · Facts verified 2026-08-06

Shopify bulk shipping labels: real limits of native labels and how to sync tracking back

Shopify Shipping now covers eight ship-from countries, but the boundaries are real: your fulfilment location must be on the list, Australia gets exactly one carrier, bulk buying caps at 250 labels, and bulk fulfilment cannot bulk-add tracking numbers. Here is where native is enough, where it is not, and the export → batch-label → API write-back loop that closes the gap.

First, an outdated claim worth killing: “Shopify can only buy labels in the US and Canada” is no longer true. As of writing (check Shopify’s current docs), built-in Shopify Shipping supports shipping from the US, Canada, UK, Australia, France, Germany, Italy and Spain. But wider coverage does not mean no boundaries—the boundaries just moved, and they are precisely what decides whether you need an external labelling system.

Three real limits of native labels

One: your ship-from location must genuinely be in a supported country. Shopify Shipping is judged per fulfilment location, and some carriers additionally require the store address to be in the same country. Sellers shipping direct from China, or from warehouses outside the eight countries, cannot use it at all.

Two: carrier choice collapses outside the US. The US gets USPS, UPS, DHL and FedEx; Australia gets exactly one carrier—Australia Post, so there is nothing to rate-shop; Canada’s Purolator and UPS options are domestic-only. If you want to compare AusPost against Aramex per order, or run a UK mix beyond the built-in list, native cannot do it.

Three: bulk has a hard ceiling—the Orders page buys and prints at most 250 labels per run (unpaid, invalid-address and already-fulfilled orders are excluded; international declared value caps at US$2,500), and selecting more than 250 orders disables several bulk actions outright. At hundreds of orders a day, native means working in slices.

The sharpest gap: bulk fulfilment cannot bulk-add tracking

This is the genuine capability hole: the bulk “mark as fulfilled” flow does not support adding tracking numbers in bulk—tracking goes in one order at a time, or via an app or the API. If you produced 300 labels in an external system, there is no native path to write 300 tracking numbers back (CSV import of tracking does not exist either; the Orders CSV is export-only).

The officially supported loop is: export orders (or pull via API) → batch-print labels externally → write fulfilments back with the GraphQL Admin API’s fulfillmentCreate, which creates the fulfilment against the order’s FulfillmentOrder with carrier name, tracking number and URL, and optionally notifies the customer. Carriers Shopify recognises get clickable tracking links automatically; late tracking corrections go through fulfillmentTrackingInfoUpdate.

Multi-location sellers: write-backs must target the right location

Shopify inventory is organised by location (active-location caps are plan-based: 10 on Basic, Grow and Advanced, 200 on Plus—recently changed figures, so verify against current docs), and order routing assigns each order to a location: a single location with full stock takes the whole order, otherwise it splits.

When an external system writes fulfilments back, it must target the location the order was routed to—fulfillmentCreate works per FulfillmentOrder and location. This is the single most common integration error for multi-warehouse sellers: the label was produced for warehouse A while the fulfilment lands on warehouse B’s FulfillmentOrder. Mapping locations before go-live saves most of the debugging.

Two more things cross-border sellers should know

Managed Markets is US-sellers-only: it requires a business located in the continental US, a US ship-from address and Shopify Payments. Australian, Canadian and UK sellers—and any non-US entity—cannot use the merchant-of-record programme, so cross-border duty and logistics remain yours to assemble; exactly where an external logistics stack fits.

Label format is a non-issue: the Shopify-ecosystem standard is 4×6 in (100×150 mm) thermal, with Letter and A4 for desktop printers. External 4×6 PDFs drop straight into an existing thermal workflow.

When native is enough—and when it is not

The honest dividing line: one store, tens of orders a day, shipping from a supported country, happy with the built-in carrier’s rates—use native Shopify Shipping and skip the tooling.

Three situations justify an external batch system: your ship-from location is outside the eight countries (China direct or third-country warehouses); you want carriers beyond the built-in list or lower negotiated rates (rate-shopping beyond AusPost in Australia, using Evri for cheap light parcels in the UK); or volume in the hundreds per day, or multiple stores and platforms needing one unified labelling flow. The ShipCay pattern: import orders via CSV or API, batch-create labels across Australia Post, Canada Post, USPS, UPS, Royal Mail and Evri at the lowest compared rate, then write fulfilments and tracking back to Shopify via the API—closing both the 250-label cap and the no-bulk-tracking gap at once.

Common questions

Does Shopify Shipping work in Australia or the UK? Yes—but Australia gets only Australia Post, while the UK gets Evri, DPD, Royal Mail, Yodel and DHL. Rate-shopping or off-list carriers require an external system.

How many labels can I buy at once? 250. Beyond that you work in batches—or route around the cap externally.

Can tracking numbers be imported in bulk? Not natively—CSV is export-only. Bulk tracking goes through an app or the Fulfillment API (fulfillmentCreate).

Can one fulfilment carry several tracking numbers? Since April 2022, one fulfilment carries one set of tracking; multiple parcels mean multiple fulfilments.

How do I export orders? Orders → Export: up to 50 orders download directly; larger or date-ranged exports arrive by email.

Want to batch-ship for less with ShipCay?

Get started free