We’re trying to track all changes made to a product using Shopify’s GraphQL Admin API, particularly through the Product
object. We found the events
connection and initially thought it would be useful for understanding what changes happened to a product over time.
However, we’ve noticed a couple of issues:
- Inventory updates (changes to inventory levels or restocks) are not captured in the
events
object. - Even some product-level updates (e.g., changes to metafields, product options, or variant details) don’t always trigger a new event in the
events
list.
This makes it difficult to maintain a reliable audit trail or understand exactly what changed in a product and when in the update.
Ideally, we would love to have a consistent log of product-related changes — especially inventory and variant-level changes — accessible via GraphQL or through another API.
Is the recommended approach still to rely on webhooks and maintain a separate change log externally?
Appreciate any insight or workarounds others have found.