Anchor to section titled 'undefined'

productVariantDelete
mutation
deprecated

Requires write_products access scope. Also: The user must have a permission to delete a product variant.

Deletes a product variant. Use productVariantsBulkDelete instead.


Anchor to id
id
required

The ID of the product variant to be deleted.


Was this section helpful?

The ID of the deleted product variant.

The product associated with the deleted product variant.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
Copy
mutation productVariantDelete($id: ID!) {
  productVariantDelete(id: $id) {
    deletedProductVariantId
    product {
      id
      title
    }
    userErrors {
      field
      message
    }
  }
}
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 productVariantDelete($id: ID!) { productVariantDelete(id: $id) { deletedProductVariantId product { id title } userErrors { field message } } }",
 "variables": {
    "id": "gid://shopify/ProductVariant/43729076"
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation productVariantDelete($id: ID!) {
    productVariantDelete(id: $id) {
      deletedProductVariantId
      product {
        id
        title
      }
      userErrors {
        field
        message
      }
    }
  }`,
  {
    variables: {
      "id": "gid://shopify/ProductVariant/43729076"
    },
  },
);

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 productVariantDelete($id: ID!) {
    productVariantDelete(id: $id) {
      deletedProductVariantId
      product {
        id
        title
      }
      userErrors {
        field
        message
      }
    }
  }
QUERY

variables = {
  "id": "gid://shopify/ProductVariant/43729076"
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation productVariantDelete($id: ID!) {
      productVariantDelete(id: $id) {
        deletedProductVariantId
        product {
          id
          title
        }
        userErrors {
          field
          message
        }
      }
    }`,
    "variables": {
      "id": "gid://shopify/ProductVariant/43729076"
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation productVariantDelete($id: ID!) {
    productVariantDelete(id: $id) {
      deletedProductVariantId
      product {
        id
        title
      }
      userErrors {
        field
        message
      }
    }
  }
QUERY;

$variables = [
  "id" => "gid://shopify/ProductVariant/43729076",
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "id": "gid://shopify/ProductVariant/43729076"
}
Hide code
Response
JSON
{
  "productVariantDelete": {
    "deletedProductVariantId": "gid://shopify/ProductVariant/43729076",
    "product": {
      "id": "gid://shopify/Product/108828309",
      "title": "Draft"
    },
    "userErrors": []
  }
}