product Variant Relationship Bulk Updatemutation
mutation
2025-01release candidate
Requires
write_products
access scope. Also: The shop must have access to bundles feature.
Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles.
Arguments
The input options for the product variant being updated.
Was this section helpful?
ProductVariantRelationshipBulkUpdatePayload returns
The product variants with successfully updated product variant relationships.
The list of errors that occurred from executing the mutation.
Was this section helpful?
Examples
Hide code
DescriptionCopy
mutation CreateBundle($input: [ProductVariantRelationshipUpdateInput!]!) { productVariantRelationshipBulkUpdate(input: $input) { parentProductVariants { id productVariantComponents(first: 10) { nodes { id productVariant { id displayName } } } } userErrors { code field message } } }
curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation CreateBundle($input: [ProductVariantRelationshipUpdateInput!]!) { productVariantRelationshipBulkUpdate(input: $input) { parentProductVariants { id productVariantComponents(first: 10) { nodes { id productVariant { id displayName } } } } userErrors { code field message } } }", "variables": { "input": [ { "parentProductVariantId": "gid://shopify/ProductVariant/799757249", "productVariantRelationshipsToCreate": [ { "id": "gid://shopify/ProductVariant/149896808", "quantity": 1 }, { "id": "gid://shopify/ProductVariant/709406719", "quantity": 1 } ] } ] } }'
const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation CreateBundle($input: [ProductVariantRelationshipUpdateInput!]!) { productVariantRelationshipBulkUpdate(input: $input) { parentProductVariants { id productVariantComponents(first: 10) { nodes { id productVariant { id displayName } } } } userErrors { code field message } } }`, { variables: { "input": [ { "parentProductVariantId": "gid://shopify/ProductVariant/799757249", "productVariantRelationshipsToCreate": [ { "id": "gid://shopify/ProductVariant/149896808", "quantity": 1 }, { "id": "gid://shopify/ProductVariant/709406719", "quantity": 1 } ] } ] }, }, ); 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 CreateBundle($input: [ProductVariantRelationshipUpdateInput!]!) { productVariantRelationshipBulkUpdate(input: $input) { parentProductVariants { id productVariantComponents(first: 10) { nodes { id productVariant { id displayName } } } } userErrors { code field message } } } QUERY variables = { "input": [{"parentProductVariantId"=>"gid://shopify/ProductVariant/799757249", "productVariantRelationshipsToCreate"=>[{"id"=>"gid://shopify/ProductVariant/149896808", "quantity"=>1}, {"id"=>"gid://shopify/ProductVariant/709406719", "quantity"=>1}]}] } response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: { "query": `mutation CreateBundle($input: [ProductVariantRelationshipUpdateInput!]!) { productVariantRelationshipBulkUpdate(input: $input) { parentProductVariants { id productVariantComponents(first: 10) { nodes { id productVariant { id displayName } } } } userErrors { code field message } } }`, "variables": { "input": [ { "parentProductVariantId": "gid://shopify/ProductVariant/799757249", "productVariantRelationshipsToCreate": [ { "id": "gid://shopify/ProductVariant/149896808", "quantity": 1 }, { "id": "gid://shopify/ProductVariant/709406719", "quantity": 1 } ] } ] }, }, });
use Shopify\Clients\Graphql; $client = new Graphql("your-development-store.myshopify.com", $accessToken); $query = <<<QUERY mutation CreateBundle($input: [ProductVariantRelationshipUpdateInput!]!) { productVariantRelationshipBulkUpdate(input: $input) { parentProductVariants { id productVariantComponents(first: 10) { nodes { id productVariant { id displayName } } } } userErrors { code field message } } } QUERY; $variables = [ "input" => [{"parentProductVariantId"=>"gid://shopify/ProductVariant/799757249", "productVariantRelationshipsToCreate"=>[{"id"=>"gid://shopify/ProductVariant/149896808", "quantity"=>1}, {"id"=>"gid://shopify/ProductVariant/709406719", "quantity"=>1}]}], ]; $response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{ "input": [ { "parentProductVariantId": "gid://shopify/ProductVariant/799757249", "productVariantRelationshipsToCreate": [ { "id": "gid://shopify/ProductVariant/149896808", "quantity": 1 }, { "id": "gid://shopify/ProductVariant/709406719", "quantity": 1 } ] } ] }
Hide code
Response
JSON
{ "productVariantRelationshipBulkUpdate": { "parentProductVariants": [ { "id": "gid://shopify/ProductVariant/799757249", "productVariantComponents": { "nodes": [ { "id": "gid://shopify/ProductVariantComponent/993184086", "productVariant": { "id": "gid://shopify/ProductVariant/149896808", "displayName": "Composite_Sauce_Pack - component_product_variant_classic_hot_sauce" } }, { "id": "gid://shopify/ProductVariantComponent/993184087", "productVariant": { "id": "gid://shopify/ProductVariant/709406719", "displayName": "Composite_Sauce_Pack - component_product_variant_classic_garlic_sauce" } } ] } } ], "userErrors": [] } }