Webhook Management
Configure and manage outgoing webhooks
@lambdacurry/medusa-webhooks
Add webhook functionality to your Medusa e-commerce server, allowing you to send real-time notifications to external services when specific events occur in your system. The plugin seamlessly integrates with Medusa's event system and provides a simple way to manage webhooks for various events.
Features
- Event-Based Webhooks: Automatically trigger webhooks based on Medusa events like product creation, updates, and more
- Flexible Configuration: Easy setup and configuration through Medusa's plugin system
- Built-in Event Support: Pre-configured support for common Medusa events
- Workflow Integration: Seamlessly integrates with Medusa's workflow system for reliable webhook processing
Installation
- Install the plugin using your preferred package manager:
123npm install @lambdacurry/medusa-webhooks# oryarn add @lambdacurry/medusa-webhooks
- Add the plugin to your Copy to clipboard
medusa-config.js
:
12345678910const plugins = [// ... other plugins{resolve: "@lambdacurry/medusa-webhooks",options: {// Add here the subcribers you will definesubscriptions: ["product.created", "product.updated"],},},];
- Run migrations:
1yarn medusa db:migrate
Usage
Creating a Webhook Subscriber
The plugin provides three different workflows for handling webhooks:
- Copy to clipboard
getWebhooksSubscriptionsWorkflow
: Retrieves active webhook subscriptions for a specific event - Copy to clipboard
sendWebhooksEventsWorkflow
: Sends webhook events to the subscribed endpoints - Copy to clipboard
fullWebhooksSubscriptionsWorkflow
: Combines both workflows to handle the complete webhook process
Here's an example of how to use these workflows in your subscriber:
1234567891011121314151617181920import {SubscriberArgs,SubscriberConfig,} from "@medusajs/framework/subscribers";import {getWebhooksSubscriptionsWorkflow,sendWebhooksEventsWorkflow,fullWebhooksSubscriptionsWorkflow,} from "@lambdacurry/medusa-webhooks/workflows";export const config: SubscriberConfig = {event: ["product.created", "product.updated"],context: {subscriberId: "product-added",},};export default async function handleProductAdded({event: { name },container,
Development
To contribute to this plugin:
- Clone the repository
- Install dependencies: Copy to clipboard
yarn install
- Run the plugin: Copy to clipboard
yarn dev
Please read more about how to run the plugin in dev mode: https://docs.medusajs.com/learn/fundamentals/plugins/create
License
MIT License