Skip to content

codee-sh/medusa-plugin-notification-emails

Repository files navigation

Medusa plugin notification emails

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.

Features

  • 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 AbstractTemplateService with 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

Compatibility

  • Medusa Version: >= 2.8.8
  • Node Version: >= 20

Installation

npm install @codee-sh/medusa-plugin-notification-emails
# or
yarn add @codee-sh/medusa-plugin-notification-emails

Quick Start

1. Register the Plugin

Add to your medusa-config.ts:

module.exports = defineConfig({
  plugins: [
    "@codee-sh/medusa-plugin-notification-emails"
  ]
})

2. Configure Notification Provider

Set up a notification provider - see Configuration Documentation for details.

3. Use Templates

The plugin includes built-in subscribers that automatically send email notifications for various events. You can also use templates directly in your code:

Email Templates

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" }
})

Slack Templates

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.

Available Templates

Email Templates

  • 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

Slack Templates

  • 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.

Built-in Subscribers

The plugin includes automatic email notifications for the following events:

  • order.placed - Sends order confirmation email when an order is placed
  • order.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.

Admin Panel

Access the template preview in Medusa Admin at /app/notifications/render. See Admin Panel Documentation for details.

Documentation

Exports

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

License

MIT

Author

Codee Team - https://codee.dev

About

A complete notification plugin for Medusa.js — React Email templates, Slack Block Kit. Configurable blocks.

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published