Request to add variant-specific webhook topics so apps can detect changes to individual variants without refetching whole products. Context: product webhooks will include full data for only the first 200 variants, while products may soon support up to 2000 variants.
Current behavior and impact:
Webhooks include IDs for all variants but detailed data only for the first 200.
To stay in sync, apps may need up to 4 GraphQL requests (250 variants per request) to fetch the remaining variants, then update all 2000 because the changed variant is unknown.
This is seen as inefficient, especially when a single variant changes.
Alternatives and suggestions:
Use GraphQL bulk jobs to export the entire catalog as a JSONL file in minutes.
Ensure the platform supports fast full-catalog refetches (<20 minutes) in case of missed webhooks; a CSV export API was suggested.
Status and next steps:
A staff member has escalated the variant-webhook request to the product team; awaiting update.
No decision yet; discussion remains open.
Summarized with AI on December 26.
AI used: gpt-5.
We need to sync all products and variants data in our database.
I see that moving forward, the product webhook will only contain data for the first 200 variants, and we will have to issue one or more queries to get the data for the remaining variants.
That sounds very inefficient, especially considering that only a single variant might have changed.
To make things more efficient, please introduce a new set of webhook topics for variants specifically, so that we can know when a specific variant was changed. variants/
Fully understand how this new webhook would be useful, especially in the context of how the payloads for the product webhook will be handled differently when a product has over 200 variants. I’ve gotten in touch with the product team with this request - will update asap.
Dropping this note in here since it seems you’re in communication with actual developers on the matter.
Please note that historically for any platform webhooks are nice for making certain updates faster but nothing replaces the need to be able to fetch the entire catalog in real times of less than 20 minutes regardless of size. Take this into consideration. If you have to take a step back into the stone ages and get us a CSV export API so-be-it.
All it takes is one missed webhook and you need the ability to fully refetch.
Shopify has historically permitted massive amounts of data to be extracted via the REST API so that certain difficulties can be corrected promptly and recurringly in a short amount of time that doesn’t eat up an entire day of waiting for 2+ hour product syncs to finish to see if the issue is resolved.
Your Shopify sellers will be the ones complaining not us.
The ids of all variants are included in the webhooks, so we are supposed to fetch the data for the other (up to) 1900 variants via GraphQL (can be done in 4 requests, 250 per request) and then send the data for all 2000 variants to our db / system / whatever, since we don’t know which variant was updated. It’s not very effective, and that’s why a variant-webhook would make a lot of sense.