Hi there,
Metafields updates or insertions in a product or a variant should trigger the product/update webhook, according to this post . It’s however not the case. I have a simple reproduction process:
ShopifyAPI::Webhook.find(157612421);
# Returns
<ShopifyAPI::Webhook:0x00000006c24c18
@attributes=
{"id"=>157612421,
"address"=>"[https://myapp.com/webhooks/products/update](https://myapp.com/webhooks/products/update)",
"topic"=>"products/update",
"created_at"=>"2016-01-20T04:06:08-05:00",
"updated_at"=>"2016-01-29T02:12:51-05:00",
"format"=>"json",
"fields"=>[],
"metafield_namespaces"=>["color"]},
@persisted=true,
@prefix_options={}>
Alright, so here, we see that the webhook is up and running. I’ve even set metafield_namespaces even if it shouldn’t matter.
Then let’s fiddle around.
p = ShopifyAPI::Product.first
p.title = "#{p.title}."
p.save
v = ShopifyAPI::Product.first.variants.first
v.title = "#{v.title}."
v.save
Both correctly trigger the webhook.
However, let’s try to play with metafields:
p = ShopifyAPI::Product.first
m = ShopifyAPI::Metafield.new(namespace: 'color', key: 'color1', value: 'red', value_type: 'string')
p.add_metafield(m)
v = ShopifyAPI::Product.first.variants.first
m = ShopifyAPI::Metafield.new(namespace: 'color', key: 'color1', value: 'red', value_type: 'string')
v.add_metafield(m)
Both correctly update their target with the correct metafield, however, the webhook is never triggered.
Our application needs to be constantly up-to-date with the store. This is a deal-breaker for us because this means our app is currently almost unusable. We have stores that have ~150K variants, so we can’t afford to just trigger a full reindexing (it takes between 20 and 40 hours with the rate-limiting!).
Can your dev team please have a look at this? As stated in the introduction, it seems like it worked correctly before and a regression was introduced since at least 7 months.
Best,