One method is by adding the webhooks in the shopify.app.toml
file, and the other is by using a GraphQL mutation query to set up the webhooks.
Like anything, it depends.
shopify.app.toml
approach
Pros
- Faster to get started
- No need to manually managed webhook registration
Cons
- Cannot modify webhooks per merchant
GraphQL manual registration
Pros
- More granular control, you can create specific webhooks for specific merchants
- You can also define filters per merchant
Cons
- You have to manage registering/removing webhooks based on installs or settings changes
1 Like
Just to add to what @Dylan said, the main reason I’ve seen for still using the GraphQL manual registration is if you want to configure webhooks to receive messages from specific metafieldNamespaces
. That’s still not supported with the shopify.app.toml
approach.
If you know you’re going to have the same webhooks for all stores though, and you don’t need to use metafieldNamespaces
, the shopify.app.toml
method is probably best.
Also, in case you haven’t seen it, there’s also a good comparison of the two methods in the Shopify docs that might help you to decide.