# fulfillmentOrderSubmitFulfillmentRequest - admin-graphql - MUTATION Version: 2024-07 ## Description Sends a fulfillment request to the fulfillment service of a fulfillment order. ### Access Scopes `write_third_party_fulfillment_orders` access scope. Also: The user must have fulfill_and_ship_orders permission. ## Arguments * [fulfillmentOrderLineItems](/docs/api/admin-graphql/2024-07/input-objects/FulfillmentOrderLineItemInput): FulfillmentOrderLineItemInput - The fulfillment order line items to be requested for fulfillment. If left blank, all line items of the fulfillment order are requested for fulfillment. * [id](/docs/api/admin-graphql/2024-07/scalars/ID): ID! - The ID of the fulfillment order associated with fulfillment request. * [message](/docs/api/admin-graphql/2024-07/scalars/String): String - An optional message for the fulfillment request. * [notifyCustomer](/docs/api/admin-graphql/2024-07/scalars/Boolean): Boolean - Whether the customer should be notified when fulfillments are created for this fulfillment order. * [shippingMethod](/docs/api/admin-graphql/2024-07/scalars/String): String - Shipping method associated with the fulfillment service provider. Applies only to Fulfill By Amazon fulfillment service. ## Returns * [originalFulfillmentOrder](/docs/api/admin-graphql/2024-07/objects/FulfillmentOrder): FulfillmentOrder The original fulfillment order intended to request fulfillment for. * [submittedFulfillmentOrder](/docs/api/admin-graphql/2024-07/objects/FulfillmentOrder): FulfillmentOrder The fulfillment order that was submitted to the fulfillment service. This will be the same as the original fulfillment order field. The exception to this is partial fulfillment requests or fulfillment request for cancelled or incomplete fulfillment orders. * [unsubmittedFulfillmentOrder](/docs/api/admin-graphql/2024-07/objects/FulfillmentOrder): FulfillmentOrder This field will only be present for partial fulfillment requests. This will represent the new fulfillment order with the remaining line items not submitted to the fulfillment service. * [userErrors](/docs/api/admin-graphql/2024-07/objects/UserError): UserError! The list of errors that occurred from executing the mutation. ## Examples ### Sends a fulfillment request Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-07/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!) { fulfillmentOrderSubmitFulfillmentRequest(id: $id) { originalFulfillmentOrder { id status requestStatus } submittedFulfillmentOrder { id status requestStatus } unsubmittedFulfillmentOrder { id status requestStatus } userErrors { field message } } }\",\n \"variables\": {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000784\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n }`,\n \"variables\": {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000784\"\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 mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n }\nQUERY\n\nvariables = {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000784\"\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 mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n }`,\n {\n variables: {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000784\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n}" #### Graphql Input { "id": "gid://shopify/FulfillmentOrder/1046000784" } #### Graphql Response { "data": { "fulfillmentOrderSubmitFulfillmentRequest": { "originalFulfillmentOrder": { "id": "gid://shopify/FulfillmentOrder/1046000784", "status": "OPEN", "requestStatus": "SUBMITTED" }, "submittedFulfillmentOrder": { "id": "gid://shopify/FulfillmentOrder/1046000784", "status": "OPEN", "requestStatus": "SUBMITTED" }, "unsubmittedFulfillmentOrder": null, "userErrors": [] } } } ### Split a fulfillment order into a partial fulfillment request Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-07/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!, $fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!]) { fulfillmentOrderSubmitFulfillmentRequest(id: $id, fulfillmentOrderLineItems: $fulfillmentOrderLineItems) { originalFulfillmentOrder { id status requestStatus } submittedFulfillmentOrder { id status requestStatus } unsubmittedFulfillmentOrder { id status requestStatus } userErrors { field message } } }\",\n \"variables\": {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000782\",\n \"fulfillmentOrderLineItems\": [\n {\n \"id\": \"gid://shopify/FulfillmentOrderLineItem/1072503280\",\n \"quantity\": 1\n }\n ]\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!, $fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!]) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id, fulfillmentOrderLineItems: $fulfillmentOrderLineItems) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n }`,\n \"variables\": {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000782\",\n \"fulfillmentOrderLineItems\": [\n {\n \"id\": \"gid://shopify/FulfillmentOrderLineItem/1072503280\",\n \"quantity\": 1\n }\n ]\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 mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!, $fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!]) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id, fulfillmentOrderLineItems: $fulfillmentOrderLineItems) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n }\nQUERY\n\nvariables = {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000782\",\n \"fulfillmentOrderLineItems\": [{\"id\"=>\"gid://shopify/FulfillmentOrderLineItem/1072503280\", \"quantity\"=>1}]\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 mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!, $fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!]) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id, fulfillmentOrderLineItems: $fulfillmentOrderLineItems) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n }`,\n {\n variables: {\n \"id\": \"gid://shopify/FulfillmentOrder/1046000782\",\n \"fulfillmentOrderLineItems\": [\n {\n \"id\": \"gid://shopify/FulfillmentOrderLineItem/1072503280\",\n \"quantity\": 1\n }\n ]\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "mutation fulfillmentOrderSubmitFulfillmentRequest($id: ID!, $fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!]) {\n fulfillmentOrderSubmitFulfillmentRequest(id: $id, fulfillmentOrderLineItems: $fulfillmentOrderLineItems) {\n originalFulfillmentOrder {\n id\n status\n requestStatus\n }\n submittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n unsubmittedFulfillmentOrder {\n id\n status\n requestStatus\n }\n userErrors {\n field\n message\n }\n }\n}" #### Graphql Input { "id": "gid://shopify/FulfillmentOrder/1046000782", "fulfillmentOrderLineItems": [ { "id": "gid://shopify/FulfillmentOrderLineItem/1072503280", "quantity": 1 } ] } #### Graphql Response { "data": { "fulfillmentOrderSubmitFulfillmentRequest": { "originalFulfillmentOrder": { "id": "gid://shopify/FulfillmentOrder/1046000782", "status": "OPEN", "requestStatus": "SUBMITTED" }, "submittedFulfillmentOrder": { "id": "gid://shopify/FulfillmentOrder/1046000782", "status": "OPEN", "requestStatus": "SUBMITTED" }, "unsubmittedFulfillmentOrder": { "id": "gid://shopify/FulfillmentOrder/1046000783", "status": "OPEN", "requestStatus": "UNSUBMITTED" }, "userErrors": [] } } }