At Report Toaster, we frequently get asked questions by merchants about the updates of certain fields we get from Shopify in our app.
This article will discuss briefly a known Shopify problem - that webhooks updates aren't passed over when values are changed for Variant Metafields in Shopify.
As a quick refresher, metafields are custom fields you can setup in your Shopify store that can be utilized for a variety of purposes.
In terms of reporting, this is usually to add a custom field that you want to include on a report, with the 4 main types we are interested in being
Order = A metafield that appears on an individual order. (e.g. Delivery Details)
- Customer = A metafield you include on an individual customer (e.g. Customer Account #)
- Product = A metafield you include on an individual product (e.g. Warehouse Location)
- Variant = A metafield you include on an individual product variant (e.g. Material)
The Problem
Unfortunately, there is a known issue here - Shopify does not pass over webhook updates when something happens to change the value on a Variant metafield.
You can see this confirmed in a number of different forum threads -
here,
here and
here.
So what does all this mean?
We've done numerous tests on this issue covering a wide range of scenarios - but the problem can essentially be summarized like this
- Shopify only passes webhooks when something else is changed on the Variant itself (e.g. I update the description, change the price etc).
- Therefore, if all you do is change the Metafield value without altering anything else on the Variant, we don't get an update and therefore the older Metafield value will display (or be blank if it didn't have one before).
This is easiest to illustrate with an example.
Let's say I have a Variant metafield called 'Desired Stock Level' that I include on many of my Variants in Shopify.
In this example, we'll take a look at the Unicorn Cruiser, Small/White Variant:
1.) This variant has a starting Ideal Stock Level of 5.
2.) In Shopify, I go to the Metafield itself and update the value to 10.
3.) Shopify does NOT send a webhook update - so the value in Report Toaster remains at 5.
4.) I go back to Shopify and adjust any other value on the Metafield (e.g. adjust the price to 17.99).
5.) THEN Shopify sends the webhook update because something else has changed on the Variant, so now the Ideal Stock Level correctly shows as 10:
Note - As of time of writing (July 2024) this issue appears to be confined to only Variant Metafields. We have done extensive testing and can confirm that regular Product and Customer metafields update as normal (as expected)
So... what can you do ?
Numerous users have already raised their concerns with Shopify about this issue
(in fact, you can see numerous discussions on the forum about this very topic! - see the links above)
But rather than posting on the forums, by far the best way to make your voice heard is to submit a ticket directly with Shopify support through their Partner portal.
The more merchants request that this issue be resolved, the more likely they are to update these webhooks!
All you have to do is login
here and submit a ticket. You can explain the issue like this:
"Shopify is not sending webhook updates through when Metafield Values are updated. Webhook updates are only sent when other values are adjusted on a product variant (e.g. Price is changed)
I would like to request that Shopify amend the webhooks so that an update is sent whenever a Variant Metafield's value is updated" .
Feel free to keep us posted of any responses you get - as it helps us to keep other merchants up to date who are experiencing similar issues.
If you don't need to track something on an individual Variant basis, consider using Product Metafields instead.
These do not appear to suffer from the same webhook issues outlined above, so will easily bypass the problem.
Manually adjust other values
As noted above, changing any other values on the Product Variant will cause webhook updates to be sent by Shopify.
So if you simply adjust the metafield value and then change another value as well (e.g. price), then Shopify will send over the webhook updates and the correct values will display in your reports.
Note: you can always change it and change it back again - it is simply the act of making a change that causes the webhook to fire.
Have us resync your Variants data
Finally, as a last resort, you can always contact us to have us manually resync your Product data.
Obviously this is not ideal as it will mean updating every product (the process is all-or-nothing, rather than done per variant) and thus will take some time for merchants who have a lot of product variants.
Moreover, this may not be practical for merchants who make frequent updates to these values, but it is certainly better than leaving values out of date (!)
Ultimately we appreciate though that any of these workarounds are not ideal - hence we suggest contacting Shopify to get them to address the issue as soon as possible.
Have any questions about updating variant metafield values? Contact us at
support@cloudlab.com and we'll be glad to help you out.