- Get Started
- Product
- Resources
- Tools & SDKs
- Framework
- Reference
- Get Started
- Product
- Resources
- Tools & SDKs
- Framework
- Reference
Plugins
In this chapter, you'll learn what a plugin is in Medusa.
What is a Plugin?#
A plugin is a package of reusable Medusa customizations that you can install in any Medusa application. The supported customizations are Modules, API Routes, Workflows, Workflow Hooks, Links, Subscribers, Scheduled Jobs, and Admin Extensions.
Plugins allow you to reuse your Medusa customizations across multiple projects or share them with the community. They can be published to npm and installed in any Medusa project.
Plugin vs Module#
A module is an isolated package related to a single domain or functionality, such as product reviews or integrating a Content Management System. A module can't access any resources in the Medusa application that are outside its codebase.
A plugin, on the other hand, can contain multiple Medusa customizations, including modules. Your plugin can define a module, then build flows around it.
For example, in a plugin, you can define a module that integrates a third-party service, then add a workflow that uses the module when a certain event occurs to sync data to that service.
- You want to reuse your Medusa customizations across multiple projects.
- You want to share your Medusa customizations with the community.
- You want to build a custom feature related to a single domain or integrate a third-party service. Instead, use a module. You can wrap that module in a plugin if it's used in other customizations, such as if it has a module link or it's used in a workflow.
How to Create a Plugin?#
The next chapter explains how you can create and publish a plugin.
Plugin Guides and Resources#
For more resources and guides related to plugins, refer to the Resources documentation.