Strapi 的开源 Node.js 商务引擎

2025-06-09

Strapi 的开源 Node.js 商务引擎

使用MedusaStrapi为您的商务设置提供完整的开源无头解决方案。近年来,在构建电商、博客、产品组合等内容时,采用无头架构越来越流行。它带来诸多优势,包括提升性能、增强可定制性,以及随着业务增长而扩展的支持。

无头系统本质上是展示层和后端的解耦。它摒弃了传统的专有前端来展示内容(因此得名),而是提供 Rest API,让你可以从任何系统、客户端或服务中使用。

在构建设置时采用无头方法将为您提供一个模块化系统,该系统在您的堆栈的每个特定领域(CMS、电子商务等)中提供最佳服务。这与您传统上选择部分(或几乎)满足您所有需求的单片平台的方式形成对比。

本文将指导您设置无头电子商务设置,其中内容由Strapi管理,电子商务由Medusa提供支持- 基于 100% 开源堆栈。

为什么是 Medusa,为什么是 Strapi?

无头电商系统的瓶颈通常在于启动和维护所需的资源量。您需要后端开发人员来处理基础设施和集成,以及前端开发人员来构建客户体验。这也是许多现有无头电商解决方案专注于企业业务的原因之一。为了让中小型企业能够进入这个领域,必须满足开发人员的体验需求。如果入门、设置和实施流程都易于理解,您就不再需要一个十人团队来构建可扩展的电商系统。

Strapi 和 Medusa 是两个主要为开发人员构建的系统,两者的结合使您能够构建一个具有极快的速度、内容丰富的前端和高度可扩展的后端的电子商务商店。

这两个项目都是开源的、无头的,并且使用 Node.js 构建。它们在插件和自定义方面采用非常相似的架构,让您能够扩展您的商务和 CMS,以完全满足您的需求。现在,让我们深入了解这两个项目的安装和设置。

安装

以下插件设置指南假设您熟悉 Strapi 和 Medusa。如果不是,请访问MedusaStrapi 的官方文档。

设置 Medusa

首先,使用你最喜欢的包管理器创建一个 Medusa 项目。你可以用两种方式创建:

使用npx
npx create-medusa-app将允许您在单个命令中创建 Medusa 商店引擎、店面和 Medusa 管理员

# using npx
npx create-medusa-app

# using yarn
yarn create medusa-app
Enter fullscreen mode Exit fullscreen mode

在设置过程中npx,您将看到不同的商店引擎选项。在本 Strapi 教程中,您应该选择medusa-starter-default。您也可以选择店面。

使用medusa-cli
@medusajs/medusa-cli我们的命令行工具创建 Medusa 商店引擎(以及许多其他强大的命令)。使用方法如下:

# using yarn
yarn global add @medusajs/medusa-cli

# using npm
npm install -g @medusajs/medusa-cli

# initialise a Medusa project
medusa new my-medusa-store
Enter fullscreen mode Exit fullscreen mode

Medusa 使用 Redis 在系统中发出事件,因此请确保已安装并正在运行

$ redis-cli
127.0.0.1:6379> ping
PONG
Enter fullscreen mode Exit fullscreen mode

然后medusa-config.js你应该启用它。文件底部的项目配置应该类似于以下内容:

projectConfig: {
  redis_url: REDIS_URL,
  database_database: "./medusa-db.sql",
  database_type: "sqlite",
  store_cors: STORE_CORS,
  admin_cors: ADMIN_CORS,
},
Enter fullscreen mode Exit fullscreen mode

此外,将 Strapi 添加到您的插件列表中:

{
  resolve: `medusa-plugin-strapi`,
  options: {
    strapi_medusa_user: 'medusa_user',
    strapi_medusa_password: 'medusaPassword1',
    strapi_url: '127.0.0.1',
    strapi_port: '1337'
  }
}
Enter fullscreen mode Exit fullscreen mode

最后,使用包管理器安装插件:

#using yarn
yarn add medusa-plugin-strapi

# using npm
npm install medusa-plugin-strapi
Enter fullscreen mode Exit fullscreen mode

现在您已成功安装并配置了 Medusa 存储引擎。为其添加数据并运行以下命令启动它:

# using npm
npm run seed && npm start

# using yarn
yarn seed && yarn start
Enter fullscreen mode Exit fullscreen mode

现在我们来谈谈 Strapi 方面的事情。

设置 Strapi

与安装 Medusa 的方式类似,您可以使用自己喜欢的包管理器安装 Strapi。使用strapi-medusa-template创建项目。模板是两个系统协同工作所需的自定义 Strapi 实现。

# using npx
npx create-strapi-app strapi-medusa --template https://github.com/Deathwish98/strapi-medusa-template.git

# using yarn
yarn create strapi-app strapi-medusa --template https://github.com/Deathwish98/strapi-medusa-template.git
Enter fullscreen mode Exit fullscreen mode

运行该命令后,您将拥有一个完整的 Strapi 项目,并已配置为与 Medusa 同步。Strapi 服务器首次启动时,所有必需的模型都将被创建。它们将与 Medusa 中的模型关联,以实现双向同步。

注意:Strapi 模板启动器使用 SQLite 作为默认数据库。已知存在一个与knex.js此相关的错误,该错误源于多个写入连接。重启 Strapi 服务器应该可以解决该错误。

同步

Strapi 与 Medusa 结合使用的强大之处在于双向同步。Strapi 允许您使用额外的字段和数据来丰富您的产品,从而完善客户体验。但是,要使产品显示在 Strapi 中,您需要在 Medusa 中创建它们。为了使展示层中的商务逻辑正常运行,您需要产品和变体的 Medusa ID。这将用于诸如添加到购物车和完成结账流程等操作。

在 Medusa 中创建产品时,双向通信可确保两个系统之间的数据保持一致。不过,只有部分字段是同步的,例如:

产品:标题、副标题、描述、句柄
变体:标题
地区:名称

未来预计将引入对更多实体同步的支持

在 Medusa 中使用 Postgres(可选)

要使 Postgres 正常运行,您需要创建一个本地数据库。一种方法是使用您的终端:

createdb medusa-store 
Enter fullscreen mode Exit fullscreen mode

根据您所使用的系统以及本地 Postgres 的配置,上述命令可能会失败。在这种情况下,请研究如何在您的电脑上创建本地数据库。

导航到您新创建的 Medusa 项目(<project name>/backend如果您使用了npx)。在 中medusa-config.js,确保已启用 Redis 和 Postgres。文件底部的项目配置应类似于以下内容:

projectConfig: {
  redis_url: REDIS_URL,
  database_url: DATABASE_URL,
  database_type: "postgres",
  store_cors: STORE_CORS,
  admin_cors: ADMIN_CORS,
},
Enter fullscreen mode Exit fullscreen mode

注意:DATABASE_URL变量应使用上一步创建的 Postgres 数据库

总结和后续步骤

现在,您将获得一个工具箱,用于在高度可扩展的 CMS 系统和电子商务平台上创建令人惊叹的数字商务体验。

要快速开始,请参阅我们的入门指南:

非常感谢社区成员 Pawan Sharma ( Deathwish98 ) 领导了此次与 Strapi 集成的实现。如果您想加入 Medusa 社区,欢迎加入我们的Discord 频道

鏂囩珷鏉ユ簮锛�https://dev.to/medusajs/open-source-nodejs-commerce-engine-for-strapi-259p
PREV
电子商务的历史:1979 年至 2023 年
NEXT
开源电商——Medusa 与 Shopify 的对比