Anchor to section titled 'undefined'

fulfillmentOrderClose
mutation

Requires write_assigned_fulfillment_orders access scope. Also: The user must have fulfill_and_ship_orders permission.

Marks an in-progress fulfillment order as incomplete, indicating the fulfillment service is unable to ship any remaining items and intends to close the fulfillment order.


Anchor to id
id
required

The ID of the fulfillment order to mark as incomplete.

An optional reason for marking the fulfillment order as incomplete.


Was this section helpful?

The fulfillment order that was marked as incomplete.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation fulfillmentOrderClose($id: ID!, $message: String) {
  fulfillmentOrderClose(id: $id, message: $message) {
    fulfillmentOrder {
      id
      status
      requestStatus
    }
    userErrors {
      field
      message
    }
  }
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation fulfillmentOrderClose($id: ID!, $message: String) { fulfillmentOrderClose(id: $id, message: $message) { fulfillmentOrder { id status requestStatus } userErrors { field message } } }",
 "variables": {
    "id": "gid://shopify/FulfillmentOrder/1046000803",
    "message": "Out of Stock"
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation fulfillmentOrderClose($id: ID!, $message: String) {
    fulfillmentOrderClose(id: $id, message: $message) {
      fulfillmentOrder {
        id
        status
        requestStatus
      }
      userErrors {
        field
        message
      }
    }
  }`,
  {
    variables: {
      "id": "gid://shopify/FulfillmentOrder/1046000803",
      "message": "Out of Stock"
    },
  },
);

const data = await response.json();
session = ShopifyAPI::Auth::Session.new(
  shop: "your-development-store.myshopify.com",
  access_token: access_token
)
client = ShopifyAPI::Clients::Graphql::Admin.new(
  session: session
)

query = <<~QUERY
  mutation fulfillmentOrderClose($id: ID!, $message: String) {
    fulfillmentOrderClose(id: $id, message: $message) {
      fulfillmentOrder {
        id
        status
        requestStatus
      }
      userErrors {
        field
        message
      }
    }
  }
QUERY

variables = {
  "id": "gid://shopify/FulfillmentOrder/1046000803",
  "message": "Out of Stock"
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation fulfillmentOrderClose($id: ID!, $message: String) {
      fulfillmentOrderClose(id: $id, message: $message) {
        fulfillmentOrder {
          id
          status
          requestStatus
        }
        userErrors {
          field
          message
        }
      }
    }`,
    "variables": {
      "id": "gid://shopify/FulfillmentOrder/1046000803",
      "message": "Out of Stock"
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation fulfillmentOrderClose($id: ID!, $message: String) {
    fulfillmentOrderClose(id: $id, message: $message) {
      fulfillmentOrder {
        id
        status
        requestStatus
      }
      userErrors {
        field
        message
      }
    }
  }
QUERY;

$variables = [
  "id" => "gid://shopify/FulfillmentOrder/1046000803",
  "message" => "Out of Stock",
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "id": "gid://shopify/FulfillmentOrder/1046000803",
  "message": "Out of Stock"
}
Hide code
Response
JSON
{
  "fulfillmentOrderClose": {
    "fulfillmentOrder": {
      "id": "gid://shopify/FulfillmentOrder/1046000803",
      "status": "INCOMPLETE",
      "requestStatus": "CLOSED"
    },
    "userErrors": []
  }
}