Skip to content

Latest commit

 

History

History
233 lines (163 loc) · 14.1 KB

README.md

File metadata and controls

233 lines (163 loc) · 14.1 KB

Medusa-extender logo

medusa-extender

Downloads per month NPM Version Dependencies Contributors Awesome medusajs Documentation Twitter Discord Npm download Activity Issues Licence Contributing Test pipeline status Page build deployment status CodeQL security analysis status Codacy code quality Product hunt

💉 Medusa on steroid, take your medusa project to the next level with some badass features 🚀
Fully customisable medusa, create custom fields in any entity, implement your own feature or extend existing one in a minutes, make your own architecture or choose the modular architecture provided. Build a store, marketplace, media store and anything you want to do you can do it. Enjoy the full power of Medusa with extra badass features 🚀


Buy Me A Coffee

-----------------------------------------------------

Table of Contents

-----------------------------------------------------

Introduction

Medusa is an open source headless commerce platform that allows you to create your own store in a matter of minutes. Part of what makes Medusa a good choice for your ecommerce store is its extensibility. Now, it is also possible to create multi-vendor marketplaces using Medusa.

👉 And here is why I've done that package for medusa

"I've been looking for an e-commerce solution that could provide me with some core features while being fully customisable... After some research, where I found that none of the present solutions could provide what I needed, I chose Medusa as it provided me with many of the needed features while being easy to extend. I ended up loving the community atmosphere, especially the proximity with the team, and have been helping those in the community looking for a similar fully-customisable solution by sharing a part of my private project. This is how the medusa-extender was born." — Adrien de Peretti

-----------------------------------------------------

Getting started 🚀

Depending on your situation, pick the right getting started section.

Existing medusa project

In that case, you must already have scaffold a new medusa store project. If that's not the case you can follow the tutorial here.

Run the following command in your terminal (The last version is 1.5.5)

npm install medusa-extender
./node_modules/.bin/medex init

That's it, you are now ready to run your server 🚀

From server starter

You can directly clone the starters/server to get started quickly.

First, update your medusa-config.js accordingly to your needs.

Then, follow the next command to be ready in minutes

npx degit github:adrien2p/medusa-extender/starters/server#main server
cd server
npm i
npm run build
npm run start

That's it, your server is now up and running 🚀

-----------------------------------------------------

CLI medex

To install the cli globally instead of using the local one, you can run the following command

npm i -g medusa-extender

To make things easier for you, the project comes with a CLI that allow you to generate any component with minimum code implementation and also to be able to run the migrations and show the list of applied and to be applied migrations.

To see more about the usage and references, click here to see the documentation

-----------------------------------------------------

Features 🧐

-----------------------------------------------------

Non exhaustive list

Here is a list of the features that you can find in that package

All those features aims to help you build what you want such as

  • Creating and managing a marketplace
  • Creating a media store to sell nft - video - images - keys - etc.
  • And basically create whatever you want on top of @medusajs

Share your code

  • Build shareable modules/plugins to use across your project or to share with the community

-----------------------------------------------------

Directory Architecture

Using this package also allow you to manage your architecture as you want. you will not be limited by any constraint as long as the component are decorated and the modules are referenced into the main file to be loaded, everything is fine. That means that you can go for a modular architecture and decoupled your code depending on your domains.

Here is the proposed folder structure that you can add to your medusa project

.
├── ...
├── src                                 # Here are located all the files that make your application
│   ├── modules                         # Where you can put all your modules using the medusa-extender
|       ├── Module1
|           ├── module1.entity.ts
|           ├── module1.migration.ts
|           ├── module1.service.ts
|           ├── module1.repository.ts
|           ├── module1.middleware.ts
|           ├── module1.module.ts       # This is where the above components are referenced
|           ├── ...
|       ├── Module2
|           ├── ...
|       ├── Module3
|           ├── ...
│   ├── main.ts                         # this is where the magic happen and your modules will be passed to the load method
└── ...

-----------------------------------------------------

Discussions

If you are interesting to participate in any discussions you can follow that links

-----------------------------------------------------

Resources

Here are some resources that are using the medusa-extender, more of them will come in time 🚀.

Marketplace tutorial

Here is a tutorial repository that will be followed by a series of article to guide you through the process of creating your marketplace using @medusajs and the medusa-extender.

Here is the link to the Marketplace tutorial repo and Here is the link to the Marketplace tutorial plugin

Here is the first tutorial using the medusa-extender package, Open source ecommerce platform for multi-vendor marketplaces

-----------------------------------------------------

Like my work? 💓

This project needs a ⭐ from you. Don't forget to leave a star ⭐. If you found the package helpful consider supporting me with a coffee

Buy Me A Coffee

-----------------------------------------------------

Contribute

Contributions are welcome! You can look at the contribution guidelines