Migrate to fulfillment orders

Topic summary

Migrating to fulfillment orders via REST Admin API (2023-01): retrieval and creation of fulfillments are working, but adding multiple tracking numbers to a single fulfillment is the issue.

Key limitation and options:

  • REST Admin API does not support multiple tracking numbers on a single fulfillment (including via the update tracking endpoint).
  • GraphQL Admin API supports multiple tracking numbers.
  • If shipping multiple boxes by splitting items, create separate fulfillments, each with the relevant line items and its own tracking number, so buyers can see which items are in each shipment.

Open question:

  • A Postman call to the update tracking endpoint returns 200 OK with a link to accounts.shopify.com for authorization; the thread does not provide steps or settings to enable/authorize this call.

Status: No final resolution. Recommended paths are either using separate fulfillments in REST or switching to GraphQL for multiple tracking numbers on a single fulfillment.

Summarized with AI on January 31. AI used: gpt-5.

We are migrating to fulfillment orders. We are successfully getting fulfillment orders (/admin/api/2023-01/orders/) and posting fulfillments (/admin/api/2023-01/fulfillments.json).

However, the fulfillment post does not allow for multiple tracking numbers. What is the best way to add multiple tracking numbers to a fulfillment?

Will update tracking information (https://shopify.dev/docs/api/admin-rest/2023-01/resources/fulfillment#post-fulfillments-fulfillment-id-update-tracking) for a fulfillment allow for adding multiple tracking numbers to a fulfillment?

I’ve tried to call this API using Postman, but get a 200 ok and a response back that has a link to accounts.shopify.com to authorize. What do I need to turn on, in order for me to be able to call this?

Do you have a single line item with multiple boxes? Or are you splitting multiple line items into multiple boxes?

For the second, the buyer wants to know what items are in what shipment. So you should create two fulfillments, each with the line items in the box and their own tracking number.

The GraphQL API does allow multiple tracking numbers, but this is not currently supported for REST.