Anchor to section titled 'undefined'

fulfillmentOrderHold
mutation

Requires write_merchant_managed_fulfillment_orders access scope or write_third_party_fulfillment_orders access scope. Also: The user must have fulfill_and_ship_orders permission.

Applies a fulfillment hold on an open fulfillment order.


The details of the fulfillment hold applied on the fulfillment order.

Anchor to id
id
required

The ID of the fulfillment order on which a fulfillment hold is applied.


Was this section helpful?

The fulfillment order on which a fulfillment hold was applied.

The remaining fulfillment order containing the line items to which the hold wasn't applied, if specific line items were specified to be placed on hold.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation fulfillmentOrderHold($fulfillmentHold: FulfillmentOrderHoldInput!, $id: ID!) {
  fulfillmentOrderHold(fulfillmentHold: $fulfillmentHold, id: $id) {
    fulfillmentOrder {
      id
      status
      requestStatus
      fulfillmentHolds {
        reason
        reasonNotes
      }
    }
    userErrors {
      field
      message
    }
  }
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2024-07/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation fulfillmentOrderHold($fulfillmentHold: FulfillmentOrderHoldInput!, $id: ID!) { fulfillmentOrderHold(fulfillmentHold: $fulfillmentHold, id: $id) { fulfillmentOrder { id status requestStatus fulfillmentHolds { reason reasonNotes } } userErrors { field message } } }",
 "variables": {
    "fulfillmentHold": {
      "notifyMerchant": true,
      "reason": "INVENTORY_OUT_OF_STOCK",
      "reasonNotes": "Waiting on new shipment"
    },
    "id": "gid://shopify/FulfillmentOrder/1046000777"
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation fulfillmentOrderHold($fulfillmentHold: FulfillmentOrderHoldInput!, $id: ID!) {
    fulfillmentOrderHold(fulfillmentHold: $fulfillmentHold, id: $id) {
      fulfillmentOrder {
        id
        status
        requestStatus
        fulfillmentHolds {
          reason
          reasonNotes
        }
      }
      userErrors {
        field
        message
      }
    }
  }`,
  {
    variables: {
      "fulfillmentHold": {
        "notifyMerchant": true,
        "reason": "INVENTORY_OUT_OF_STOCK",
        "reasonNotes": "Waiting on new shipment"
      },
      "id": "gid://shopify/FulfillmentOrder/1046000777"
    },
  },
);

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 fulfillmentOrderHold($fulfillmentHold: FulfillmentOrderHoldInput!, $id: ID!) {
    fulfillmentOrderHold(fulfillmentHold: $fulfillmentHold, id: $id) {
      fulfillmentOrder {
        id
        status
        requestStatus
        fulfillmentHolds {
          reason
          reasonNotes
        }
      }
      userErrors {
        field
        message
      }
    }
  }
QUERY

variables = {
  "fulfillmentHold": {
    "notifyMerchant": true,
    "reason": "INVENTORY_OUT_OF_STOCK",
    "reasonNotes": "Waiting on new shipment"
  },
  "id": "gid://shopify/FulfillmentOrder/1046000777"
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation fulfillmentOrderHold($fulfillmentHold: FulfillmentOrderHoldInput!, $id: ID!) {
      fulfillmentOrderHold(fulfillmentHold: $fulfillmentHold, id: $id) {
        fulfillmentOrder {
          id
          status
          requestStatus
          fulfillmentHolds {
            reason
            reasonNotes
          }
        }
        userErrors {
          field
          message
        }
      }
    }`,
    "variables": {
      "fulfillmentHold": {
        "notifyMerchant": true,
        "reason": "INVENTORY_OUT_OF_STOCK",
        "reasonNotes": "Waiting on new shipment"
      },
      "id": "gid://shopify/FulfillmentOrder/1046000777"
    },
  },
});
use Shopify\Clients\Graphql;

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

$variables = [
  "fulfillmentHold" => [
    "notifyMerchant" => true,
    "reason" => "INVENTORY_OUT_OF_STOCK",
    "reasonNotes" => "Waiting on new shipment",
  ],
  "id" => "gid://shopify/FulfillmentOrder/1046000777",
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "fulfillmentHold": {
    "notifyMerchant": true,
    "reason": "INVENTORY_OUT_OF_STOCK",
    "reasonNotes": "Waiting on new shipment"
  },
  "id": "gid://shopify/FulfillmentOrder/1046000777"
}
Hide code
Response
JSON
{
  "fulfillmentOrderHold": {
    "fulfillmentOrder": {
      "id": "gid://shopify/FulfillmentOrder/1046000777",
      "status": "ON_HOLD",
      "requestStatus": "UNSUBMITTED",
      "fulfillmentHolds": [
        {
          "reason": "INVENTORY_OUT_OF_STOCK",
          "reasonNotes": "Waiting on new shipment"
        }
      ]
    },
    "userErrors": []
  }
}