35,336· 4,970 forks· TypeScript· MIT开源替代

Medusa - 开源电商平台与可组合商业框架

medusajs/medusa

面向开发者的可组合电商平台,提供商业逻辑基础模块,支持定制化构建 B2B/DTC/市场平台等复杂商业场景,MIT 协议开源

成熟度维护活跃,最新版本发布于1天前,534位贡献者,66个开放议题

项目体检

许可 · MIT 协议,允许商用且无限制

活跃 · 最新版本 v2.18.0 发布于1天前,534位贡献者参与,活跃维护中

解决什么

传统电商平台(如 Shopify)提供开箱即用的店铺功能,但深度定制受限于平台规则。Medusa 换了一个思路:不提供完整店铺,而是提供商业逻辑的基础模块(商品管理、订单处理、支付集成、库存系统等),让开发者像搭积木一样组装出符合业务需求的电商系统。适用于需要复杂业务逻辑的场景——B2B 批发平台、多租户市场、分销网络、POS 系统、订阅服务等,这些场景用 SaaS 平台很难满足,自研又要重复造轮子。

为何火

在 3.5 万+ stars 背后,Medusa 抓住了"可组合商业"(Composable Commerce)趋势:企业不想被单一平台锁定,希望用开源模块自由组合技术栈。项目采用 TypeScript + Node.js 构建,提供依赖注入框架(Alix)让开发者能扩展核心服务,所有商业模块以 npm 包形式发布可独立使用。官方推出 Medusa Cloud 托管服务降低运维门槛,同时保持代码完全开源(MIT 协议),这种"开源核心+商业托管"模式吸引了既要灵活性又要省心的企业客户。

核心功能

  • 商业模块库:开箱即用的商品目录、购物车、订单管理、多币种定价、库存追踪等模块
  • 可扩展架构:通过插件系统添加自定义实体、服务和 API 端点,无需修改核心代码
  • 多渠道支持:同一后端支持 Web 商城、移动 App、POS 终端等多种前端
  • 集成生态:官方维护支付(Stripe/PayPal)、物流、CMS、分析工具等集成插件
  • 后台管理:提供 React 构建的管理界面,可定制化扩展
  • API 优先:RESTful 和 GraphQL 接口,方便前后端分离开发

安装

需要 Node.js 18+ 和 PostgreSQL 数据库。通过官方 CLI 创建项目:

npx create-medusa-app@latest

会自动初始化后端、管理界面和示例店铺前端。本地开发需配置数据库连接和 Redis(用于后台任务队列)。生产环境建议使用官方 Medusa Cloud 或自行部署到支持 Node.js 的服务器(如 Railway、DigitalOcean)。

适合谁

  • 需要深度定制的电商项目:标准 SaaS 平台无法满足业务逻辑(如复杂定价规则、多级分销)
  • 全栈开发团队:熟悉 TypeScript/Node.js,有能力维护和扩展后端代码
  • 多业态商业平台:市场平台(多商家)、订阅服务、B2B 批发等非标准零售场景
  • 注重数据主权的企业:希望自托管而非依赖第三方 SaaS

不适合:缺乏开发资源的小商家(直接用 Shopify 更省事)、需要极低延迟的高并发场景(架构基于 Bull 队列的异步任务)。

社区评价

基于 HN 讨论(33 点赞,5 条评论),开发者关注两个核心问题:

多租户支持:有用户询问能否构建多租户 SaaS。官方回复目前不原生支持,但架构允许社区成员通过自定义实体和服务实现,依赖注入机制让所有核心服务可在插件中复用。

无服务器部署:有人问能否部署到 Serverless 环境。官方坦承当前不支持,因为后台任务依赖 Bull 队列处理(如订单确认邮件、库存同步),这些任务可能超出单次请求生命周期。要支持 Serverless 需重构任务处理机制以适配冷启动。

整体评价偏正面,认可架构灵活性,但也指出对运维能力有要求(需常驻进程处理队列任务)。

选型对比

vs Shopify:Shopify 是托管 SaaS,5 分钟开店但定制受限(主题+App 生态);Medusa 是自托管框架,需开发团队但定制无上限。Shopify 按交易抽成,Medusa 开源免费(托管服务另付费)。

vs WooCommerce:WooCommerce 基于 WordPress/PHP,插件生态庞大但性能受限;Medusa 现代技术栈(TypeScript/React),API 优先适合前后端分离,但生态不如前者成熟。

vs Saleor(另一开源电商):Saleor 用 Python/Django + GraphQL,Medusa 用 Node.js + REST/GraphQL。Saleor 更侧重 B2C,Medusa 强调可组合性和模块化。

已知坑

  1. 不支持 Serverless:依赖 Bull 队列和 Redis,需常驻进程,无法部署到 AWS Lambda 等 FaaS 平台
  2. 学习曲线陡峭:不是开箱即用的店铺,需理解架构设计(依赖注入、事件系统)才能高效开发
  3. 中文资源匮乏:官方文档全英文,社区主要在 Discord(需梯子),国内开发者需自行摸索
  4. 数据库绑定 PostgreSQL:不支持 MySQL 等其他关系型数据库
  5. 生态相对年轻:虽有官方集成,但第三方插件数量远不及 Shopify/WooCommerce,部分需求需自行开发

来源: GitHub 仓库 + Hacker News 讨论

安装方式:npm