Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mercurjs/mercur
JavaScript Open Source
Multi-Vendor Marketplace Accelerator build on top of Medusa.js. Mercur simplifies the path to your own customized, multi-vendor marketplace.
https://github.com/mercurjs/mercur
ecommerce javascript marketplace medusajs multivendor-ecommerce nextjs nodejs open-source
Last synced: about 21 hours ago
JSON representation
JavaScript Open Source Multi-Vendor Marketplace Accelerator build on top of Medusa.js. Mercur simplifies the path to your own customized, multi-vendor marketplace.
- Host: GitHub
- URL: https://github.com/mercurjs/mercur
- Owner: mercurjs
- License: mit
- Created: 2024-04-23T15:36:13.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-08-20T10:17:46.000Z (3 months ago)
- Last Synced: 2024-09-20T14:16:25.096Z (about 2 months ago)
- Topics: ecommerce, javascript, marketplace, medusajs, multivendor-ecommerce, nextjs, nodejs, open-source
- Language: TypeScript
- Homepage: https://mercurjs.com
- Size: 2.43 MB
- Stars: 171
- Watchers: 7
- Forks: 17
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Mercur](https://rigby-web.fra1.digitaloceanspaces.com/README-mercur-lg.png)
# What is Mercur?
Mercur is the first JavaScript open-source platform for building multi-vendor marketplaces. Built on top of Medusa.js, it simplifies the development of customized marketplaces.
## Why Mercur?
After seeing the rising trend in multi-vendor business models and setting up several marketplaces from scratch at Rigby, we wanted to eliminate the repetitive setup of marketplaces.
The aim is to enable users to start a new marketplace in about five minutes, providing a strong starting point for anyone looking to build their own multi-vendor platform.
Medusa is an amazing and strong foundation for building marketplaces but requires a few modifications to adjust to this business model. We wanted a faster way to get these platforms up and running — Mercur is that accelerator for building multi-vendor marketplace with Medusa.js as a core.
## Goals
We aim to make Mercur adaptable for various marketplace types, such as rental or service marketplaces.
We also want to build an ecosystem of plugins tailored to multi-vendor setups, including solutions for payment distributions like Stripe. We want to publish all plugins adapted to the multi-vendor market under the name `medusa-mercur-...` e.g. `medusa-mercur-stripe`. With this annotation, developers will always know that this is a plugin for the MVM.
Feel free to share your ideas on Medusa Discord, how you imagine the development of this project.
## Project Components:
![Mercur Architecture](https://rigby-web.fra1.digitaloceanspaces.com/mercur-mvm-lgg.png)
- **Core:** The backbone of Mercur, handling the primary operations and data flow essential for marketplace functionality.
- **Admin:** Provides a control panel for marketplace administrators to manage vendors, orders, settings, and more.
- **Vendor:** A dedicated interface for vendors to manage their products, orders, and profile details.
- **Storefront:** The frontend where customers browse products, place orders, and interact with the marketplace. It is a customized version of the Medusa.js Next.js Starter.## Project Features:
- **Vendor Registration:** Allows new vendors to sign up and await approval from marketplace administrators.
- **Vendor Profiles:** Enables vendors to create and customize their profiles on the marketplace.
- **Vendor Authorization by Admin:** Admins can review and authorize vendor registrations to maintain marketplace standards.
- **Order Splitting:** Facilitates the distribution of orders among multiple vendors involved in a single transaction.
- **Vendor Shipping Management:** Vendors can manage their shipping logistics independently within the platform.## Roadmap:
- Payment provider & Commission Management & Invoices
- Adjustments to Medusa 2.0!
- More: coming soon## Getting started 🚀
Create a new Mercur project with the command:
```bash
npx mercurjs marketplace
```You will be asked to enter the project's name and select the project’s modules (admin / vendor / storefront) platform you wish to use. Once selected, the CLI will create project files in the directory matching your project name.
## How to configure
#### API Configuration
**Initial Setup**
1. Navigate to the `/api` directory.
2. Execute the `yarn` command to install dependencies.
3. Build the admin and vendor ui:s; `yarn run build:admin && yarn run build:vendor`**Environment Configuration**
1. Create a `.env` file in the root of the project.
2. Add the `DATABASE_URL` variable with your PostgreSQL database URL.**Database and Server Initialization**
1. Seed the database:
```bash
yarn seed
```2. Start the Medusa development server:
```bash
yarn dev
```The server will start on http://localhost:9000.
#### Admin panel
1. Navigate to the `/api` folder.
2. Run the `yarn dev` command to start API and admin panel in development mode
3. Log into the admin panel using the credentials created during the seeding process ([email protected] with password supersecret).#### Vendor panel
1. Navigate to the `/api` folder.
2. Run the `yarn dev:vendor` command to start vendor panel in development mode
3. Register vendor by accessing `vendor_url/register` page
4. Approve registered vendor on `Users` page in admin panel
5. Log in using vendor credentials
6. Now you can edit your vendor panel using `/vendor` folder in `src` directory [(See medusa admin quickstart)](https://docs.medusajs.com/admin/quickstart)#### Storefront Setup
1. Navigate to the `/store-front` folder.
2. Run the `yarn` command to install dependencies.
3. Create an `.env` file in the root of the project folder with the following entries:```bash
NEXT_PUBLIC_MEDUSA_BACKEND_URL=http://localhost:9000
NEXT_PUBLIC_BASE_URL=http://localhost:8000
NEXT_PUBLIC_DEFAULT_REGION=eu
REVALIDATE_SECRET=supersecret
```4. Start the storefront application:
```bash
yarn dev
```This will launch the storefront, typically available at http://localhost:8000.
#### Adding a Vendor User
To add a vendor user via the API, follow these steps:
1. Make a POST request to the endpoint `api_url/vendor/users` with the body:
```json
{
"email": "[email protected]",
"password": "vendorpassword"
}
```Replace api_url with your actual API endpoint URL, typically something like http://localhost:9000.
This will create a new vendor user in the system. Before the vendor can log in, the admin must authorize his registration in the administration panel by making his status active.
## Support Mercur ❤️
Mercur is a community-driven, open-source initiative. We are committed to keeping it free and accessible by releasing it under the MIT License.
### How to contribute:
- **Ideas:** If you have any ideas on how to develop the product further, feel free to share them with us. We're always open to new suggestions!
- **Code:** Help improve our project by contributing code or fixing bugs. We invite you to review our Contributing Guide.
- **Bug:** Encountered a bug? We encourage you to open an issue on our GitHub repository.
- **Spread the Word:** Tell others about our project. Every mention helps!
- **Create Content:** Write a post, make a video, or create a tutorial. We’ll share your work.
- **Join the Community:** Answer questions and provide support on our Discord.## Useful Links
- [Medusa Community Discord](https://discord.gg/medusajs)
- [Mercur website](https://mercurjs.com)
- [Medusa website](https://medusajs.com)
- [Medusa docs](https://docs.medusajs.com/)
- [Medusa repo](https://github.com/medusajs/medusa)## License
Licensed under the [MIT License](https://github.com/mercurjs/mercur/tree/main?tab=MIT-1-ov-file).