Just gonna throw my two cents in here, along with everyone that’s done it in the last couple of years.
At the moment, the behaviour of the products/update-webhook is so that if a product has variants, even if only one, the act of updating a variant metafield triggers the webhook. I don’t think the actual metafield data is in the payload, but I can query graphql for the updated variant metafield based on the fact that I got a notice that the product was updated. It’s noisy as all hell, but it works.
If a product doesn’t have any variants though, the act of editing a variant metafield doesn’t fire a single webhook. Just none. That’s just really poor design, if you ask me.
People all over Shopify are using variant metafields for tracking stuff like bin/shelf-numbers, ingredients, etc, and the fact that there is no webhook support for tracking updates in these fields is just not very fun to work with at all. And this has been reported for years and years.
Is there any plan to change/fix this? Is anything being done about it, or atleast looked at?