Multi-fulfillment orders return incorrect SKU quantities via API

Topic summary

A developer encountered a data discrepancy where the GraphQL API returns incorrect SKU quantities for multi-fulfillment orders.

The Problem:

  • When an order is split across multiple fulfillments, the API returns the total quantity of a SKU across all fulfillments, rather than the specific quantity shipped in each individual fulfillment
  • Example: 12 units of ‘Sample3’ ordered total, but API shows 12 units in each of two separate fulfillments (totaling 24 instead of the correct split of 4 and 8)
  • The Shopify UI displays correct quantities, but the API data doesn’t match

Current Status:

  • One user reports the issue is now resolved when using remainingQuantity field in the Admin GraphQL API
  • The storefront API appears to be fixed as well
  • Another user considered filing a bug report but expressed skepticism about response based on past experience

Workaround: Using the remainingQuantity field with fulfillmentOrders.lineItems may provide accurate data.

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

Hi there. I’m having an issue whereby the SKU quantities associated with fulfillments in the Shopify UI do not always match the quantities being returned via the GraphQL API. This only happens on multi-fulfillment orders.

Example:

'fulfillments': [
{'createdAt': '2023-10-16T16:58:57Z', 'name': '#124122-F3', 'trackingInfo': [{'company': 'UPS', 'number': 'REDACTED-3'}], 'fulfillmentLineItems': {'edges': [{'node': {'lineItem': {'sku': 'Sample1', 'quantity': 4}}}, {'node': {'lineItem': {'sku': 'Sample2', 'quantity': 6}}}]}},
{'createdAt': '2023-10-16T16:58:06Z', 'name': '#124122-F2', 'trackingInfo': [{'company': 'UPS', 'number': 'REDACTED-2'}], 'fulfillmentLineItems': {'edges': [{'node': {'lineItem': {'sku': 'Sample3', 'quantity': 12}}}]}}, 
{'createdAt': '2023-10-16T16:56:59Z', 'name': '#124122-F1', 'trackingInfo': [{'company': 'UPS', 'number': 'REDACTED-1'}], 'fulfillmentLineItems': {'edges': [{'node': {'lineItem': {'sku': 'Sample3', 'quantity': 12}}}, {'node': {'lineItem': {'sku': 'Sample4', 'quantity': 3}}}]}}]

The total number of ‘Sample3’ skus purchased in the order was 12, however the fulfillments are returning 12 for each tracking number (total 24). In the Shopify UI, I see 4 of Sample3 shipped in the first fulfillment (F1) and 8 shipped under fulfillment F2.

In other words, the fulfillments are returning the total number of items for a SKU on every fulfillment that contains some of the items for that SKU. It should return only the items that were shipped under the tracking number in question.

Screenshot 2023-10-17 at 10.52.50 AM.png

^ Screenshot of order in UI. I’m expecting 25 items to be returned as shipped under the three fulfillments, but instead the API is returning 37 items split between the three fulfillments.

Any help is much appreciated. Thank you!

Hi Frank,

Did you manage to find away around this/any additional information?
Otherwise I will submit a bug report though my previous bug report on the github just got ignored so not too much hope there.

Hi Frank,

I had the same issue with fulfillmentOrders.lineItems, but it’s resolved now. I’m using remainingQuantity in the Admin GraphQL API, and it seems the storefront API is fixed too