This plugin transforms your Medusa store into a robust multivendor marketplace.
The plugin was created as a result of a four-part series articles on Medium re how to create multivendor marketplace with Medusa 2.0:
- 🛠 Part 1: setting up the multi-vendor structure and understanding how to manage multiple sellers on a single Medusa instance
- 🧑💼 Part 2: building a powerful Super Admin layer to oversee vendors, products, orders, and more
- 🎨 Part 3: customizing the Medusa Admin Dashboard to give super admins and vendors a clean, user-friendly experience
- 🎨 Part 4: bring it all together - packaging everything into a Medusa 2 plugin
- Store Creation:
- The plugin provides an intuitive interface for creating new vendor stores, simplifying the onboarding process for new sellers.
- Entity Separation:
- The plugin ensures that each store has its own independent set of entities (customers, orders, products, etc.), preventing data conflicts and ensuring privacy.
- Impersonation:
- Super admins can seamlessly switch between vendor accounts, enabling them to:
- View the marketplace from a vendor's perspective.
- Troubleshoot issues efficiently.
- Provide personalized support.
- Super admins can seamlessly switch between vendor accounts, enabling them to:
-
Add plugin:
yarn add @techlabi/medusa-marketplace-plugin
-
Add the following variables to your
.env
file:API_KEY=supersecret VITE_BACKEND_URL=http://localhost:9000
API_KEY
- The secret key used to create the super admin.VITE_BACKEND_URL
- The URL of your Medusa backend, required for custom admin components.
-
Apply
postinstall
patch:To ensure proper setup, follow these steps:
-
Open
package.json
: Open thepackage.json
file in your project's root directory. -
Add
postinstall
script: Add the following script under thescripts
section:"scripts": { "postinstall": "node node_modules/@techlabi/medusa-marketplace-plugin/.medusa/server/src/patch-admin.js", // ... other scripts ... }
-
Run installation: Execute the installation process using yarn:
yarn
This
postinstall
script will automatically execute after all dependencies are installed, applying the necessary patch.
-
-
Add the following code to your
medusa-config.ts
file:module.exports = defineConfig({ projectConfig: { ... }, plugins: [ { resolve: "@techlabi/medusa-marketplace-plugin", options: {}, }, ], })
This code connect plugin and helps to resolve an issue similar to medusajs/medusa#11248.
-
Run database migrations:
npx medusa db:migrate
-
Start the project:
yarn dev
https://github.com/Tech-Labi/medusa2-marketplace-demo
Key features included:
- Super Admin Role:
- Introduces a super admin role with the ability to manage all aspects of the marketplace.
- Super admins can:
- Create and manage multiple vendor stores.
- Impersonate vendor accounts to troubleshoot and provide support.
- Access and analyze data across all stores.
- Vendor Store Management:
- Enables the creation of individual vendor stores, each with its own:
- Customer Base: Independent customer lists for each vendor.
- Order Management: Separate order tracking and fulfillment.
- Price Lists: Unique pricing strategies for each vendor.
- Product Catalogs: Distinct product offerings per store.
- Shipping Profiles: Tailored shipping options.
- Stock Locations: Independent inventory management.
- User Accounts: Vendor-specific user management.
- Enables the creation of individual vendor stores, each with its own:
- Data Separation:
- The plugin ensures clear separation of data between stores using Medusa's module links:
customer-store.ts
order-store.ts
price-list-store.ts
product-store.ts
shipping-profile-store.ts
stock-location-store.ts
user-store.ts
- This architecture allows vendors to operate independently while maintaining a cohesive marketplace experience for customers.
- The plugin ensures clear separation of data between stores using Medusa's module links:
To create a super admin, use the following curl
request:
curl -X POST http://localhost:9000/stores/super -d '{ "email":"[email protected]", "password": "supersecret"}' -H 'Content-Type: application/json' -H 'Authorization: supersecret'
Feel free to contribute to this plugin by submitting pull requests or creating issues for bug reports and feature requests.
Apache 2.0