Custom Module
A module is a package of reusable functionalities. It can be integrated into your Medusa application without affecting the overall system. You can create a module as part of a plugin.
Learn more about modules in this documentation.
To create a module:
1. Create a Data Model
A data model represents a table in the database. You create a data model in a TypeScript or JavaScript file under the models directory of a module.
For example, create the file src/modules/blog/models/post.ts with the following content:
import { model } from "@medusajs/framework/utils"
const Post = model.define("post", {
id: model.id().primaryKey(),
title: model.text(),
})
export default Post2. Create a Service
A module must define a service. A service is a TypeScript or JavaScript class holding methods related to a business logic or commerce functionality.
For example, create the file src/modules/blog/service.ts with the following content:
3. Export Module Definition
A module must have an index.ts file in its root directory that exports its definition. The definition specifies the main service of the module.
For example, create the file src/modules/blog/index.ts with the following content:
4. Add Module to Medusa's Configurations
To start using the module, add it to medusa-config.ts:
5. Generate and Run Migrations
To generate migrations for your module, run the following command:
Then, to run migrations, run the following command:
Use Module
You can use the module in customizations within the Medusa application, such as workflows and API routes.
For example, to use the module in an API route:
Last updated