productUpdate doesn't exist on type mutation

I’ve tried all variations and double checked numerous times.
The below call on the API v 2024-10 and 2025-01 gives the same error:
“Field ‘productUpdate’ doesn’t exist on type ‘Mutation’”

POST https://.myshopify.com/api/2025-01/graphql.json
X-Shopify-Storefront-Access-Token: ???
Content-Type: application/json

{
“query”: “mutation UpdateProductDescription($input: ProductInput!) { productUpdate(input: $input) { product { id title descriptionHtml } userErrors { field message } } }”,
“variables”: {
“input”: {
“id”: “gid://shopify/Product/8591618703517”,
“descriptionHtml”: “

Updated description


}
}
}

Please help!

The productUpdate is an admin API, not a storefront API. Your usage is incorrect.
and your header X-Shopify-Access-Token this should be a admin token .

1 Like

Dear Eric,

Thank you for your assistance.

My goal is to use the Admin API to update product information.

I’ve made the following changes to my API call:

Replaced the
“X-Shopify-Storefront-Access-Token: ???” with
“X-Shopify-Access-Token: …567f”

I’ve created a custom app and I’m using the “Admin API access token” as the value for the “X-Shopify-Access-Token” header.
I’ve assigned the following 4 scopes to the app:
write_products, read_products, write_inventory, read_inventory

I’m now receiving an ACCESS DENIED error back from the API.

My shopify user account has sufficient permissions to create custom apps, but my account was not used to ‘create the store’ as per the Requirements: https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/generate-app-access-tokens-admin#requirements

Your assistance is much appreciated!

Thank you.
Cobus

From what environment are you trying to run this? An app, extension or the storefront?

what do you mean by saying “my account was not used to ‘create the store’ as per the Requirements” as through you already got that admin acesstoken , you can use it to access the shop data.

I managed to resolve the issue by deleting the Installed App and creating a new custom app and using the Access Token from the new app.

Thank you so much for your input.

1 Like