管理网店成本高昂,店主往往需要处理许多手工流程。WooCommerce REST API 简化了这一工作流程,使您能够控制电子商务平台,并以编程方式管理和扩展 WooCommerce 商店。
使用 WooCommerce REST API 可以无缝地执行集成、自动化和扩展在线商店功能等操作。您可以节省资源和时间,用于进一步简化流程。此外,您还可以利用灵活的外部应用程序自定义商店的外观和感觉。
本文让您全面了解 WooCommerce REST API,使您能够以编程方式自动执行并增强电子商务操作。它提供了实用的见解、用例和代码示例,以促进 WooCommerce 商店的无缝集成和定制。
准备
要开始使用 WooCommerce REST API,您必须使用:
注:虽然支持通过HTTP 或 HTTPS访问 API,但出于安全考虑,强烈建议使用 HTTPS。
开始使用 WooCommerce REST API
要开始使用,您需要创建一个 WordPress 网站,然后在 WooCommerce 中生成 API 凭据。
要生成 WooCommerce API 凭据,请按照以下步骤操作:
- 登录 WordPress 网站后台,从侧边栏选择 插件>已安装插件,然后启用 WooCommerce 插件。
- 激活插件后,选择 WooCommerce>Setting。然后单击 “Advanced” 选项卡,进入 WooCommerce 高级设置页面。
- 接下来,点击REST API。API 密钥凭证页面如下图:
- 单击 “Create an API Key” 或 “Add Key” 生成 API 密钥。
- 接下来,系统会提示你输入密钥的 Key details。这些信息包括描述、用户和权限。输入密钥描述,根据需要更改用户,并选择 Read/Write 权限。
- 单击 Generate API Key。有了生成的 API 密钥,您就可以通过编程方式访问和管理商店数据。请注意您的消费者密钥和秘密,因为您将在下一节中使用它们进行 API 请求。
了解 WooCommerce REST API 架构
WooCommerce API 基于 REST 架构。您只需通过适当的方法(GET、POST、PUT、DELETE)向端点发送请求,即可对 WooCommerce 数据(如订单、产品和客户)进行读取和写入操作。
端点由请求方法和标准 URL 组成。有了端点,你就可以使用自己选择的工具(Postman 或 Insomnia)来访问不同的存储数据。
获取产品列表
在获取产品列表之前,请确保已在商店中添加了一些产品。您必须将固定链接结构更改为朴素以外的结构。
从侧边栏单击 “设置“>”固定链接“,然后更改固定链接结构。如果不做此更改,标准 URL 端点将无法正常工作。单击保存更改。
接下来,打开 Postman 并添加一个新请求。在 URL 部分,使用 https://<yourdomain>/wp-json/wc/v3/products
。确保将 <yourdomain>
替换为 WooCommerce 网站的域名。
在 “authorization” 选项卡中,选择 “Basic Auth“,并输入消费者密钥作为 Username,消费者秘密作为 Password。您必须在向 WooCommerce REST API 提出的每个请求中添加此授权。发送请求后,您应该会收到一份商店中所有产品的列表。
在 Postman 中获取产品列表。
通过 REST API 管理产品
产品对象有一系列属性,可以直接对产品进行分组、管理库存和设置价格,所有这些都可以通过编程实现。
比如说,您想在自己创建的产品组中添加一个新产品–您所需要的只是 grouped_products
属性中的产品组 ID。
要管理库存,可使用 manage_stock
和 stock_status
属性,分别设置为 true
或 false
以及 instock
、onbackorder
和 outofstock
。
下面我们来看看如何添加和更新现有产品的详细信息。
使用 WooCommerce API 添加产品
1. 在 Postman 中添加一个新请求,并将请求方法改为 POST。重复使用上一节中使用的端点 URL。点击 “Body” 选项卡,选择 “raw“,并选择 JSON 作为正文格式。JSON 有效载荷包含产品名称、类型(简单、可变或分组)、描述和简短描述。它还包含类别、标签和图片,您可以根据需要添加。
{ "name": "iPhone 15 Pro Max", "type": "simple", "description": "", "short_description": "", "categories": [ ], "tags": [], "images": [] }
2. 执行请求。如果产品创建成功,您将收到一个产品对象作为响应。请记下产品 ID,因为下一节中会用到它。
创建产品
使用 WooCommerce API 编辑产品
让我们编辑一下刚刚创建的记录。
1. 在 “Body” 选项卡中,添加以下 JSON 正文:
{ "name": "iPhone 15 Pro" }
由于只需更新 name
字段,因此无需包含其他属性。在这种情况下,将其更改为 “iPhone 15 Pro”。端点 URL 应为https://yourdomain/wp-json/wc/v3/products/<id>。
2. 用上一节创建的产品 ID 替换id
。不要忘记将请求方法改为PUT。执行请求后,您将收到一个产品对象作为响应。您可以检查响应中的产品名称,以确认更新是否成功。
编辑产品
使用 REST API 进行订单管理
WooCommerce REST API 可无缝检索订单和更新订单状态,从而促进订单处理自动化。它可让您以编程方式检索订单,根据日期、状态或客户等各种条件对订单进行过滤,然后有效地处理订单。
这包括更新订单状态,以反映履行或处理的各个阶段。WooCommerce REST API 可确保准确跟踪订单并与客户沟通。此外,您还可以通过 API 管理退款,包括处理退款请求、自动处理退款以及更新订单状态(退款后)。
让我们来看看如何获取最近的订单并将订单状态更新为 “已完成”。
使用 WooCommerce API 获取最近订单
1. 在 Postman 中添加一个新请求,使用 GET 请求获取订单。端点 URL 应如下所示:
https:///wp-json/wc/v3/orders
2. 在Params 选项卡中,输入 key(键)为after
,value 为订单创建日期之后的日期。在本例中,使用 2024-03-08T00:00:00
。您可以根据需要修改该日期。这样,您就可以只过滤特定日期后的订单。其他 Postman 设置保持默认。
3. 确保你在 WooCommerce 商店中下了几笔订单,以避免返回空列表。执行请求后,您将得到一份符合指定条件的所有订单列表。
获取给定日期后的近期订单
更新订单状态
要更新订单状态,请获取您已下订单的 ID。在 Postman 中添加一个新请求,并将其请求改为 PUT。使用以下端点进行更新:https://yourdomain/wp-json/wc/v3/orders/<existing-order-id>
。在 “Body” 选项卡中,添加以下 JSON 正文:
{ "status": "completed" }
执行请求后,您应该会收到订单已完成的回复。
更新订单状态
客户管理和参与
通过 WooCommerce REST API,企业可以高效地创建新客户档案、编辑现有客户详细信息,并检索购买历史和偏好等综合信息。
通过分析这些信息,企业可以定制个性化营销策略,根据个人购物行为提供有针对性的促销、产品推荐和忠诚度奖励。
这种客户数据管理水平使企业能够与客户建立更牢固的关系,提高客户满意度,并促进重复购买。
使用 WooCommerce API 添加客户
1. 向以下端点 URL 发送 POST 请求:https://<yourdomain>/wp-json/wc/v3/customers
。别忘了像之前那样加上授权。
2. 在 “Body” 选项卡中,使用此 JSON 对象创建客户:
{ "email": "a.briann@gmail.com", "first_name": "Brian", "last_name": "Abraham", "role": "customer", "username": "briann.abraham", "billing": { "first_name": "Brian", "last_name": "Abraham", "company": "", "address_1": "969 Market", "address_2": "", "city": "San Francisco", "state": "CA", "postcode": "94103", "country": "US", "email": "a.brian@gmail.com", "phone": "(555) 555-5555" }, "shipping": { "first_name": "Brian", "last_name": "Abraham", "company": "", "address_1": "969 Market", "address_2": "", "city": "San Francisco", "state": "CA", "postcode": "94103", "country": "US" } }
JSON 对象包含客户的基本信息,如电子邮件、姓名、角色和用户名。它还提供账单和发货信息,包括客户的地址、地点和电话号码。
3. 执行请求,你应该会收到一个包含客户对象的响应。记住客户 ID,在下一节中将用它来检索客户。
使用 WooCommerce API 通过 ID 检索客户
让我们通过 ID 检索您刚刚创建的用户。
- 使用 GET 请求方法创建一个新请求。
- 使用相同的端点 URL
https://<yourdomain>/wp-json/wc/v3/customers/<existing-customer-id>
,并添加要获取的客户 ID。
WooCommerce REST API 的高级用例
除了管理店铺资源,您还可以使用 WooCommerce REST API 完成其他复杂的任务,例如与 CRM 集成、库存管理自动化以及自定义分析和报告。
使用 REST API 将您的 WooCommerce 商店集成到您选择的 CRM 中,可以确保每当添加一个客户时,该客户就会立即反映在您的 CRM 面板上,成为一个潜在客户。这样就能轻松管理客户信息和订单历史的同步。
REST API 还可以实现自动库存管理。通过集成外部库存管理,您可以实时了解库存和产品可用性。这也适用于自定义报告和分析。
利用 WooCommerce REST API,您可以建立报告功能,让您鸟瞰全局,帮助决策、确定趋势和进行预测。
以下是将 WooCommerce 客户数据与 CRM 平台同步的代码片段:
<?php require __DIR__ . '/vendor/autoload.php'; use Automattic\WooCommerce\Client; $woocommerce = new Client( 'https://', // Your store URL 'consumer_key', // Your consumer key 'consumer_secret', // Your consumer secret [ 'version' => 'wc/v3' // WooCommerce WP REST API version ] ); // CRM API endpoint and key $crm_api_url = 'https://your-crm-api-url/api'; $crm_api_key = 'YOUR_CRM_API_KEY'; try { // fetch customers from woocommerce store $customers = $woocommerce->get('customers'); // Initialize cURL $ch = curl_init(); // Check if cURL initialization succeeded if ($ch === false) { throw new Exception('Failed to initialize cURL'); } foreach ($customers as $customer) { $crm_customer_data = array( 'first_name' => $customer->first_name, 'last_name' => $customer->last_name, 'email' => $customer->email, // Other fields ); // cURL options curl_setopt($ch, CURLOPT_URL, $crm_api_url . '/customers'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($crm_customer_data)); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $crm_api_key, 'Content-Type: application/json', )); // Execute cURL request $crm_response = curl_exec($ch); // Check for cURL errors if ($crm_response === false) { throw new Exception('cURL error: ' . curl_error($ch)); } // Check HTTP status code $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_code !== 200) { throw new Exception('Failed to sync customer data with CRM: ' . $http_code); } echo 'Customer data synced with CRM successfully.'; } curl_close($ch); } catch (Exception $e) { echo 'Error: ' . $e->getMessage(); }
这是一个 PHP 代码片段,它首先与 WooCommerce REST API 建立连接,然后从 WooCommerce 商店检索客户。最后,它使用 cURL 将客户发送到 CRM。这段代码包含了错误处理功能,用于管理流程故障。它使用了一个名为 automattic/woocommerce 的 PHP 库,你可以使用 Composer 安装该库。
此处使用的 CRM 是为了演示将客户数据同步到任何 CRM 的一般方法。
小结
WooCommerce REST API 允许您以编程方式管理商店数据、增强电子商务体验并扩展在线商店的功能。这一功能强大的工具可将基本的 WordPress 设置转变为更复杂的平台。
要开始使用,请在 WordPress 应用程序中安装 WooCommerce 插件,并使用本教程中提供的示例探索 REST API。这些示例可作为您定制解决方案的基础。
速度对于电子商务网站至关重要;更快的加载时间可以改善购物体验。WooCommerce API 可实现从前端到 WordPress 后台的多个请求,这突出了优化后台性能的重要性。
评论留言