Anchor to section titled 'undefined'

productVariantAppendMedia
mutation

Requires write_products access scope. Also: The user must have a permission to append media to variants.

Appends media from a product to variants of the product.


Anchor to productId
productId
required

Specifies the product associated to the media.

A list of pairs of variants and media to be attached to the variants.


Was this section helpful?

The product associated with the variants and media.

The product variants that were updated.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation productVariantAppendMedia($productId: ID!, $variantMedia: [ProductVariantAppendMediaInput!]!) {
  productVariantAppendMedia(productId: $productId, variantMedia: $variantMedia) {
    product {
      id
    }
  }
}
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 productVariantAppendMedia($productId: ID!, $variantMedia: [ProductVariantAppendMediaInput!]!) { productVariantAppendMedia(productId: $productId, variantMedia: $variantMedia) { product { id } } }",
 "variables": {
    "productId": "gid://shopify/Product/1072481072",
    "variantMedia": [
      {
        "mediaIds": [
          "gid://shopify/MediaImage/1072273216"
        ],
        "variantId": "gid://shopify/ProductVariant/1070325119"
      },
      {
        "mediaIds": [
          "gid://shopify/MediaImage/1072273217"
        ],
        "variantId": "gid://shopify/ProductVariant/1070325120"
      }
    ]
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation productVariantAppendMedia($productId: ID!, $variantMedia: [ProductVariantAppendMediaInput!]!) {
    productVariantAppendMedia(productId: $productId, variantMedia: $variantMedia) {
      product {
        id
      }
    }
  }`,
  {
    variables: {
      "productId": "gid://shopify/Product/1072481072",
      "variantMedia": [
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273216"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325119"
        },
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273217"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325120"
        }
      ]
    },
  },
);

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 productVariantAppendMedia($productId: ID!, $variantMedia: [ProductVariantAppendMediaInput!]!) {
    productVariantAppendMedia(productId: $productId, variantMedia: $variantMedia) {
      product {
        id
      }
    }
  }
QUERY

variables = {
  "productId": "gid://shopify/Product/1072481072",
  "variantMedia": [{"mediaIds"=>["gid://shopify/MediaImage/1072273216"], "variantId"=>"gid://shopify/ProductVariant/1070325119"}, {"mediaIds"=>["gid://shopify/MediaImage/1072273217"], "variantId"=>"gid://shopify/ProductVariant/1070325120"}]
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation productVariantAppendMedia($productId: ID!, $variantMedia: [ProductVariantAppendMediaInput!]!) {
      productVariantAppendMedia(productId: $productId, variantMedia: $variantMedia) {
        product {
          id
        }
      }
    }`,
    "variables": {
      "productId": "gid://shopify/Product/1072481072",
      "variantMedia": [
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273216"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325119"
        },
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273217"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325120"
        }
      ]
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation productVariantAppendMedia($productId: ID!, $variantMedia: [ProductVariantAppendMediaInput!]!) {
    productVariantAppendMedia(productId: $productId, variantMedia: $variantMedia) {
      product {
        id
      }
    }
  }
QUERY;

$variables = [
  "productId" => "gid://shopify/Product/1072481072",
  "variantMedia" => [{"mediaIds"=>["gid://shopify/MediaImage/1072273216"], "variantId"=>"gid://shopify/ProductVariant/1070325119"}, {"mediaIds"=>["gid://shopify/MediaImage/1072273217"], "variantId"=>"gid://shopify/ProductVariant/1070325120"}],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "productId": "gid://shopify/Product/1072481072",
  "variantMedia": [
    {
      "mediaIds": [
        "gid://shopify/MediaImage/1072273216"
      ],
      "variantId": "gid://shopify/ProductVariant/1070325119"
    },
    {
      "mediaIds": [
        "gid://shopify/MediaImage/1072273217"
      ],
      "variantId": "gid://shopify/ProductVariant/1070325120"
    }
  ]
}
Hide code
Response
JSON
{
  "productVariantAppendMedia": {
    "product": {
      "id": "gid://shopify/Product/1072481072"
    }
  }
}