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 強調可組合性和模組化。
已知坑
- 不支援 Serverless:依賴 Bull 佇列和 Redis,需常駐程序,無法部署到 AWS Lambda 等 FaaS 平臺
- 學習曲線陡峭:不是開箱即用的店鋪,需理解架構設計(依賴注入、事件系統)才能高效開發
- 中文資源匱乏:官方文件全英文,社群主要在 Discord(需梯子),國內開發者需自行摸索
- 資料庫繫結 PostgreSQL:不支援 MySQL 等其他關係型資料庫
- 生態相對年輕:雖有官方整合,但第三方外掛數量遠不及 Shopify/WooCommerce,部分需求需自行開發
來源: GitHub 倉庫 + Hacker News 討論
安装方式:npm