Anchor to section titled 'undefined'

productOptionsDelete
mutation

Requires write_products access scope. Also: The user must have a permission to edit products and delete product variants.

Deletes the specified options.


IDs of the options to delete from the product.

Anchor to productId
productId
required

ID of the product from which to delete the options.

The strategy defines which behavior the mutation should observe,such as how to handle a situation where deleting an option would result in duplicate variants.


Was this section helpful?

IDs of the options deleted.

The updated product object.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
DescriptionCopy
mutation deleteOptions($productId: ID!, $options: [ID!]!, $strategy: ProductOptionDeleteStrategy) {
  productOptionsDelete(productId: $productId, options: $options, strategy: $strategy) {
    userErrors {
      field
      message
      code
    }
    deletedOptionsIds
    product {
      id
      options {
        id
        name
        values
        position
        optionValues {
          id
          name
          hasVariants
        }
      }
    }
  }
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/unstable/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation deleteOptions($productId: ID!, $options: [ID!]!, $strategy: ProductOptionDeleteStrategy) { productOptionsDelete(productId: $productId, options: $options, strategy: $strategy) { userErrors { field message code } deletedOptionsIds product { id options { id name values position optionValues { id name hasVariants } } } } }",
 "variables": {
    "productId": "gid://shopify/Product/20995642",
    "options": [
      "gid://shopify/ProductOption/1064576514"
    ]
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation deleteOptions($productId: ID!, $options: [ID!]!, $strategy: ProductOptionDeleteStrategy) {
    productOptionsDelete(productId: $productId, options: $options, strategy: $strategy) {
      userErrors {
        field
        message
        code
      }
      deletedOptionsIds
      product {
        id
        options {
          id
          name
          values
          position
          optionValues {
            id
            name
            hasVariants
          }
        }
      }
    }
  }`,
  {
    variables: {
      "productId": "gid://shopify/Product/20995642",
      "options": [
        "gid://shopify/ProductOption/1064576514"
      ]
    },
  },
);

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 deleteOptions($productId: ID!, $options: [ID!]!, $strategy: ProductOptionDeleteStrategy) {
    productOptionsDelete(productId: $productId, options: $options, strategy: $strategy) {
      userErrors {
        field
        message
        code
      }
      deletedOptionsIds
      product {
        id
        options {
          id
          name
          values
          position
          optionValues {
            id
            name
            hasVariants
          }
        }
      }
    }
  }
QUERY

variables = {
  "productId": "gid://shopify/Product/20995642",
  "options": ["gid://shopify/ProductOption/1064576514"]
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation deleteOptions($productId: ID!, $options: [ID!]!, $strategy: ProductOptionDeleteStrategy) {
      productOptionsDelete(productId: $productId, options: $options, strategy: $strategy) {
        userErrors {
          field
          message
          code
        }
        deletedOptionsIds
        product {
          id
          options {
            id
            name
            values
            position
            optionValues {
              id
              name
              hasVariants
            }
          }
        }
      }
    }`,
    "variables": {
      "productId": "gid://shopify/Product/20995642",
      "options": [
        "gid://shopify/ProductOption/1064576514"
      ]
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation deleteOptions($productId: ID!, $options: [ID!]!, $strategy: ProductOptionDeleteStrategy) {
    productOptionsDelete(productId: $productId, options: $options, strategy: $strategy) {
      userErrors {
        field
        message
        code
      }
      deletedOptionsIds
      product {
        id
        options {
          id
          name
          values
          position
          optionValues {
            id
            name
            hasVariants
          }
        }
      }
    }
  }
QUERY;

$variables = [
  "productId" => "gid://shopify/Product/20995642",
  "options" => ["gid://shopify/ProductOption/1064576514"],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "productId": "gid://shopify/Product/20995642",
  "options": [
    "gid://shopify/ProductOption/1064576514"
  ]
}
Hide code
Response
JSON
{
  "productOptionsDelete": {
    "userErrors": [],
    "deletedOptionsIds": [
      "gid://shopify/ProductOption/1064576514"
    ],
    "product": {
      "id": "gid://shopify/Product/20995642",
      "options": [
        {
          "id": "gid://shopify/ProductOption/328272167",
          "name": "Title",
          "values": [
            "151cm",
            "155cm",
            "158cm"
          ],
          "position": 1,
          "optionValues": [
            {
              "id": "gid://shopify/ProductOptionValue/141051426",
              "name": "151cm",
              "hasVariants": true
            },
            {
              "id": "gid://shopify/ProductOptionValue/258076414",
              "name": "155cm",
              "hasVariants": true
            },
            {
              "id": "gid://shopify/ProductOptionValue/129596849",
              "name": "158cm",
              "hasVariants": true
            }
          ]
        }
      ]
    }
  }
}