In this document, you'll learn what Subscribers are in Medusa.
What are Subscribers
Subscribers register handlers for an events and allows you to perform an action when that event occurs. For example, if you want to send your customer an email when they place an order, then you can listen to the
order.placed event and send the email when the event is emitted.
Natively in Medusa there are subscribers to handle different events. However, you can also create your own custom subscribers.
src/subscribers directory. Files here should export classes, which will be treated as subscribers by Medusa. By convention, the class name should end with
Subscriber and the file name should be the camel-case version of the class name without
Subscriber. For example, the
WelcomeSubscriber class is in the file
Whenever an event is emitted, the subscriber’s registered handler method is executed. The handler method receives as a parameter an object that holds data related to the event. For example, if an order is placed the
order.placed event will be emitted and all the handlers will receive the order id in the parameter object.
Example Use Cases
Subscribers are useful in many use cases, including:
- Send a confirmation email to the customer when they place an order by subscribing to the
- Automatically assign new customers to a customer group by subscribing to the
- Handle custom events that you emit
Developers can create custom subscribers in the Medusa backend, a plugin, or in a module.
Learn how to create a subscriber in Medusa.