Trigger 'product/update' webhook when variant metafields are updated

Topic summary

Developers are unable to trigger product/update webhooks when updating variant-level metafields in Shopify, despite trying various namespace configurations and API versions.

Key findings:

  • Product-level metafield updates successfully trigger webhooks
  • Variant metafield updates do not trigger webhooks in most cases
  • One user reported the issue may be resolved in their dev environment, but this remains unconfirmed
  • The problem appears specific to default variants (single-variant products)
  • Products with multiple created variants may trigger webhooks when variant metafields update
  • Tested configurations include various namespace formats: "pos", "variant.metafields.pos", "variant.metafields.pos.title"

Current status:

  • Issue persists as of API version 2025-04
  • May be related to metaobjects specifically
  • No confirmed workaround exists for real-time syncing of variant metafield data
  • Community seeking alternative solutions for maintaining data synchronization between external systems and Shopify
Summarized with AI on October 26. AI used: claude-sonnet-4-5-20250929.

Hey, I saw a lot of conversations regarding similar questions, most of them are from 3 years ago.

I would like to know how / if possible at all, I can receive a webhook for when a product’s variant’s metafields are updated.

basically when product.variants[0].metafields changes.

If that is not possible, then what’s the best way to keep that data within my system in sync with shopify’s state in a near/real-time ?

Thanks,

Camille

4 Likes

I’d like to know the answer to this as well.

I’ve tried subscribing to webhook with all metafields & private metafields namespaces but when I update a variant’s metafield it doesn’t send any notifications.

Hi, did anyone managed to figure out why?

I’m also trying to trigger product/update webhook when updating variant’s metafield. But it doesn’t seems to work.

I tried all sort of registration and nothing seems to work.

[
  "id" => ....
  "address" => "https://mydomain.com/webhook/products-update"
  "topic" => "products/update"
  "metafield_namespaces" => array:1 [
    0 => "pos"
  ]
  "api_version" => "2023-01"
  "private_metafield_namespaces" => array:1 [
    0 => "pos"
  ]
]

I tried various combination of namespaces and nothing works.

“pos”, “variant.metafields.pos”, “variant.metafields.pos.title”

Any help will be greatly appreciated!

UPDATES
I tried to create a metafield in product level using the same namespace “pos” and the webhook was triggered when metafield in product level is updated!

Seems like there is no way to trigger the webhook when variant level metafield is updated :disappointed_face:

1 Like

It seems this is still an issue for me as well, even targeting the latest Webhook API version. It seems that if you update the variant metafields on the default variant for a product, you do not receive the product/update webhook , but if you update the variant metafields on a created variant, then you receive it. This is frustrating because I do not want to have to rely on having both product metafields and variant metafields, as I use complex metaobjects that would need to be setup for both and then listened for. Does anyone have a solution to getting the products/update webhook here? it is obviously a product update so it seems this is a bug.

2 Likes

After years of having to deal with this bug, it seems that Shopify now emits a product/update webhook when the variant metafield is changed - even if that is the only change made to the product!

Is anyone else able to test and confirm?

Try again, I was working on my dev environment and noticed that making a change to a variant metafield now triggers the product/update webhook to emit. Please let me know if you’re seeing the same thing :slightly_smiling_face:

Nope, it is still not working for me on 2025-04. I have a product with a default variant that gets automatically created. I have a variant metafield that appears in the UI that holds a metaobject. Updating the variant metafield metaobject does not trigger a webhook, however if I update the product metafield metaobject it triggers a webhook. This issue does not occur on products with multiple variants. Maybe it is perhaps an issue with metaobjects that prevents the webhook? What data are you updating on the default variant?