I’m trying to fulfill an order via GraphQL call but no luck so far. I believe the issue might be because I’m using products with Track Quantity and This is a physical product both set to false. Perhaps some of my understanding about fulfillments is wrong.
I can see that none of my test orders have fulfillments associated with them.
// https://some-store.myshopify.com/admin/api/2025-04/graphql.json
{
orders(first: 1) {
edges {
node {
id
name
fulfillable
fulfillmentsCount {
count
}
fulfillments (first: 30) {
legacyResourceId
requiresShipping
createdAt
}
fulfillmentOrders (first: 30) {
nodes {
channelId
}
edges {
node {
id
}
}
}
}
}
}
}
Result
{
"data": {
"orders": {
"edges": [
{
"node": {
"id": "gid://shopify/Order/11462815121756",
"name": "#1001",
"fulfillable": true,
"fulfillmentsCount": {
"count": 0
},
"fulfillments": [],
"fulfillmentOrders": {
"nodes": [],
"edges": []
}
}
}
]
}
},
"extensions": {
"cost": {
"requestedQueryCost": 19,
"actualQueryCost": 7,
"throttleStatus": {
"maximumAvailable": 2000.0,
"currentlyAvailable": 1993,
"restoreRate": 100.0
}
}
}
}
I can easily fulfill an order on my Shopify admin page in Orders section. I want to achieve the same via API.
Here’s my desired workflow. FYI we’re using Shopify Hydrogen.
- Customer places an order.
- We capture the order on our server using Shopify’s webhook.
- The server generates the unique file (each file will always be unique).
- Order status is marked as fulfilled on Shopify - that’s the part I’m struggling with.
- File becomes downloadable via link which we include on My Orders page
