A comprehensive notification plugin for Medusa v2 that provides a flexible, block-based template system for multiple channels (Email and Slack) with internationalization support, custom translations, and seamless integration with Medusa's notification module.
- Multi-Channel Templates: Pre-built templates for Email and Slack channels
- Block-Based System: Templates are built using a flexible block system that can be stored in a database for future builder functionality
- Email Templates: Customizable email templates built with React Email for common use cases
- Slack Templates: Slack Block Kit compatible templates for Slack notifications
- Template Service Architecture: Unified
AbstractTemplateServicewith channel-specific implementations (EmailTemplateService,SlackTemplateService) - Automatic Interpolation: Smart variable interpolation system that processes
{{data.*}}and{{translations.*}}placeholders recursively - Internationalization: Built-in support for multiple locales (Polish, English)
- Customizable: Override translations and customize templates without modifying core files
- Integration: Integrates with Medusa's notification module
- Admin Panel: Preview and test templates directly from Medusa Admin
- Type-Safe: Full TypeScript support with exported types
- HTML & Plain Text: Automatically generates both HTML and plain text versions of emails
- Medusa Version:
>= 2.8.8 - Node Version:
>= 20
npm install @codee-sh/medusa-plugin-notification-emails
# or
yarn add @codee-sh/medusa-plugin-notification-emailsAdd to your medusa-config.ts:
module.exports = defineConfig({
plugins: [
"@codee-sh/medusa-plugin-notification-emails"
]
})Set up a notification provider - see Configuration Documentation for details.
The plugin includes built-in subscribers that automatically send email notifications for various events. You can also use templates directly in your code:
import { emailService, TEMPLATES_NAMES } from "@codee-sh/medusa-plugin-notification-emails/templates/emails"
const { html, text, subject } = await emailService.render({
templateName: TEMPLATES_NAMES.ORDER_PLACED,
data: templateData,
options: { locale: "pl" }
})import { slackService, TEMPLATES_NAMES } from "@codee-sh/medusa-plugin-notification-emails/templates/slack"
const { blocks } = await slackService.render({
templateName: TEMPLATES_NAMES.INVENTORY_LEVEL,
data: templateData,
options: { locale: "en" }
})Note: Templates use a block-based system where each template is defined as an array of blocks. The system automatically interpolates variables like {{data.order.id}} and {{translations.headerTitle}} throughout the blocks.
See Templates Documentation for detailed usage examples.
- Order Placed (
order-placed) - Order confirmation email template - Order Completed (
order-completed) - Order completion notification template - Contact Form (
contact-form) - Contact form submission email template - Order Updated (
order-updated) - Order update notification template - Inventory Level (
inventory-level) - Inventory level notification template
- Inventory Level (
inventory-level) - Inventory level notification for Slack - Product (
product) - Product notification for Slack - Product Variant (
product-variant) - Product variant notification for Slack
See Templates Documentation for general template information and Blocks Documentation for details on the block system.
The plugin includes automatic email notifications for the following events:
order.placed- Sends order confirmation email when an order is placedorder.completed- Sends order completion notification when an order is completed
These subscribers automatically:
- Fetch order data from Medusa
- Render email templates using React Email
- Send notifications via Medusa's notification module
- Respect custom translations configured in plugin options
See Configuration Documentation for details on customizing subscriber behavior.
Access the template preview in Medusa Admin at /app/notifications/render. See Admin Panel Documentation for details.
- Templates - Using templates and creating custom subscribers
- Blocks System - Understanding the block-based template system
- Translations - Internationalization and custom translations
- Configuration - Plugin configuration options
- Admin Panel - Admin interface usage
- Creating Custom Templates - Guide for creating new templates
The plugin exports the following:
@codee-sh/medusa-plugin-notification-emails/templates/emails- Email template service and types@codee-sh/medusa-plugin-notification-emails/templates/slack- Slack template service and types@codee-sh/medusa-plugin-notification-emails/templates/shared- Shared template utilities@codee-sh/medusa-plugin-notification-emails/utils- Utility functions
MIT
Codee Team - https://codee.dev