Manage media for product variants
You can use the GraphQL Admin API to add a media object of type IMAGE
to a product's variants. For example, you can create a product, a product variant, and media object, and attach a media object to the product variant in a single step. You can also associate the product's media to its variants.
This guide shows how to manage media on product variants using the GraphQL Admin API.
Requirements
Anchor link to section titled "Requirements"- Your app can make authenticated requests to the GraphQL Admin API.
- Your app has the
read_products
andwrite_products
access scopes. Learn how to configure your access scopes using Shopify CLI. - You've created products and product variants in your development store.
Step 1: Query a product and display its variants
Anchor link to section titled "Step 1: Query a product and display its variants"The following query returns information about any image media objects that are attached to the variants of a product:
Step 2: Create a product and associate media to its variant
Anchor link to section titled "Step 2: Create a product and associate media to its variant"When you create a new product using the productCreate
mutation, you can include the mediaSrc
attribute to specify the URL of the media to associate with the variant. This field matches one of the media originalSource
fields that you created on the product.
When you create the variant options, make sure that you include the options
values. These values must match the options that were set up on the product. For example, if the product has the variant options [“Color”, “Size”]
, then each variant should have a color and a size option, like [“Red”, “M”]
.
Step 3: Attach media to an existing product variant
Anchor link to section titled "Step 3: Attach media to an existing product variant"To attach a media object to an existing product variant, you must do the following:
- Create the media on the product using the
productCreateMedia
mutation. - If the product doesn't have variants, then you must create at least one variant on the product.
Refer to the productCreate
, productUpdate
, or productVariantCreate
mutations for more information.
When you have a product with a media object and variants, you can use the productVariantAppendMedia
mutation to associate the media id
to one or more variant id
s, as shown in the following example mutation:
Step 4: Remove media from a variant
Anchor link to section titled "Step 4: Remove media from a variant"To detach media from a variant, you can use the productVariantDetachMedia
mutation.
After you use the mutation, the media won't be associated with the variant anymore, but the media will still be associated with the product. You can use the productDeleteMedia
mutation to remove the media from the product as well.
The following example demonstrates how to use the productVariantDetachMedia
mutation to disassociate a media object from a product variant.
- Learn how to manage product media by using the GraphQL Admin API.
- Use Liquid to add product media to a store's theme.