No event when a variant is added to or removed from a variant-scoped collection (api 2026-10)

Hi Shopify team,

We use Events (api_version 2026-10) to keep per-collection data in our app in step with collection membership. The new collections model with variant-scoped sources is a great addition for our merchants.

One thing we noticed: when a variant is added to or removed from a variant-scoped collection while its product stays in the collection, no event is delivered. We checked this on a development store with a parent collection.* subscription and a product.* subscription, both without a query_filter. Changing the selection through collectionUpdate (selectionsToAdd / selectionsToRemove) and through the admin “Select variants to include” dialog did not produce a delivery, even though the collection’s updatedAt changed. Adding or removing a whole product delivered collection.products within a second, as expected.

Our app keeps a manual variant order per collection, so a variant the merchant removes can keep showing in app-rendered storefront content until we notice the change some other way.

It would be really helpful to have a trigger for variant membership changes, for example collection.variants with collectionId and variantsId variables, or variant entries in fields_changed of collection.products. A query field like ProductVariant.inCollection(id:) would be a nice addition as well, since today only Product.inCollection and Product.variantsInCollection are available.

Thanks for considering it!

Using webhooks to sync collections has been flawed for years so it’s sad (but not surprising!) to hear that events may be facing the same issues.

We had issues way back in 2018 or so with hooks not firing when a product was added to a dynamic collection. I think this may have been product/update though I cannot remember and when Shopify moved their support to the .dev domain they 404’d all the existing URLs!@# :exploding_head: For example: https://community.shopify.com/c/webhooks-and-events/webhook-for-product-s-collection-changing/m-p/449225

For the cases we needed product/collection relationships for local logic we’ve been syncing to our local DB via polling/updated at values. It sucks and I’d hope that in 2026 we no longer have to do it but, it was historically the only way to get an accurate representation :frowning:

Hey folks!

Thanks for bringing this up! We’re aware of the gap and discussing how we’re gonna work through this.

More on this when we have something to share^