Anchor to section titled 'undefined'

productVariantUpdate
mutation
deprecated

Requires write_products access scope. Also: The user must have a permission to update a product variant.

Updates a product variant. Use productVariantsBulkUpdate instead.


The updated properties for the product variant.


Was this section helpful?

The product associated with the variant.

The updated variant.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation updateProductVariantMetafields($input: ProductVariantInput!) {
  productVariantUpdate(input: $input) {
    productVariant {
      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 updateProductVariantMetafields($input: ProductVariantInput!) { productVariantUpdate(input: $input) { productVariant { id metafields(first: 3) { edges { node { id namespace key value } } } } userErrors { message field } } }",
 "variables": {
    "input": {
      "metafields": [
        {
          "namespace": "my_field",
          "key": "liner_material",
          "type": "single_line_text_field",
          "value": "Synthetic Leather"
        },
        {
          "id": "gid://shopify/Metafield/1069228993",
          "value": "Rubber"
        }
      ],
      "id": "gid://shopify/ProductVariant/43729076"
    }
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation updateProductVariantMetafields($input: ProductVariantInput!) {
    productVariantUpdate(input: $input) {
      productVariant {
        id
        metafields(first: 3) {
          edges {
            node {
              id
              namespace
              key
              value
            }
          }
        }
      }
      userErrors {
        message
        field
      }
    }
  }`,
  {
    variables: {
      "input": {
        "metafields": [
          {
            "namespace": "my_field",
            "key": "liner_material",
            "type": "single_line_text_field",
            "value": "Synthetic Leather"
          },
          {
            "id": "gid://shopify/Metafield/1069228993",
            "value": "Rubber"
          }
        ],
        "id": "gid://shopify/ProductVariant/43729076"
      }
    },
  },
);

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 updateProductVariantMetafields($input: ProductVariantInput!) {
    productVariantUpdate(input: $input) {
      productVariant {
        id
        metafields(first: 3) {
          edges {
            node {
              id
              namespace
              key
              value
            }
          }
        }
      }
      userErrors {
        message
        field
      }
    }
  }
QUERY

variables = {
  "input": {
    "metafields": [{"namespace"=>"my_field", "key"=>"liner_material", "type"=>"single_line_text_field", "value"=>"Synthetic Leather"}, {"id"=>"gid://shopify/Metafield/1069228993", "value"=>"Rubber"}],
    "id": "gid://shopify/ProductVariant/43729076"
  }
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation updateProductVariantMetafields($input: ProductVariantInput!) {
      productVariantUpdate(input: $input) {
        productVariant {
          id
          metafields(first: 3) {
            edges {
              node {
                id
                namespace
                key
                value
              }
            }
          }
        }
        userErrors {
          message
          field
        }
      }
    }`,
    "variables": {
      "input": {
        "metafields": [
          {
            "namespace": "my_field",
            "key": "liner_material",
            "type": "single_line_text_field",
            "value": "Synthetic Leather"
          },
          {
            "id": "gid://shopify/Metafield/1069228993",
            "value": "Rubber"
          }
        ],
        "id": "gid://shopify/ProductVariant/43729076"
      }
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation updateProductVariantMetafields($input: ProductVariantInput!) {
    productVariantUpdate(input: $input) {
      productVariant {
        id
        metafields(first: 3) {
          edges {
            node {
              id
              namespace
              key
              value
            }
          }
        }
      }
      userErrors {
        message
        field
      }
    }
  }
QUERY;

$variables = [
  "input" => [
    "metafields" => [{"namespace"=>"my_field", "key"=>"liner_material", "type"=>"single_line_text_field", "value"=>"Synthetic Leather"}, {"id"=>"gid://shopify/Metafield/1069228993", "value"=>"Rubber"}],
    "id" => "gid://shopify/ProductVariant/43729076",
  ],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "input": {
    "metafields": [
      {
        "namespace": "my_field",
        "key": "liner_material",
        "type": "single_line_text_field",
        "value": "Synthetic Leather"
      },
      {
        "id": "gid://shopify/Metafield/1069228993",
        "value": "Rubber"
      }
    ],
    "id": "gid://shopify/ProductVariant/43729076"
  }
}
Hide code
Response
JSON
{
  "productVariantUpdate": {
    "productVariant": {
      "id": "gid://shopify/ProductVariant/43729076",
      "metafields": {
        "edges": [
          {
            "node": {
              "id": "gid://shopify/Metafield/1069228993",
              "namespace": "my_fields",
              "key": "sole_material",
              "value": "Rubber"
            }
          },
          {
            "node": {
              "id": "gid://shopify/Metafield/1069228994",
              "namespace": "my_field",
              "key": "liner_material",
              "value": "Synthetic Leather"
            }
          }
        ]
      }
    },
    "userErrors": []
  }
}