# fulfillmentOrder - admin-graphql - QUERY Version: 2024-10 ## Description Returns a Fulfillment order resource by ID. ### Access Scopes ## Arguments * [id](/docs/api/admin-graphql/2024-10/scalars/ID): ID! - The ID of the `FulfillmentOrder` to return. ## Returns * [assignedLocation](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderAssignedLocation): FulfillmentOrderAssignedLocation! The fulfillment order's assigned location. This is the location where the fulfillment is expected to happen. The fulfillment order's assigned location might change in the following cases: - The fulfillment order has been entirely moved to a new location. For example, the [fulfillmentOrderMove]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove ) mutation has been called, and you see the original fulfillment order in the [movedFulfillmentOrder]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove#field-fulfillmentordermovepayload-movedfulfillmentorder ) field within the mutation's response. - Work on the fulfillment order hasn't yet begun, which means that the fulfillment order has the [OPEN](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-open), [SCHEDULED](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-scheduled), or [ON_HOLD](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-onhold) status, and the shop's location properties might be undergoing edits (for example, in the Shopify admin). * [channelId](/docs/api/admin-graphql/2024-10/scalars/ID): ID ID of the channel that created the order. * [createdAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime! Date and time when the fulfillment order was created. * [deliveryMethod](/docs/api/admin-graphql/2024-10/objects/DeliveryMethod): DeliveryMethod Delivery method of this fulfillment order. * [destination](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderDestination): FulfillmentOrderDestination The destination where the items should be sent. * [fulfillAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime The date and time at which the fulfillment order will be fulfillable. When this date and time is reached, the scheduled fulfillment order is automatically transitioned to open. For example, the `fulfill_at` date for a subscription order might be the 1st of each month, a pre-order `fulfill_at` date would be `nil`, and a standard order `fulfill_at` date would be the order creation date. * [fulfillBy](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime The latest date and time by which all items in the fulfillment order need to be fulfilled. * [fulfillmentHolds](/docs/api/admin-graphql/2024-10/objects/FulfillmentHold): FulfillmentHold! The fulfillment holds applied on the fulfillment order. * [id](/docs/api/admin-graphql/2024-10/scalars/ID): ID! A globally-unique ID. * [internationalDuties](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderInternationalDuties): FulfillmentOrderInternationalDuties The duties delivery method of this fulfillment order. * [order](/docs/api/admin-graphql/2024-10/objects/Order): Order! The order that's associated with the fulfillment order. * [orderId](/docs/api/admin-graphql/2024-10/scalars/ID): ID! ID of the order that's associated with the fulfillment order. * [orderName](/docs/api/admin-graphql/2024-10/scalars/String): String! The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. For example, "#1001", "EN1001", or "1001-A". This value isn't unique across multiple stores. * [orderProcessedAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime! The date and time when the order was processed. This date and time might not match the date and time when the order was created. * [requestStatus](/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderRequestStatus): FulfillmentOrderRequestStatus! The request status of the fulfillment order. * [status](/docs/api/admin-graphql/2024-10/enums/FulfillmentOrderStatus): FulfillmentOrderStatus! The status of the fulfillment order. * [supportedActions](/docs/api/admin-graphql/2024-10/objects/FulfillmentOrderSupportedAction): FulfillmentOrderSupportedAction! The actions that can be performed on this fulfillment order. * [updatedAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime! The date and time when the fulfillment order was last updated. ## Examples ### Retrieves a list of locations that a fulfillment order can potentially move to. Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query LocationsForMoveList($fulfillmentOrderId: ID!) { fulfillmentOrder(id: $fulfillmentOrderId) { locationsForMove(first: 10) { edges { node { location { id name } message movable availableLineItemsCount { count } unavailableLineItemsCount { count } } } } } }\",\n \"variables\": {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/564786110\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query LocationsForMoveList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n locationsForMove(first: 10) {\n edges {\n node {\n location {\n id\n name\n }\n message\n movable\n availableLineItemsCount {\n count\n }\n unavailableLineItemsCount {\n count\n }\n }\n }\n }\n }\n }`,\n \"variables\": {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/564786110\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query LocationsForMoveList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n locationsForMove(first: 10) {\n edges {\n node {\n location {\n id\n name\n }\n message\n movable\n availableLineItemsCount {\n count\n }\n unavailableLineItemsCount {\n count\n }\n }\n }\n }\n }\n }\nQUERY\n\nvariables = {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/564786110\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query LocationsForMoveList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n locationsForMove(first: 10) {\n edges {\n node {\n location {\n id\n name\n }\n message\n movable\n availableLineItemsCount {\n count\n }\n unavailableLineItemsCount {\n count\n }\n }\n }\n }\n }\n }`,\n {\n variables: {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/564786110\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query LocationsForMoveList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n locationsForMove(first: 10) {\n edges {\n node {\n location {\n id\n name\n }\n message\n movable\n availableLineItemsCount {\n count\n }\n unavailableLineItemsCount {\n count\n }\n }\n }\n }\n }\n}" #### Graphql Input { "fulfillmentOrderId": "gid://shopify/FulfillmentOrder/564786110" } #### Graphql Response { "data": { "fulfillmentOrder": { "locationsForMove": { "edges": [ { "node": { "location": { "id": "gid://shopify/Location/346779380", "name": "Ottawa Store" }, "message": "No items are stocked at this location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } }, { "node": { "location": { "id": "gid://shopify/Location/648019273", "name": "Ottawa Store geo located" }, "message": "No items are stocked at this location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } }, { "node": { "location": { "id": "gid://shopify/Location/884687543", "name": "Ottawa Warehouse" }, "message": "No items are stocked at this location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } }, { "node": { "location": { "id": "gid://shopify/Location/124656943", "name": "Shipping Origin" }, "message": "Current location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } }, { "node": { "location": { "id": "gid://shopify/Location/215093630", "name": "Snowdevil Shipwire Warehouse" }, "message": "No items are stocked at this location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } }, { "node": { "location": { "id": "gid://shopify/Location/750123840", "name": "Toronto Store" }, "message": "No items are stocked at this location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } }, { "node": { "location": { "id": "gid://shopify/Location/415211365", "name": "US Store" }, "message": "No items are stocked at this location.", "movable": false, "availableLineItemsCount": { "count": 0 }, "unavailableLineItemsCount": { "count": 1 } } } ] } } } } ### Retrieves a specific fulfillment order Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query FulfillmentOrderShow($id: ID!) { fulfillmentOrder(id: $id) { assignedLocation { location { id } } channelId destination { address1 address2 city company countryCode zip firstName lastName } fulfillAt fulfillBy requestStatus status lineItems(first: 10) { edges { node { inventoryItemId remainingQuantity requiresShipping weight { unit value } } } } } }\",\n \"variables\": {\n \"id\": \"gid://shopify/FulfillmentOrder/564786110\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query FulfillmentOrderShow($id: ID!) {\n fulfillmentOrder(id: $id) {\n assignedLocation {\n location {\n id\n }\n }\n channelId\n destination {\n address1\n address2\n city\n company\n countryCode\n zip\n firstName\n lastName\n }\n fulfillAt\n fulfillBy\n requestStatus\n status\n lineItems(first: 10) {\n edges {\n node {\n inventoryItemId\n remainingQuantity\n requiresShipping\n weight {\n unit\n value\n }\n }\n }\n }\n }\n }`,\n \"variables\": {\n \"id\": \"gid://shopify/FulfillmentOrder/564786110\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query FulfillmentOrderShow($id: ID!) {\n fulfillmentOrder(id: $id) {\n assignedLocation {\n location {\n id\n }\n }\n channelId\n destination {\n address1\n address2\n city\n company\n countryCode\n zip\n firstName\n lastName\n }\n fulfillAt\n fulfillBy\n requestStatus\n status\n lineItems(first: 10) {\n edges {\n node {\n inventoryItemId\n remainingQuantity\n requiresShipping\n weight {\n unit\n value\n }\n }\n }\n }\n }\n }\nQUERY\n\nvariables = {\n \"id\": \"gid://shopify/FulfillmentOrder/564786110\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query FulfillmentOrderShow($id: ID!) {\n fulfillmentOrder(id: $id) {\n assignedLocation {\n location {\n id\n }\n }\n channelId\n destination {\n address1\n address2\n city\n company\n countryCode\n zip\n firstName\n lastName\n }\n fulfillAt\n fulfillBy\n requestStatus\n status\n lineItems(first: 10) {\n edges {\n node {\n inventoryItemId\n remainingQuantity\n requiresShipping\n weight {\n unit\n value\n }\n }\n }\n }\n }\n }`,\n {\n variables: {\n \"id\": \"gid://shopify/FulfillmentOrder/564786110\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query FulfillmentOrderShow($id: ID!) {\n fulfillmentOrder(id: $id) {\n assignedLocation {\n location {\n id\n }\n }\n channelId\n destination {\n address1\n address2\n city\n company\n countryCode\n zip\n firstName\n lastName\n }\n fulfillAt\n fulfillBy\n requestStatus\n status\n lineItems(first: 10) {\n edges {\n node {\n inventoryItemId\n remainingQuantity\n requiresShipping\n weight {\n unit\n value\n }\n }\n }\n }\n }\n}" #### Graphql Input { "id": "gid://shopify/FulfillmentOrder/564786110" } #### Graphql Response { "data": { "fulfillmentOrder": { "assignedLocation": { "location": { "id": "gid://shopify/Location/124656943" } }, "channelId": null, "destination": { "address1": "123 Amoebobacterieae St", "address2": "Unit 806", "city": "Ottawa", "company": "", "countryCode": "CA", "zip": "K2P0V6", "firstName": "Bob", "lastName": "Bobsen" }, "fulfillAt": null, "fulfillBy": null, "requestStatus": "UNSUBMITTED", "status": "OPEN", "lineItems": { "edges": [ { "node": { "inventoryItemId": "gid://shopify/InventoryItem/43729076", "remainingQuantity": 1, "requiresShipping": true, "weight": { "unit": "GRAMS", "value": 1500.0 } } } ] } } } } ### Retrieves fulfillments associated with a fulfillment order Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query FulfillmentList($fulfillmentOrderId: ID!) { fulfillmentOrder(id: $fulfillmentOrderId) { fulfillments(first: 10) { edges { node { id fulfillmentLineItems(first: 10) { edges { node { id lineItem { title variant { id } } quantity originalTotalSet { shopMoney { amount currencyCode } } } } } status estimatedDeliveryAt service { handle } trackingInfo(first: 10) { company number url } originAddress { address1 address2 city countryCode provinceCode zip } } } } } }\",\n \"variables\": {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/158170091\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query FulfillmentList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n fulfillments(first: 10) {\n edges {\n node {\n id\n fulfillmentLineItems(first: 10) {\n edges {\n node {\n id\n lineItem {\n title\n variant {\n id\n }\n }\n quantity\n originalTotalSet {\n shopMoney {\n amount\n currencyCode\n }\n }\n }\n }\n }\n status\n estimatedDeliveryAt\n service {\n handle\n }\n trackingInfo(first: 10) {\n company\n number\n url\n }\n originAddress {\n address1\n address2\n city\n countryCode\n provinceCode\n zip\n }\n }\n }\n }\n }\n }`,\n \"variables\": {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/158170091\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query FulfillmentList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n fulfillments(first: 10) {\n edges {\n node {\n id\n fulfillmentLineItems(first: 10) {\n edges {\n node {\n id\n lineItem {\n title\n variant {\n id\n }\n }\n quantity\n originalTotalSet {\n shopMoney {\n amount\n currencyCode\n }\n }\n }\n }\n }\n status\n estimatedDeliveryAt\n service {\n handle\n }\n trackingInfo(first: 10) {\n company\n number\n url\n }\n originAddress {\n address1\n address2\n city\n countryCode\n provinceCode\n zip\n }\n }\n }\n }\n }\n }\nQUERY\n\nvariables = {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/158170091\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query FulfillmentList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n fulfillments(first: 10) {\n edges {\n node {\n id\n fulfillmentLineItems(first: 10) {\n edges {\n node {\n id\n lineItem {\n title\n variant {\n id\n }\n }\n quantity\n originalTotalSet {\n shopMoney {\n amount\n currencyCode\n }\n }\n }\n }\n }\n status\n estimatedDeliveryAt\n service {\n handle\n }\n trackingInfo(first: 10) {\n company\n number\n url\n }\n originAddress {\n address1\n address2\n city\n countryCode\n provinceCode\n zip\n }\n }\n }\n }\n }\n }`,\n {\n variables: {\n \"fulfillmentOrderId\": \"gid://shopify/FulfillmentOrder/158170091\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query FulfillmentList($fulfillmentOrderId: ID!) {\n fulfillmentOrder(id: $fulfillmentOrderId) {\n fulfillments(first: 10) {\n edges {\n node {\n id\n fulfillmentLineItems(first: 10) {\n edges {\n node {\n id\n lineItem {\n title\n variant {\n id\n }\n }\n quantity\n originalTotalSet {\n shopMoney {\n amount\n currencyCode\n }\n }\n }\n }\n }\n status\n estimatedDeliveryAt\n service {\n handle\n }\n trackingInfo(first: 10) {\n company\n number\n url\n }\n originAddress {\n address1\n address2\n city\n countryCode\n provinceCode\n zip\n }\n }\n }\n }\n }\n}" #### Graphql Input { "fulfillmentOrderId": "gid://shopify/FulfillmentOrder/158170091" } #### Graphql Response { "data": { "fulfillmentOrder": { "fulfillments": { "edges": [ { "node": { "id": "gid://shopify/Fulfillment/684880463", "fulfillmentLineItems": { "edges": [ { "node": { "id": "gid://shopify/FulfillmentLineItem/423076942", "lineItem": { "title": "Element", "variant": { "id": "gid://shopify/ProductVariant/214453824" } }, "quantity": 1, "originalTotalSet": { "shopMoney": { "amount": "10.0", "currencyCode": "USD" } } } } ] }, "status": "SUCCESS", "estimatedDeliveryAt": null, "service": { "handle": "manual" }, "trackingInfo": [ { "company": "UPS", "number": "1Z1234512345123456", "url": "https://www.ups.com/WebTracking?loc=en_US&requester=ST&trackNums=1Z1234512345123456" } ], "originAddress": null } } ] } } } }