Overview
Svene marketplace
Create and manage a multi-vendor setups
Medusa Multivendor Marketplace Plugin
This plugin transforms your Medusa store into a robust multivendor marketplace.
Background
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
Features
- 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:
Installation
- Add plugin:
1yarn add @techlabi/medusa-marketplace-plugin
- Add the following variables to your Copy to clipboard
.env
file:
12API_KEY=supersecretVITE_BACKEND_URL=http://localhost:9000
- Copy to clipboard
API_KEY
- The secret key used to create the super admin. - Copy to clipboard
VITE_BACKEND_URL
- The URL of your Medusa backend, required for custom admin components.
- Apply Copy to clipboard
postinstall
patch: To ensure proper setup, follow these steps:- Open Copy to clipboard
package.json
: Open the Copy to clipboardpackage.json
file in your project's root directory. - Add Copy to clipboard
postinstall
script: Add the following script under the Copy to clipboardscripts
section:
- Open Copy to clipboard
1234"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: This Copy to clipboard
postinstall
script will automatically execute after all dependencies are installed, applying the necessary patch.
1yarn
- Add the following code to your Copy to clipboard
medusa-config.ts
file: This code connect plugin and helps to resolve an issue similar to https://github.com/medusajs/medusa/issues/11248.
123456789module.exports = defineConfig({projectConfig: { ... },plugins: [{resolve: "@techlabi/medusa-marketplace-plugin",options: {},},],})
- Run database migrations:
1npx medusa db:migrate
- Start the project:
1yarn dev
Demo app
https://github.com/Tech-Labi/medusa2-marketplace-demo
Functionality Overview
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:
- Copy to clipboard
customer-store.ts
- Copy to clipboard
order-store.ts
- Copy to clipboard
price-list-store.ts
- Copy to clipboard
product-store.ts
- Copy to clipboard
shipping-profile-store.ts
- Copy to clipboard
stock-location-store.ts
- Copy to clipboard
user-store.ts
- Copy to clipboard
- 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:
Creating a Super Admin
To create a super admin, use the following Copy to clipboardcurl
request:
1curl -X POST http://localhost:9000/stores/super -d '{ "email":"admin@test.com", "password": "supersecret"}' -H 'Content-Type: application/json' -H 'Authorization: supersecret'
Contributing
Feel free to contribute to this plugin by submitting pull requests or creating issues for bug reports and feature requests.
License
Apache 2.0