orderUpdate
Requires access scope or
access scope. Also: The app must have the
access scope to assign events to another staff member.
Updates the attributes of an order, such as the customer's email, the shipping address for the order, tags, and metafields associated with the order.
If you need to make significant updates to an order, such as adding or removing line items, changing
quantities, or modifying discounts, then use
the
mutation instead. The
mutation initiates an order editing session,
allowing you to make multiple changes before finalizing them. Learn more about using the
mutation to edit existing orders.
Learn how to build apps that integrate with order management and fulfillment processes.
Arguments
- Anchor to inputinput•Order
Input! required The attributes of the updated order.
Anchor to OrderUpdatePayload returnsOrderUpdatePayload returns
- Anchor to orderorder•
The updated order.
- Anchor to userErrorsuser•
Errors [UserError!]! non-null The list of errors that occurred from executing the mutation.
- Create a new metafield and update another on an existing order
- Update an order
- orderUpdate reference
Examples
mutation updateOrderMetafields($input: OrderInput!) {
orderUpdate(input: $input) {
order {
id
metafields(first: 3) {
edges {
node {
id
namespace
key
value
}
}
}
}
userErrors {
message
field
}
}
}
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 updateOrderMetafields($input: OrderInput!) { orderUpdate(input: $input) { order { id metafields(first: 3) { edges { node { id namespace key value } } } } userErrors { message field } } }",
"variables": {
"input": {
"metafields": [
{
"namespace": "my_field",
"key": "delivery_instructions",
"type": "single_line_text_field",
"value": "leave on back porch"
},
{
"id": "gid://shopify/Metafield/1069228968",
"value": "123"
}
],
"id": "gid://shopify/Order/148977776"
}
}
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation updateOrderMetafields($input: OrderInput!) {
orderUpdate(input: $input) {
order {
id
metafields(first: 3) {
edges {
node {
id
namespace
key
value
}
}
}
}
userErrors {
message
field
}
}
}`,
{
variables: {
"input": {
"metafields": [
{
"namespace": "my_field",
"key": "delivery_instructions",
"type": "single_line_text_field",
"value": "leave on back porch"
},
{
"id": "gid://shopify/Metafield/1069228968",
"value": "123"
}
],
"id": "gid://shopify/Order/148977776"
}
},
},
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: {
"query": `mutation updateOrderMetafields($input: OrderInput!) {
orderUpdate(input: $input) {
order {
id
metafields(first: 3) {
edges {
node {
id
namespace
key
value
}
}
}
}
userErrors {
message
field
}
}
}`,
"variables": {
"input": {
"metafields": [
{
"namespace": "my_field",
"key": "delivery_instructions",
"type": "single_line_text_field",
"value": "leave on back porch"
},
{
"id": "gid://shopify/Metafield/1069228968",
"value": "123"
}
],
"id": "gid://shopify/Order/148977776"
}
},
},
});
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 updateOrderMetafields($input: OrderInput!) {
orderUpdate(input: $input) {
order {
id
metafields(first: 3) {
edges {
node {
id
namespace
key
value
}
}
}
}
userErrors {
message
field
}
}
}
QUERY
variables = {
"input": {
"metafields": [{"namespace"=>"my_field", "key"=>"delivery_instructions", "type"=>"single_line_text_field", "value"=>"leave on back porch"}, {"id"=>"gid://shopify/Metafield/1069228968", "value"=>"123"}],
"id": "gid://shopify/Order/148977776"
}
}
response = client.query(query: query, variables: variables)