Why is fulfillable quantity 0 and fulfillment status null?

Topic summary

Developers are encountering an issue where orders show fulfillable_quantity as 0 and fulfillment_status as null, preventing order fulfillment despite items needing to be shipped.

Key Problem:

  • The API behavior appears opposite to Shopify’s documentation: fulfillable_quantity decreases when items are fulfilled (reaching 0 when complete), rather than representing remaining units to fulfill
  • Orders display 0 fulfillable quantity even when no fulfillment actions have been taken

Affected Scenarios:

  • Orders created from draft orders seem particularly impacted
  • Issue has intensified since September 13th, now affecting multiple orders daily
  • Occurs when querying the Admin API or Order Webhooks shortly after order creation

Temporary Workaround:

  • Waiting a few hours and re-querying the API returns correct fulfillment quantities

Current Status:
Multiple developers report this issue with no confirmed solution. Questions remain whether this is a Shopify bug specific to draft orders or a broader API problem affecting order fulfillment data accuracy.

Summarized with AI on November 16. AI used: claude-sonnet-4-5-20250929.

Hi there,

I would like to ask regarding of the fulfillable quantity of an order. Recently there was an order that we are trying to fulfill in the live environment, but the fulfillable_quantity is 0 while the fulfillement_status is null. According to the documentation for Line Item, it mentioned that the definition for the bold fields are:

  • fulfillableQuantity (Int!)

    The total number of units to fulfill.

  • fulfillmentStatus (String!)

    The line item’s fulfillment status. Returns ‘fulfilled’ if fulfillableQuantity >= quantity, ‘partial’ if fulfillableQuantity > 0, and ‘unfulfilled’ otherwise.

But when we test out an order, when we fulfilled the order details. The order fulfillable_quantity is reduced, and when it reaches 0 the fulfillment_status is fulfilled. It appears to have worked the opposite way from what the API document define for those fields.

Right now, we are unable to fulfill the order as the fulfillable_quantity is 0, and the fulfillment_status is null. Attach is the json data of order that we are facing the problem followed by the test order we conduct.

Actual Order:

{
	"order": {
		"id": 2458411532337,
		"email": "",
		"closed_at": null,
		"created_at": "2020-10-05T13:54:08+08:00",
		"updated_at": "2020-10-05T13:56:17+08:00",
		"number": 13,
		"note": "",
		"token": "3c3c3c8d1eb151ffa1152a291dd5033e",
		"gateway": "Bank Deposit",
		"test": false,
		"total_price": "89.00",
		"subtotal_price": "89.00",
		"total_weight": 200,
		"total_tax": "0.00",
		"taxes_included": false,
		"currency": "MYR",
		"financial_status": "paid",
		"confirmed": true,
		"total_discounts": "0.00",
		"total_line_items_price": "89.00",
		"cart_token": null,
		"buyer_accepts_marketing": false,
		"name": "#1013",
		"referring_site": null,
		"landing_site": null,
		"cancelled_at": null,
		"cancel_reason": null,
		"total_price_usd": "21.37",
		"checkout_token": null,
		"reference": null,
		"user_id": 26189594673,
		"location_id": 14346649649,
		"source_identifier": null,
		"source_url": null,
		"processed_at": "2020-10-05T13:54:08+08:00",
		"device_id": null,
		"phone": null,
		"customer_locale": null,
		"app_id": 1354745,
		"browser_ip": null,
		"landing_site_ref": null,
		"order_number": 1013,
		"discount_applications": [],
		"discount_codes": [],
		"note_attributes": [],
		"payment_gateway_names": [
			"Bank Deposit"
		],
		"processing_method": "manual",
		"checkout_id": null,
		"source_name": "shopify_draft_order",
		"fulfillment_status": null,
		"tax_lines": [],
		"tags": "",
		"contact_email": null,
		"order_status_url": "https://starla-malaysia.com/1357381681/orders/3c3c3c8d1eb151ffa1152a291dd5033e/authenticate?key=8ee3f419f9252b4049d3c805c554f1b4",
		"presentment_currency": "MYR",
		"total_line_items_price_set": {
			"shop_money": {
				"amount": "89.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "89.00",
				"currency_code": "MYR"
			}
		},
		"total_discounts_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"total_shipping_price_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"subtotal_price_set": {
			"shop_money": {
				"amount": "89.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "89.00",
				"currency_code": "MYR"
			}
		},
		"total_price_set": {
			"shop_money": {
				"amount": "89.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "89.00",
				"currency_code": "MYR"
			}
		},
		"total_tax_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"line_items": [
			{
				"id": 5314306932785,
				"variant_id": 14289959813169,
				"title": "Semi-instant Butterfly Satin Goldie-Peach Shawl",
				"quantity": 1,
				"sku": "SLO4",
				"variant_title": null,
				"vendor": "Starla Malaysia",
				"fulfillment_service": "istore-isend-sdn-bhd",
				"product_id": 1790313529393,
				"requires_shipping": true,
				"taxable": false,
				"gift_card": false,
				"name": "Semi-instant Butterfly Satin Goldie-Peach Shawl",
				"variant_inventory_management": "shopify",
				"properties": [],
				"product_exists": true,
				"fulfillable_quantity": 0,
				"grams": 200,
				"price": "89.00",
				"total_discount": "0.00",
				"fulfillment_status": null,
				"price_set": {
					"shop_money": {
						"amount": "89.00",
						"currency_code": "MYR"
					},
					"presentment_money": {
						"amount": "89.00",
						"currency_code": "MYR"
					}
				},
				"total_discount_set": {
					"shop_money": {
						"amount": "0.00",
						"currency_code": "MYR"
					},
					"presentment_money": {
						"amount": "0.00",
						"currency_code": "MYR"
					}
				},
				"discount_allocations": [],
				"tax_lines": [
					{
						"title": "SST",
						"price": "0.00",
						"rate": 0.06,
						"price_set": {
							"shop_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							},
							"presentment_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							}
						}
					}
				]
			}
		],
		"fulfillments": [
			{
				"id": 2313867231281,
				"order_id": 2458411532337,
				"status": "pending",
				"created_at": "2020-10-05T13:56:17+08:00",
				"service": "istore-isend-sdn-bhd",
				"updated_at": "2020-10-05T13:56:17+08:00",
				"tracking_company": null,
				"shipment_status": null,
				"location_id": 14396391473,
				"line_items": [
					{
						"id": 5314306932785,
						"variant_id": 14289959813169,
						"title": "Semi-instant Butterfly Satin Goldie-Peach Shawl",
						"quantity": 1,
						"sku": "SLO4",
						"variant_title": null,
						"vendor": "Starla Malaysia",
						"fulfillment_service": "istore-isend-sdn-bhd",
						"product_id": 1790313529393,
						"requires_shipping": true,
						"taxable": false,
						"gift_card": false,
						"name": "Semi-instant Butterfly Satin Goldie-Peach Shawl",
						"variant_inventory_management": "shopify",
						"properties": [],
						"product_exists": true,
						"fulfillable_quantity": 0,
						"grams": 200,
						"price": "89.00",
						"total_discount": "0.00",
						"fulfillment_status": null,
						"price_set": {
							"shop_money": {
								"amount": "89.00",
								"currency_code": "MYR"
							},
							"presentment_money": {
								"amount": "89.00",
								"currency_code": "MYR"
							}
						},
						"total_discount_set": {
							"shop_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							},
							"presentment_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							}
						},
						"discount_allocations": [],
						"tax_lines": [
							{
								"title": "SST",
								"price": "0.00",
								"rate": 0.06,
								"price_set": {
									"shop_money": {
										"amount": "0.00",
										"currency_code": "MYR"
									},
									"presentment_money": {
										"amount": "0.00",
										"currency_code": "MYR"
									}
								}
							}
						]
					}
				],
				"tracking_number": null,
				"tracking_numbers": [],
				"tracking_url": null,
				"tracking_urls": [],
				"receipt": {},
				"name": "#1013.1"
			}
		],
		"refunds": [],
		"total_tip_received": "0.0",
		"shipping_lines": [],
		"shipping_address": {
			"first_name": "Nur Afida",
			"address1": "E-G-11",
			"phone": "+60193039169",
			"city": "KUALA LUMPUR",
			"zip": "53100",
			"province": "Kuala Lumpur",
			"country": "Malaysia",
			"last_name": "Anuar",
			"address2": "PRIMA COURT, JALAN UKAY PRIMA, SAUJANA MELAWATI,",
			"company": "",
			"latitude": 3.2987908,
			"longitude": 101.7409946,
			"name": "Nur Afida Anuar",
			"country_code": "MY",
			"province_code": "KUL"
		}
	}
}

Test Order:

{
	"order": {
		"id": 2800701833268,
		"email": "test@email.com",
		"closed_at": null,
		"created_at": "2020-10-01T09:52:00+08:00",
		"updated_at": "2020-10-14T15:35:02+08:00",
		"number": 76,
		"note": "",
		"token": "5fb0e5b07ec5eae4ada9d8684e9bbf84",
		"gateway": null,
		"test": false,
		"total_price": "0.00",
		"subtotal_price": "0.00",
		"total_weight": 0,
		"total_tax": "0.00",
		"taxes_included": false,
		"currency": "MYR",
		"financial_status": "paid",
		"confirmed": true,
		"total_discounts": "0.00",
		"total_line_items_price": "0.00",
		"cart_token": null,
		"buyer_accepts_marketing": false,
		"name": "#1076",
		"referring_site": null,
		"landing_site": null,
		"cancelled_at": null,
		"cancel_reason": null,
		"total_price_usd": "0.00",
		"checkout_token": null,
		"reference": null,
		"user_id": 104046468,
		"location_id": null,
		"source_identifier": null,
		"source_url": null,
		"processed_at": "2020-10-01T09:52:00+08:00",
		"device_id": null,
		"phone": null,
		"customer_locale": null,
		"app_id": 1354745,
		"browser_ip": null,
		"landing_site_ref": null,
		"order_number": 1076,
		"discount_applications": [],
		"discount_codes": [],
		"note_attributes": [],
		"payment_gateway_names": [],
		"processing_method": "manual",
		"checkout_id": null,
		"source_name": "shopify_draft_order",
		"fulfillment_status": "fulfilled",
		"tax_lines": [],
		"tags": "",
		"contact_email": "test@email.com",
		"order_status_url": "https://istoreisend-flagship-store.myshopify.com/15304071/orders/5fb0e5b07ec5eae4ada9d8684e9bbf84/authenticate?key=12d74ef78f982a8d509932acac66fbea",
		"presentment_currency": "MYR",
		"total_line_items_price_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"total_discounts_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"total_shipping_price_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"subtotal_price_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"total_price_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"total_tax_set": {
			"shop_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			},
			"presentment_money": {
				"amount": "0.00",
				"currency_code": "MYR"
			}
		},
		"line_items": [
			{
				"id": 6101286354996,
				"variant_id": 31739474935860,
				"title": "Test Product A",
				"quantity": 1,
				"sku": "TestProductA",
				"variant_title": null,
				"vendor": "iStoreiSend Flagship store",
				"fulfillment_service": "istore-isend-sdn-bhd",
				"product_id": 4486932889652,
				"requires_shipping": true,
				"taxable": false,
				"gift_card": false,
				"name": "Test Product A",
				"variant_inventory_management": "shopify",
				"properties": [],
				"product_exists": true,
				"fulfillable_quantity": 0,
				"grams": 0,
				"price": "0.00",
				"total_discount": "0.00",
				"fulfillment_status": "fulfilled",
				"price_set": {
					"shop_money": {
						"amount": "0.00",
						"currency_code": "MYR"
					},
					"presentment_money": {
						"amount": "0.00",
						"currency_code": "MYR"
					}
				},
				"total_discount_set": {
					"shop_money": {
						"amount": "0.00",
						"currency_code": "MYR"
					},
					"presentment_money": {
						"amount": "0.00",
						"currency_code": "MYR"
					}
				},
				"discount_allocations": [],
				"tax_lines": [
					{
						"title": "SST",
						"price": "0.00",
						"rate": 0.06,
						"price_set": {
							"shop_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							},
							"presentment_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							}
						}
					}
				]
			}
		],
		"fulfillments": [
			{
				"id": 2666066444340,
				"order_id": 2800701833268,
				"status": "success",
				"created_at": "2020-10-14T15:35:02+08:00",
				"service": "istore-isend-sdn-bhd",
				"updated_at": "2020-10-14T15:35:02+08:00",
				"tracking_company": "DHL eCommerce",
				"shipment_status": null,
				"location_id": 35376660532,
				"line_items": [
					{
						"id": 6101286354996,
						"variant_id": 31739474935860,
						"title": "Test Product A",
						"quantity": 1,
						"sku": "TestProductA",
						"variant_title": null,
						"vendor": "iStoreiSend Flagship store",
						"fulfillment_service": "istore-isend-sdn-bhd",
						"product_id": 4486932889652,
						"requires_shipping": true,
						"taxable": false,
						"gift_card": false,
						"name": "Test Product A",
						"variant_inventory_management": "shopify",
						"properties": [],
						"product_exists": true,
						"fulfillable_quantity": 0,
						"grams": 0,
						"price": "0.00",
						"total_discount": "0.00",
						"fulfillment_status": "fulfilled",
						"price_set": {
							"shop_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							},
							"presentment_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							}
						},
						"total_discount_set": {
							"shop_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							},
							"presentment_money": {
								"amount": "0.00",
								"currency_code": "MYR"
							}
						},
						"discount_allocations": [],
						"tax_lines": [
							{
								"title": "SST",
								"price": "0.00",
								"rate": 0.06,
								"price_set": {
									"shop_money": {
										"amount": "0.00",
										"currency_code": "MYR"
									},
									"presentment_money": {
										"amount": "0.00",
										"currency_code": "MYR"
									}
								}
							}
						]
					}
				],
				"tracking_number": "12313",
				"tracking_numbers": [
					"12313"
				],
				"tracking_url": "http://webtrack.dhlglobalmail.com/?trackingnumber=12313",
				"tracking_urls": [
					"http://webtrack.dhlglobalmail.com/?trackingnumber=12313"
				],
				"receipt": {},
				"name": "#1076.1"
			}
		],
		"refunds": [],
		"total_tip_received": "0.0",
		"shipping_lines": [],
		"billing_address": {
			"first_name": "sad",
			"address1": "WEWR",
			"phone": "012-345 6789",
			"city": "ASDA",
			"zip": "12313",
			"province": "Penang",
			"country": "Malaysia",
			"last_name": "ADD",
			"address2": "ASD",
			"company": null,
			"latitude": null,
			"longitude": null,
			"name": "sad ADD",
			"country_code": "MY",
			"province_code": "PNG"
		},
		"shipping_address": {
			"first_name": "sad",
			"address1": "WEWR",
			"phone": "012-345 6789",
			"city": "ASDA",
			"zip": "12313",
			"province": "Penang",
			"country": "Malaysia",
			"last_name": "ADD",
			"address2": "ASD",
			"company": null,
			"latitude": null,
			"longitude": null,
			"name": "sad ADD",
			"country_code": "MY",
			"province_code": "PNG"
		},
		"customer": {
			"id": 7599898500,
			"email": "test@email.com",
			"accepts_marketing": false,
			"created_at": "2017-10-04T18:23:06+08:00",
			"updated_at": "2020-10-01T09:52:01+08:00",
			"first_name": "test name",
			"last_name": "test lastname",
			"orders_count": 14,
			"state": "disabled",
			"total_spent": "60.54",
			"last_order_id": 2800701833268,
			"note": null,
			"verified_email": true,
			"multipass_identifier": null,
			"tax_exempt": false,
			"phone": null,
			"tags": "",
			"last_order_name": "#1076",
			"currency": "MYR",
			"accepts_marketing_updated_at": "2018-12-30T10:15:11+08:00",
			"marketing_opt_in_level": null,
			"default_address": {
				"id": 4363524505652,
				"customer_id": 7599898500,
				"first_name": "sad",
				"last_name": "ADD",
				"company": null,
				"address1": "WEWR",
				"address2": "ASD",
				"city": "ASDA",
				"province": "Penang",
				"country": "Malaysia",
				"zip": "12313",
				"phone": "012-345 6789",
				"name": "sad ADD",
				"province_code": "PNG",
				"country_code": "MY",
				"country_name": "Malaysia",
				"default": true
			}
		}
	}
}

Please advise on this matter. Thank you

We are facing the same issue. Has anybody found a solution to this?

We are encountering this too. When we use “Matrixify” (an app) to export order with their fulfillable quantity, it seems that orders created from drafts are created with all line items having “fulfillable quantity” as 0, when in fact that have a positive number of line items that do actually need to be fulfiflled. Is this a bug in shopify for the draft orders??

We have many Shopify customers we do fulfillment for. I’ve seen this infrequently happened in the past, but starting Sep. 13th, this is now happening on a regular basis to many orders a day. The Order Webhook on creation returns 0 as the fulfillable quantity and the Admin API (Orders) returns 0 too if ran within a few hours of creation. We found if we wait a few hours and repull the order using the API, the fulfillment quantity is correct even though no one did anything with the order.