spree-events-webhooks
Installation
SKILL.md
Spree Events + Webhooks
Spree announces what happened (order.placed, payment.completed, fulfillment.fulfilled, …) through one event bus. Two consumers sit on it:
| Consumer | Lives | Use for |
|---|---|---|
| Subscribers | Ruby classes in your Spree app | Your own side effects — ERP sync, custom email, analytics, audit history |
| Webhooks | HTTPS POSTs to external URLs | Another system is the consumer — Next.js storefront, n8n/Zapier/Make, partner apps |
If the reacting code lives outside the Rails app, use a webhook. If it lives inside, use a subscriber.
Events vs workflow hooks
Events fire after the fact and normally run in the background. They cannot stop or change the operation. If you need to veto (workflow.reject!), add a step, or feed data into a calculation while the operation runs, register a workflow hook instead — Spree.hooks.register('<flow>.<hook>', Handler) — see the spree-workflows skill.