Anchor to section titled 'undefined'

productVariantDetachMedia
mutation

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

Detaches media from product variants.


Anchor to productId
productId
required

Specifies the product to which the variants and media are associated.

A list of pairs of variants and media to be deleted from 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 productVariantDetachMedia($productId: ID!, $variantMedia: [ProductVariantDetachMediaInput!]!) {
  productVariantDetachMedia(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 productVariantDetachMedia($productId: ID!, $variantMedia: [ProductVariantDetachMediaInput!]!) { productVariantDetachMedia(productId: $productId, variantMedia: $variantMedia) { product { id } } }",
 "variables": {
    "productId": "gid://shopify/Product/1072481079",
    "variantMedia": [
      {
        "mediaIds": [
          "gid://shopify/MediaImage/1072273220"
        ],
        "variantId": "gid://shopify/ProductVariant/1070325128"
      },
      {
        "mediaIds": [
          "gid://shopify/MediaImage/1072273221"
        ],
        "variantId": "gid://shopify/ProductVariant/1070325129"
      }
    ]
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation productVariantDetachMedia($productId: ID!, $variantMedia: [ProductVariantDetachMediaInput!]!) {
    productVariantDetachMedia(productId: $productId, variantMedia: $variantMedia) {
      product {
        id
      }
    }
  }`,
  {
    variables: {
      "productId": "gid://shopify/Product/1072481079",
      "variantMedia": [
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273220"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325128"
        },
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273221"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325129"
        }
      ]
    },
  },
);

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

variables = {
  "productId": "gid://shopify/Product/1072481079",
  "variantMedia": [{"mediaIds"=>["gid://shopify/MediaImage/1072273220"], "variantId"=>"gid://shopify/ProductVariant/1070325128"}, {"mediaIds"=>["gid://shopify/MediaImage/1072273221"], "variantId"=>"gid://shopify/ProductVariant/1070325129"}]
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation productVariantDetachMedia($productId: ID!, $variantMedia: [ProductVariantDetachMediaInput!]!) {
      productVariantDetachMedia(productId: $productId, variantMedia: $variantMedia) {
        product {
          id
        }
      }
    }`,
    "variables": {
      "productId": "gid://shopify/Product/1072481079",
      "variantMedia": [
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273220"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325128"
        },
        {
          "mediaIds": [
            "gid://shopify/MediaImage/1072273221"
          ],
          "variantId": "gid://shopify/ProductVariant/1070325129"
        }
      ]
    },
  },
});
use Shopify\Clients\Graphql;

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

$variables = [
  "productId" => "gid://shopify/Product/1072481079",
  "variantMedia" => [{"mediaIds"=>["gid://shopify/MediaImage/1072273220"], "variantId"=>"gid://shopify/ProductVariant/1070325128"}, {"mediaIds"=>["gid://shopify/MediaImage/1072273221"], "variantId"=>"gid://shopify/ProductVariant/1070325129"}],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "productId": "gid://shopify/Product/1072481079",
  "variantMedia": [
    {
      "mediaIds": [
        "gid://shopify/MediaImage/1072273220"
      ],
      "variantId": "gid://shopify/ProductVariant/1070325128"
    },
    {
      "mediaIds": [
        "gid://shopify/MediaImage/1072273221"
      ],
      "variantId": "gid://shopify/ProductVariant/1070325129"
    }
  ]
}
Hide code
Response
JSON
{
  "productVariantDetachMedia": {
    "product": {
      "id": "gid://shopify/Product/1072481079"
    }
  }
}