Skip to content

Document webhook reconciliation behavior in shopify-app-express#3158

Merged
joshwheeler merged 3 commits intomainfrom
docs/webhook-reconciliation-warning
Apr 15, 2026
Merged

Document webhook reconciliation behavior in shopify-app-express#3158
joshwheeler merged 3 commits intomainfrom
docs/webhook-reconciliation-warning

Conversation

@joshwheeler
Copy link
Copy Markdown
Contributor

The README does not document that when auth.callback() completes an offline OAuth session, it automatically calls register(), which deletes any webhook subscriptions not declared in webhookHandlers.

Added a Webhook registration section explaining this behavior and a migration warning for apps moving from custom implementations.

@joshwheeler joshwheeler force-pushed the docs/webhook-reconciliation-warning branch 2 times, most recently from adfefb7 to 0e7ffd4 Compare April 14, 2026 17:05
joshwheeler and others added 2 commits April 15, 2026 10:35
The express package docs previously presented shop-specific webhooks
(managed via the GraphQL Admin API) as the only option without
mentioning app-specific subscriptions. App-specific subscriptions,
configured in shopify.app.toml, are Shopify's recommended approach
for most apps since Shopify manages the subscription lifecycle
automatically.

Changes across all express package docs:
- README: Reframe "Webhook registration" as broader "Webhooks" section
  that introduces both subscription types, links to Shopify's
  comparison docs, and scopes the reconciliation warning to
  shop-specific subscriptions only
- processWebhooks.md: Label webhookHandlers as shop-specific in the
  description, parameters, and example; note that the middleware is
  still needed for HTTP delivery with app-specific subscriptions
- shopifyApp.md: Clarify that webhooks.path applies to both
  subscription types and that processWebhooks defines shop-specific
  subscriptions
- Migration guide: Add tip about switching to app-specific
  subscriptions during migration, label code examples as shop-specific

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@byrichardpowell byrichardpowell force-pushed the docs/webhook-reconciliation-warning branch from 4e8e464 to 7ec4d41 Compare April 15, 2026 14:35
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@byrichardpowell byrichardpowell self-requested a review April 15, 2026 14:36
@byrichardpowell
Copy link
Copy Markdown
Contributor

byrichardpowell commented Apr 15, 2026

Thanks @joshwheeler

I've pushed some updates:

  1. Made it clear app specific webhooks are preferable.
  2. Made it clear which API's apply to shop vs app specific webhooks
  3. Added proper changelog entry & version bump so the README gets picked up on npm.

If yu are comfortable with these changes please merge 👍

@joshwheeler joshwheeler merged commit b8e45b2 into main Apr 15, 2026
13 checks passed
@joshwheeler joshwheeler deleted the docs/webhook-reconciliation-warning branch April 15, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants