Anchor to productDeleteMediaproduct
productDeleteMedia
mutationDeprecated
Requires access scope. Also: The user must have a permission to delete media from a product.
Deletes media for a product. Use instead.
Anchor to Arguments
Arguments
- Anchor to mediaIdsmedia•
Ids [ID!]!required The media IDs to be deleted.
- Anchor to productIdproduct•
Id ID!required Specifies the product ID from which the media will be deleted.
Was this section helpful?
Anchor to ProductDeleteMediaPayload returnsProductDeleteMediaPayload returns
- Anchor to deletedMediaIdsdeleted•
Media Ids List of media IDs which were deleted.
- Anchor to deletedProductImageIdsdeleted•
Product Image Ids List of product image IDs which were deleted.
- Anchor to mediaUserErrorsmedia•
User Errors [MediaUser non-nullError!]! The list of errors that occurred from executing the mutation.
- Anchor to productproduct•
The product associated with the deleted media.
- Anchor to userErrorsuser•
Errors The list of errors that occurred from executing the mutation.
Was this section helpful?
- Delete existing and non-existing media from a product
- Delete media from a non-existent product
- Delete media from an existing product
- Delete non-existing media from an existing product
- Remove an existing Product Image
- productDeleteMedia reference
Examples
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation productDeleteMedia($mediaIds: [ID!]!, $productId: ID!) {
productDeleteMedia(mediaIds: $mediaIds, productId: $productId) {
deletedMediaIds
deletedProductImageIds
mediaUserErrors {
field
message
}
product {
id
title
media(first: 5) {
nodes {
alt
mediaContentType
status
}
}
}
}
}`,
{
variables: {
"mediaIds": [
"gid://shopify/Video/-1",
mutation productDeleteMedia($mediaIds: [ID!]!, $productId: ID!) {
productDeleteMedia(mediaIds: $mediaIds, productId: $productId) {
deletedMediaIds
deletedProductImageIds
mediaUserErrors {
field
message
}
product {
id
title
media(first: 5) {
nodes {
alt
mediaContentType
status
}
}
}
}
}
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 productDeleteMedia($mediaIds: [ID!]!, $productId: ID!) { productDeleteMedia(mediaIds: $mediaIds, productId: $productId) { deletedMediaIds deletedProductImageIds mediaUserErrors { field message } product { id title media(first: 5) { nodes { alt mediaContentType status } } } } }",
"variables": {
"mediaIds": [
"gid://shopify/Video/-1",
"gid://shopify/Video/723685877"
],
"productId": "gid://shopify/Product/108828309"
}
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation productDeleteMedia($mediaIds: [ID!]!, $productId: ID!) {
productDeleteMedia(mediaIds: $mediaIds, productId: $productId) {
deletedMediaIds
deletedProductImageIds
mediaUserErrors {
field
message
}
product {
id
title
media(first: 5) {
nodes {
alt
mediaContentType
status
}
}
}
}
}`,
{
variables: {
"mediaIds": [
"gid://shopify/Video/-1",
"gid://shopify/Video/723685877"
],
"productId": "gid://shopify/Product/108828309"
},
},
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: {
"query": `mutation productDeleteMedia($mediaIds: [ID!]!, $productId: ID!) {
productDeleteMedia(mediaIds: $mediaIds, productId: $productId) {
deletedMediaIds
deletedProductImageIds
mediaUserErrors {
field
message
}
product {
id
title
media(first: 5) {
nodes {
alt
mediaContentType
status
}
}
}
}
}`,
"variables": {
"mediaIds": [
"gid://shopify/Video/-1",
"gid://shopify/Video/723685877"
],
"productId": "gid://shopify/Product/108828309"
},
},
});
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 productDeleteMedia($mediaIds: [ID!]!, $productId: ID!) {
productDeleteMedia(mediaIds: $mediaIds, productId: $productId) {
deletedMediaIds
deletedProductImageIds
mediaUserErrors {
field
message
}
product {
id
title
media(first: 5) {
nodes {
alt
mediaContentType
status
}
}
}
}
}
QUERY
variables = {
"mediaIds": ["gid://shopify/Video/-1", "gid://shopify/Video/723685877"],
"productId": "gid://shopify/Product/108828309"
}
response = client.query(query: query, variables: variables)
Input variables
JSON{
"mediaIds": [
"gid://shopify/Video/-1",
"gid://shopify/Video/723685877"
],
"productId": "gid://shopify/Product/108828309"
}
Response
JSON{
"productDeleteMedia": {
"deletedMediaIds": null,
"deletedProductImageIds": null,
"mediaUserErrors": [
{
"field": [
"mediaIds"
],
"message": "Media id gid://shopify/Video/-1 does not exist"
}
],
"product": {
"id": "gid://shopify/Product/108828309",
"title": "Draft",
"media": {
"nodes": [
{
"alt": "This is a video",
"mediaContentType": "EXTERNAL_VIDEO",
"status": "READY"
},
{
"alt": "This is a video",
"mediaContentType": "VIDEO",
"status": "READY"