本文主要介绍如何基于 WordPress 平台,将 WooCommerce 与 Gatsby 框架结合,构建高性能的电商网站。在这个架构中,WordPress 作为内容管理系统的核心,WooCommerce 提供电商功能,Gatsby 负责性能优化。通过这种组合,您可以同时获得 WordPress 的内容管理能力、WooCommerce 的电商功能以及Gatsby 的性能优势,为您的客户提供更好的购物体验。本文将详细介绍如何实现 WordPress + WooCommerce 与 Gatsby 的集成,以及如何通过 EdgeOne Pages进行部署和加速。
快速入门
EdgeOne提供了完整的 WordPress + WooCommerce + Gatsby 集成方案,您只需要下载并配置数据库即可快速部署:
下载这两个模板并按照说明部署,即可快速搭建电商网站。
WooCommerce 集成主要包含以下三个步骤:配置 WordPress 和 WooCommerce、使用 Gatsby 生成静态页面、部署到 EdgeOne Pages。您可以按照下文的步骤手动配置。
配置 WordPress 和 WooCommerce
您可以通过以下两种方式配置 WordPress 和 WooCommerce:
方式一:自行部署 WordPress(本文推荐的方式)
EdgeOne 提供了一个预配置好的 WordPress + WooCommerce Docker 模板,让您能够快速完成自行部署。这个模板已经集成了 MySQL 数据库和配置好的WooCommerce,并且预装了以下必要的插件:
Advanced Custom Fields - 用于自定义字段管理。
WooCommerce - 电商功能核心。
JWT Authentication for WP-API - REST API 认证。
WPGraphQL - GraphQL API 支持。
WPGraphQL for ACF - ACF 的 GraphQL 支持。
WPGraphQL for WooCommerce (WooGraphQL) - WooCommerce的GraphQL 支持。
WPGraphQL JWT Authentication - GraphQL API 认证。
首先,克隆项目到本地:
git clone https://github.com/TencentEdgeOne/wp-ecommerce-docker-demo.gitcd wp-ecommerce-docker-demo
如果您需要在部署机器上进行本地验证,需要在项目根目录创建
.env 文件并配置以下环境变量:# 数据库配置WORDPRESS_DB_PASSWORD=wordpress123MYSQL_ROOT_PASSWORD=somewordpressMYSQL_PASSWORD=wordpress123# GraphQL认证配置GRAPHQL_JWT_AUTH_SECRET_KEY=your-hwt-auth-secret-key# 站点配置WP_HOME_URL=http://localhost # 替换为您的站点URLWP_DOMAIN=localhost # 替换为您的站点域名WP_HOST=80 # 替换为您的站点端口
配置完成后,使用 Docker 启动项目:
docker-compose up -d
服务启动完成后,您可以通过访问
http://your.site.ip/wp-admin/admin.php 进入 WordPress 管理界面。注意:
此模板已预装 MySQL 数据库和配置好的 WooCommerce,无需额外配置。首次登录后请及时修改默认密码。
核心
在 WordPress 后台,您需要创建以下三个页面:
highlight - 用于展示特色产品。promotion - 用于展示促销活动。sample-page - 用于展示示例内容。

创建页面后,需要配置 Advanced Custom Fields:
进入 WordPress 后台的“自定义字段”菜单。
单击“Tools”标签。
在“Import Field Groups”部分,选择并上传
acf-export-2025-02-13.json文件(该文件位于 wp-ecommerce-docker-demo 模板项目的wordpress-data目录下)。

1. 单击Import完成导入。
2. 导入完成后,进入“Field Groups”标签。
3. 将导入的字段组与对应的页面类型进行关联配置。


完成 ACF 配置后,您需要将 Field Group 配置到相应的页面上,我们按名称对应即可,这样页面才能使用这些自定义字段。
接下来,让我们配置 WooCommerce 的商品数据。登录 WordPress 管理界面后,点击左侧菜单的“WooCommerce”,进入 WooCommerce 管理控制台。在这里,您可以看到所有需要配置的数据项:


由于我们使用 WordPress 主要是为了提供数据接口,而前端页面将通过 Gatsby 项目来实现,因此您可以跳过“Customize your store”(自定义商店)的配置。请重点关注产品、订单、支付等基础功能的配置。如果您对 WooCommerce的 具体配置有疑问,可以参见 WooCommerce 官方文档。
这里我们不对数据配置的具体细节作详细说明,您可以根据自己的需求在 WooCommerce 管理界面中进行配置。
数据验证
配置完成后,我们需要验证 WordPress 和 WooCommerce 的 API 是否能正常提供数据。由于我们已经安装了 WPGraphQL 和 WooGraphQL 插件,这里使用GraphQL 方式进行数据验证。
1. WordPress 数据验证
query GetPages {pages(first: 1) {nodes {idtitlecontentacf {hero_titlehero_descriptionfeatured_products}}}}
示例返回数据:
{"data": {"pages": {"nodes": [{"id": "cGFnZS8x","title": "Highlight","content": "页面内容...","acf": {"hero_title": "Welcome to Our Store","hero_description": "Discover our featured products","featured_products": [1, 2, 3]}}]}}}
2. WooCommerce 数据验证
query GetProducts {products(first: 1) {nodes {idnametypestatuspriceregularPricesalePricedescriptionimages {nodes {idsourceUrlaltText}}categories {nodes {idnameslug}}}}}
示例返回数据:
{"data": {"products": {"nodes": [{"id": "cHJvZHVjdC8x","name": "Premium Headphones","type": "SIMPLE","status": "PUBLISH","price": "199.99","regularPrice": "249.99","salePrice": "199.99","description": "High-quality wireless headphones with noise cancellation.","images": {"nodes": [{"id": "cG9zdC8y","sourceUrl": "https://your-store.com/wp-content/uploads/headphones.jpg","altText": "Premium Headphones"}]},"categories": {"nodes": [{"id": "Y2F0ZWdvcnkvMQ==","name": "Electronics","slug": "electronics"}]}}]}}}
您可以通过访问
http://your-wordpress-url/graphql 来测试 GraphQL 接口。如果能够正常获取上述示例中的数据,说明 GraphQL 接口配置正确,可以提供给外部访问。方式二:使用 WordPress.com 官方托管(新手使用)
访问 WordPress.com,注册并创建新站点。
在站点管理后台,进入“插件” > “安装插件”。
搜索并安装“方式一”在 WordPress 安装的所有插件。
无论是托管部署还是自己部署,WordPress 作为无头 CMS 时的配置流程基本类似,都是用来管理内容并提供 API 接口,我们只需要参考上面的“方式一”的配置即可。另外,虽然托管部署省去了服务器维护和环境搭建,但现在各大云服务对 WordPress 支持很好,自己部署其实也很方便。
支付回调配置
在开始生成静态文件之前,我们需要特别说明一下支付回调的配置。这是因为我们的前端是使用 Gatsby 生成的静态网站,而支付流程需要实时处理支付状态更新。WooCommerce 支持 Stripe、PayPal、Square 等国际支付网关,您只需要在 WooCommerce 后台配置相应的支付方式,设置必要的 API 参数和回调地址即可。


对于前端查询支付状态,WooCommerce 提供了 REST API、GraphQL 和 Webhook 三种方式。由于 EdgeOne 提供的 Gatsby 模板使用 GraphQL 进行数据查询,这里以 GraphQL 方式为例:
query GetOrderStatus($id: ID!) {order(id: $id) {statuspaymentMethoddatePaid}}
查询结果示例:
{"data": {"order": {"status": "completed","paymentMethod": "paypal","datePaid": "2024-03-20T10:30:00"}}}
生成静态文件
EdgeOne 提供了基于 Gatsby 的静态站点模板,您可以通过以下命令获取:
git clone --depth 1 --single-branch https://github.com/TencentEdgeOne/pages-templates.git tempmv temp/examples/gatsby-woocommerce-template .rm -rf tempcd gatsby-woocommerce-templatenpm install
现在我来介绍一下项目中的关键配置点。
所有的 GraphQL 查询语句都位于
src/queries/PagesQuery.js文件中,包括商品、订单、页面内容和 ACF 字段等查询。如果您需要自定义查询内容,可以在这里修改 GraphQL 查询语句。
支付相关的组件位于
src/components/OrderSummary/OrderSummary.js文件中。在调用支付时,会配置以下关键信息:await checkout({shipping: customer.shipping,billing: customer.billing,paymentMethod: 'cod',});
这里配置了:
收货地址信息(shipping)。
账单地址信息(billing)。
支付方式(paymentMethod)。
这个支付请求会调用
src/api/api.js文件中的 checkout 对象,执行具体的支付操作。最终的 GraphQL 查询语句位于functions/common/queries/Checkout.js文件中,如果您需要修改支付逻辑,可以在这里进行更改。
如果您需要修改其他信息的接口交互,可以修改
functions/common/queries目录下的其他文件中的 GraphQL 语句。了解了项目的基本结构和关键配置后,让我们来看看如何启动项目。模板的启动非常简单,您只需要设置
WP_URL参数指向您的WordPress站点地址即可。在部署到云端时,这个参数会作为环境变量配置。现在让我们先在本地验证项目。在项目根目录创建
.env 文件,填入以下内容:WP_URL=http://your-wordpress-urlGATSBY_ENV=dev
然后安装依赖并启动 Gatsby 项目,进入本地预览:
npm installgatsby develop && edgeone pages dev --fePort=8000

至此,我们已经完成了 WordPress + WooCommerce 内容管理系统的配置、前端模板的获取和本地环境的验证。接下来,我们只需要将代码部署到 EdgeOne Pages,就可以让您的网站正式上线了。
部署到 EdgeOne Pages
1. 代码发布到 Git
将代码提交到 git 仓库即可完成部署。假设您已经创建了
gatsby-woocommerce-template 项目,并且将当前目录关联到了该项目,使用以下命令提交:git add .git commit -m "Initial commit"git push origin main
2. 项目导入 Pages

3. 添加环境变量
点击 gatsby-woocommerce-template 后,在准备部署界面点击“环境变量”,分别配置以下环境变量:
WP_URL:填入您的WordPress站点地址。GATSBY_ENV:设置为 production。
配置完成后,单击立即创建,等待部署完成后将显示部署成功界面:

至此,我们已经完成了 WordPress + WooCommerce 方案的完整部署流程。通过这个方案,您可以:
使用 WordPress + WooCommerce 管理内容和商品,享受其强大的 CMS 和电商功能。
利用 Gatsby 生成高性能页面,提升访问速度。
通过 EdgeOne Pages 实现自动化部署,简化运维工作。
获得全球 CDN 加速,提升用户体验。
更多相关内容
查看更多WordPress集成方案:EdgeOne Pages 提供的 WooCommerce 模板。
了解Gatsby更多功能:Gatsby 官方文档。
探索WooCommerce更多功能:WooCommerce 官方文档。
自定义网站样式:Gatsby 样式指南。