{"id":13402939,"url":"https://github.com/reactioncommerce/reaction","last_synced_at":"2025-05-13T15:02:53.188Z","repository":{"id":10686810,"uuid":"12926963","full_name":"reactioncommerce/reaction","owner":"reactioncommerce","description":"Mailchimp Open Commerce is an API-first, headless commerce platform built using Node.js, React, GraphQL. Deployed via Docker and Kubernetes. ","archived":false,"fork":false,"pushed_at":"2024-01-19T02:11:39.000Z","size":112678,"stargazers_count":12419,"open_issues_count":109,"forks_count":2181,"subscribers_count":422,"default_branch":"trunk","last_synced_at":"2025-05-05T22:16:48.661Z","etag":null,"topics":["cart","commerce","docker","e-commerce","ecommerce","ecommerce-platform","graphql","hacktoberfest","headless","javascript","marketplace","mongodb","reaction-action","reactioncommerce","shop","storefront"],"latest_commit_sha":null,"homepage":"https://mailchimp.com/developer/open-commerce/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reactioncommerce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2013-09-18T15:30:36.000Z","updated_at":"2025-05-05T05:03:31.000Z","dependencies_parsed_at":"2023-02-19T14:45:59.390Z","dependency_job_id":"54b8b126-65d5-4f48-a008-b2b7a1a3ed06","html_url":"https://github.com/reactioncommerce/reaction","commit_stats":{"total_commits":15928,"total_committers":251,"mean_commits":63.45816733067729,"dds":0.872865394274234,"last_synced_commit":"ecb8ef62d8312ed62cb05da64bec1a86fe0b188d"},"previous_names":[],"tags_count":309,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactioncommerce","download_url":"https://codeload.github.com/reactioncommerce/reaction/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253206087,"owners_count":21871158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cart","commerce","docker","e-commerce","ecommerce","ecommerce-platform","graphql","hacktoberfest","headless","javascript","marketplace","mongodb","reaction-action","reactioncommerce","shop","storefront"],"created_at":"2024-07-30T19:01:23.147Z","updated_at":"2025-05-13T15:02:53.120Z","avatar_url":"https://github.com/reactioncommerce.png","language":"JavaScript","readme":"\u003ch1 align=\"center\"\u003e\n  Mailchimp Open Commerce (formerly Reaction Commerce)\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\n  \u003ca href=\"https://mailchimp.com/developer/open-commerce/\"\u003eOpen Commerce Website\u003c/a\u003e |\n  \u003ca href=\"https://twitter.com/getreaction\"\u003eTwitter\u003c/a\u003e |\n  \u003ca href=\"https://mailchimp.com/developer/open-commerce/\"\u003eDocumentation\u003c/a\u003e |\n  \u003ca href=\"https://discord.gg/Bwm63tBcQY\"\u003eDiscord\u003c/a\u003e |\n  \u003ca href=\"https://github.com/reactioncommerce/reaction/discussions\"\u003eDiscussions\u003c/a\u003e\n\u003c/h4\u003e\n\n[Mailchimp Open Commerce](https://mailchimp.com/developer/open-commerce/) is an API-first, headless commerce platform built using Node.js, MongoDB, and GraphQL. It plays nicely with npm, Docker and Kubernetes.\n\n![MOC Admin](https://user-images.githubusercontent.com/20409254/61161477-bb033c80-a4b8-11e9-9c5e-4f4f6a68b8d0.png)\n\n\n# Features\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eFast\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eReturns data in split seconds, and faster queries mean faster web pages\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eProven\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eOpen Commerce fuels sites doing 10's of thousands of orders per day with 100's of thousands of products\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eComposable\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eA flexible plugin system allows you to pick and choose which integrations work best for you\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eMulti-tenant\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eHost multiple shops in the same installation\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eScalable\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eStart out with a single server and scale up to hundreds\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eFlexible Products\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eAllows Products, with options and variants to fit a wide variety of needs\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eInventory\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eTrack inventory, allow or disallow backorders and more\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eShipping\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eIntegrate with a shipping rate provider or build your own custom table\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eTaxes\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eIntegrate with a tax rate provider or build your own custom tax table\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eFulfillment\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eFlexible fulfillment system allows you create your own fulfillment methods\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eOrder Tracking\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eView and manage your orders in the included admin system\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eEmails\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eCustomizable templates for Order confirmations and more\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eOpen\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003eFully open source. Never be locked in again\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n\n# Getting started\n\nTo start working with your own project built on Mailchimp Open Commerce you can start by using our new CLI. The CLI is \nthe quickest and easiest way to develop on Open Commerce. It allows you to create and work with API, Admin, and Storefront projects all via the command line.\n\n## What you need\n- We recommend installing [nvm](https://github.com/nvm-sh/nvm)\n- [14.18.1 ≤ Node version \u003c 16](https://nodejs.org/ja/blog/release/v14.18.1/)\n- [Git](https://git-scm.com/)\n- [Docker](https://www.docker.com/get-started/)\n- [Docker Compose](https://docs.docker.com/compose/)\n\n  In addition, you need to have your system setup for [SSH authentication with GitHub](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)\n\n## Install the CLI\nFirst install the cli by running:\n```\nnpm install -g reaction-cli\n```\n\nYou can test to see if it has worked here by running:\n\n```\nreaction help\n```\n\n## Creating a project\n\nYou can create your Open Commerce project by running:\n```\nreaction create-project api \u003cyour-project-name\u003e\n ```\nThis will create an Open Commerce project in the directory \u003cyour-project-name\u003e.\nOnce this is complete, navigate to the project directory:\n```\ncd \u003cyour-project-name\u003e \n ```\nInstall the project dependencies:\n```\nnpm install \n```\nFinally, start the server in development mode:\n```\nreaction develop api\n  ```\n\nNote: Optionally, from within the project-directory you may issue the above command without mentioning the project type and the CLI would check your package.json for the \"projectType\" and pick it up from there. This expects that the project itself was built using the latest version of the CLI as explained in the above steps.\n\nExample, instead of the above command, you may skip mentioning 'api' and just use:\n  ```\n  reaction develop\n  ```\n\nThis will start the Open Commerce GraphQL server and Mongo Server. Press Ctrl+C to stop.\n\n- A sample custom plugin has been installed, and you should see its output in the logs. (Your Sample Plugin)\n- To add a new plugin based on our plugin template run:\n```\nreaction create-plugin api \u003cyour-plugin-name\u003e\n```\nValidate whether the plugin was created in the `custom-packages`\n```\ncd custom-packages\n```\n``` \ncd \u003cyour-plugin-name\u003e\n```\n```\nnpm install \n```\nYou now need to change back up to the root:\n```\ncd ../../\n```\nnow you can run:\n```\nreaction develop\n```\nThis plugin will now be loaded the next time you start Open Commerce.\n\n### Congratulations!! You're ready to start developing with Open Commerce\n\nSee the [Complete CLI instructions](https://github.com/reactioncommerce/cli) for how to create your local storefront and admin.\n\n\nGo to the complete [installation instructions](https://mailchimp.com/developer/open-commerce/guides/quick-start/#access-the-dashboard-playground-and-storefront) to see how to set up your store\n\n# API development\nIf you are working on core plugins (not developing plugins for your own installation) you should follow these \ninstructions\n\n## What you need\n\n- [pnpm](https://pnpm.io/)\n- [Docker](https://www.docker.com/get-started/)\n- [Docker Compose](https://docs.docker.com/compose/)\n\n## Install PNPM\n```bash\nnpm i -g pnpm@7.11.0\n```\n\n## Clone and Start the source\n\n```bash\ngit clone https://github.com/reactioncommerce/reaction.git\ncd reaction\npnpm install\ncp apps/reaction/.env.example apps/reaction/.env\n```\n\nStart dev-server with mongo on local:\n\n```bash\n## you must change MONGO_URL in the .env to mongodb://localhost:27017/reaction before start\npnpm run start:dev\n```\n\nStart dev-server with mongodb on docker\n\n```bash\ndocker-compose up -d\npnpm run start:dev\n```\n\n## Development Flow\n\n1. Make some changes in one or more packages.\n2. [Add a changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) in that same PR.\n3. Repeat the process of making changes and adding changesets.\n4. Create PR\n\n## How to release\n\n1. Run `release` action to create `Version PR`. This PR will remove all changeset files, bump up packages versions, update CHANGELOG files.\n2. Merge `Version PR` into trunk, CircleCI will publish all the packages into npm.\n\n## Prerelease flows\n1. All PRs will be merged into `prerelease` branch before triggering `PRERELEASE` action.\n2. Before merging PRs into `prerelease` branch, please make sure that all the changesets are added.\n3. Manually trigger `PRERELEASE` action to create `Version Packages (next)` PR. After merged, the changeset/action will bump up packages versions as `{next-version}-next.{number}`, update CHANGELOG files.\n4. Merge `Version Packages (next)` PR into `prerelease` branch, action will publish all the packages into npm.\n\n# Get involved\n## Contribute\n\n:star: If you like what you see, star us on GitHub.\n\nFind a bug, a typo, or something that’s not documented well? We’d love for you to [open an issue](https://github.com/reactioncommerce/reaction/issues) telling us what we can improve! This project uses [commitlint](https://commitlint.js.org/), please use their [commit message format](https://www.conventionalcommits.org/en/v1.0.0/#summary).\n\nWe love your pull requests! Check out our [`Good First Issue`](https://github.com/reactioncommerce/reaction/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) and [`Help Wanted`](https://github.com/reactioncommerce/reaction/issues?q=label%3A%22help+wanted%22) tags for good issues to tackle.\nCheck out our [contributors guide](CONTRIBUTING.md) for more information\n\n### License\n\nReaction is [GNU GPLv3 Licensed](./LICENSE.md)\n","funding_links":[],"categories":["JavaScript","Javascript","Meteor","Uncategorized","eCommerce","Node-Powered CMS Frameworks","前端开发框架及项目","Applications","Node-Powered CMS Frameworks [🔝](#readme)","mongodb","docker","基于 Node 的 CMS 框架"],"sub_categories":["Ruby on Rails","Uncategorized","Runner","其他_文本生成、文本对话","General","Web","运行器","运行器e2e测试"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactioncommerce%2Freaction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactioncommerce%2Freaction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactioncommerce%2Freaction/lists"}