* feat(medusa): Implement confirm batch job end point * feat(medusa): Implement confirm batch-job end point * feat(medusa): Add create batch job end point and implementation * feat(medusa): remove cancelled related * feat(medusa): Remove unrelated content for batch job creation * feat(medusa): Cleanup migration * feat(medusa): Cleanup context * fix(medusa): Batch-job service import * feat(medusa): Update migration * test(medusa): Fix batch job tests * feat(medusa): Start batch job end point * feat(medusa): Continue end points * feat(medusa): Continue end points * feat(medusa): Finalize batch-job end points * style(medusa): Lint * feat(medusa): Cleanup * feat(medusa): Fix list-batch-job endpoint column selection * feat(medusa): Batch-job feedback * feat(medusa): Update create-batch-job endpoint doc * test(integration-tests): Fix batch-job integration reguarding the response status code * feat(medusa): Finalize rebase from develop * feat(medusa): Extend batch job status with ready_at and failed_at * feat(medusa): Update migration and tests accordingly * feat(medusa): Update status order on batchJob * feat(medusa): Enhance batchJobService status update * style(medusa): Cleanup * style(medusa): Typo * style(medusa): Remove unnecessary comment * cleanup(medusa): Address feedback * test(integration-tests): Update naming and snapshots * fix(medusa): Update validator Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> * Fix(medusa): update validator Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> * test(intergration-tests): Fix creates batch job * test(integration-tests): Fix snapshot * feat(medusa): Re-work status * tests(integration-tests): Fix batch job * feat(medusa): Addresses feedback * fix(medusa): Revert package.json script * feat(medusa/batch-job-api): Improve status management * feat(medusa): Improve batch job status and remove some context validation from the service * feat(medusa): BatchJob api merge params * feat(medusa): Apply last changes on the batch job service * Update packages/medusa/src/services/batch-job.ts Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> * feat(medusa): BatchJobStrategy and loaders (#1434) * add batch job strategy interface * update plugin loaders * remove comment * make map async * ensure that only one of each strategy is registered * register strategies plural * add identifier and batchType properties * extend batch job strategy identification method * initial test * update loaders to accomodate different ways of accessing batch job strategies * identifier batch type field * redo merge in plugins * update interface and load only js files * use switches instead of elif * remove comments * use static properties for strategy registration * update tests * fix unit tests * update test names * update isBatchJobStrategy method * add check for TransactionBaseService in services for plugins * update interfaces export * update batchjob strategy interface with a prepare script * update loaders * update batchjob strategy interface * remove everything but public interface methods from batchJobStrategy * add default implementation to prepareBathJobForProcessing * remove unused import * docs: Add Services reference (#1548) * added events reference * add upgrade guide for 1.3.0 * Update 1-3-0.md * merge 1.3.0 with 1.3.1 * rename to 1.3.0 * added paypal documentation * Improve storefront quickstart documents * chore(deps): bump sqlite3 from 5.0.2 to 5.0.3 (#1453) Bumps [sqlite3](https://github.com/TryGhost/node-sqlite3) from 5.0.2 to 5.0.3. - [Release notes](https://github.com/TryGhost/node-sqlite3/releases) - [Changelog](https://github.com/TryGhost/node-sqlite3/blob/master/CHANGELOG.md) - [Commits](https://github.com/TryGhost/node-sqlite3/compare/v5.0.2...v5.0.3) * fix: Issue with cache in CI pipeline Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> Co-authored-by: Shahed Nasser <shahednasser@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Medusa
Medusa Admin | Website | Blog | LinkedIn | Twitter | Documentation | Notion
Medusa is an open-source headless commerce engine that enables developers to create amazing digital commerce experiences.
Quickstart
- Install Medusa CLI
npm install -g @medusajs/medusa-cli - Create a new Medusa project
medusa new my-medusa-store --seed - Start your Medusa engine
medusa develop - Use the API
curl localhost:9000/store/products | python -m json.tool
We have a prebuilt admin dashboard that you can use to configure and manage your store find it here: Medusa Admin
After these four steps and only a couple of minutes, you now have a complete commerce engine running locally. You may now explore the documentation to learn how to interact with the Medusa API. You may also add plugins to your Medusa store by specifying them in your medusa-config.js file.
Roadmap 2022
Write-ups for all features will be made available in Github discussions prior to starting the implementation process.
H1 2022
- Admin revamp
- Tax API
- Tax Calculation Strategy
- Cart Calculation Strategy
- Customer Groups API
- Promotions API
- Price Lists API
- Price Selection Strategy
- Bulk import / export
- Extended Product API (custom fields, publishing control, and more)
- Extended Order API (managing placed orders, improved inventory control, and more)
- Sales Channel API
- Multi-warehouse support
- GraphQL API
Setting up a storefront for your Medusa project
Medusa is a headless commerce engine which means that it can be used for any type of digital commerce experience - you may use it as the backend for an app, a voice application, social commerce experiences or a traditional e-commerce website, you may even want to integrate Medusa into your own software to enable commerce functionality. All of these are use cases that Medusa supports - to learn more read the documentation or reach out.
To provide a quick way to get you started with a storefront install one of our traditional e-commerce starters:
- Gatsby Starter
npm install -g gatsby-cli gatsby new my-medusa-storefront https://github.com/medusajs/gatsby-starter-medusa - Nextjs Starter
npx create-next-app -e https://github.com/medusajs/nextjs-starter-medusa my-medusa-storefront
With your starter and your Medusa store running you can open http://localhost:8000 (for Gatsby) or http://localhost:3000 (for Nextjs) in your browser and view the products in your store, build a cart, add shipping details and pay and complete an order.
Features
Medusa comes with a set of building blocks that allow you to create amazing digital commerce experiences, below is a list of some of the features that Medusa come with out of the box:
- Headless: Medusa is a highly customizable commerce API which means that you may use any presentation layer such as a website, app, chatbots, etc.
- Regions allow you to specify currencies, payment providers, shipping providers, tax rates and more for one or more countries for truly international sales.
- Orders come with all the functionality necessary to perform powerful customer service operations with ease.
- Carts allow customers to collect products for purchase, add shipping details and complete payments.
- Products come with relevant fields for customs, stock keeping and sales. Medusa supports multiple options and unlimited variants.
- Swaps allow customers to exchange products after purchase (e.g. for incorrect sizes). Accounting, payment and fulfillment plugins handle all the tedious work for you for automated customer service.
- Claims can be created if customers experience problems with one of their products. Plugins make sure to automate sending out replacements, handling refunds and collecting valuable data for analysis.
- Returns allow customers to send back products and can be configured to function in a 100% automated flow through accounting and payment plugins.
- Fulfillment API makes it easy to integrate with any fulfillment provider by creating fulfillment plugins, check the
/packagesdirectory for a full list of plugins. - Payments API makes it easy to integrate with any payment provider by creating payment plugins, we already support Stripe, Paypal and Klarna.
- Notification API allow integrations with email providers, chatbots, Slack channels, etc.
- Customer Login to give customers a way of managing their data, viewing their orders and saving payment details.
- Shipping Options & Profiles enable powerful rules for free shipping limits, multiple fulfillment methods and more.
- Medusa's Plugin Architecture makes it intuitive and easy to manage your integrations, switch providers and grow with ease.
- Customization is supported for those special use cases that all the other e-commerce platforms can't accommodate.
Database support
In production Medusa requires Postgres and Redis, but SQLite is supported for development and testing purposes. If you plan on using Medusa for a project it is recommended that you install Postgres and Redis on your dev machine.
To use Postgres and Redis you should provide a database_url and redis_url in your medusa-config.js.
Contribution
Medusa is all about the community. Therefore, we would love for you to help us build the most robust and powerful commerce engine on the market. Whether it is fixing bugs, improving our documentation or simply spreading the word, please feel free to join in. Please check our contribution guide for further details about how to contribute.
Repository structure
The Medusa repository is a mono-repository managed using Lerna. Lerna allows us to have all Medusa packages in one place, and still distribute them as separate NPM packages.
Licensed
Licensed under the MIT License