WooCommerce REST API 終極手冊:包含實用示例

WooCommerce REST API 終極手冊

管理網店成本高昂,店主往往需要處理許多手工流程。WooCommerce REST API 簡化了這一工作流程,使您能夠控制電子商務平臺,並以程式設計方式管理和擴充套件 WooCommerce 商店。

使用 WooCommerce REST API 可以無縫地執行整合、自動化和擴充套件線上商店功能等操作。您可以節省資源和時間,用於進一步簡化流程。此外,您還可以利用靈活的外部應用程式自定義商店的外觀和感覺。

本文讓您全面瞭解 WooCommerce REST API,使您能夠以程式設計方式自動執行並增強電子商務操作。它提供了實用的見解、用例和程式碼示例,以促進 WooCommerce 商店的無縫整合和定製。

準備

要開始使用 WooCommerce REST API,您必須使用:

  • WooCommerce 3.5 或更高版本。
  • WordPress 4.4 或更高版本。
  • 用於 API 測試和互動的 PostmanInsomnia

注:雖然支援通過HTTP 或 HTTPS訪問 API,但出於安全考慮,強烈建議使用 HTTPS。

開始使用 WooCommerce REST API

要開始使用,您需要建立一個 WordPress 網站,然後在 WooCommerce 中生成 API 憑據。

要生成 WooCommerce API 憑據,請按照以下步驟操作:

  1. 登入 WordPress 網站後臺,從側邊欄選擇 外掛>已安裝外掛,然後啟用 WooCommerce 外掛。
  2. 啟用外掛後,選擇 WooCommerce>Setting。然後單擊 “Advanced” 選項卡,進入 WooCommerce 高階設定頁面。
  3. 接下來,點選REST API。API 金鑰憑證頁面如下圖:API 金鑰憑證頁面
  4. 單擊 “Create an API Key” 或 “Add Key” 生成 API 金鑰。
  5. 接下來,系統會提示你輸入金鑰的 Key details。這些資訊包括描述、使用者和許可權。輸入金鑰描述,根據需要更改使用者,並選擇 Read/Write 許可權。建立 woocommerce api 金鑰
  6. 單擊 Generate API Key。有了生成的 API 金鑰,您就可以通過程式設計方式訪問和管理商店資料。請注意您的消費者金鑰和祕密,因為您將在下一節中使用它們進行 API 請求。woocommerce api key

瞭解 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 中獲取產品列表

在 Postman 中獲取產品列表。

通過 REST API 管理產品

產品物件有一系列屬性,可以直接對產品進行分組、管理庫存和設定價格,所有這些都可以通過程式設計實現。

比如說,您想在自己建立的產品組中新增一個新產品–您所需要的只是 grouped_products 屬性中的產品組 ID。

要管理庫存,可使用 manage_stockstock_status 屬性,分別設定為 true 或 false 以及 instockonbackorder 和 outofstock

下面我們來看看如何新增和更新現有產品的詳細資訊。

使用 WooCommerce API 新增產品

1. 在 Postman 中新增一個新請求,並將請求方法改為 POST。重複使用上一節中使用的端點 URL。點選 “Body” 選項卡,選擇 “raw“,並選擇 JSON 作為正文格式。JSON 有效載荷包含產品名稱、型別(簡單、可變或分組)、描述和簡短描述。它還包含類別、標籤和圖片,您可以根據需要新增。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"name": "iPhone 15 Pro Max",
"type": "simple",
"description": "",
"short_description": "",
"categories": [
],
"tags": [],
"images": []
}
{ "name": "iPhone 15 Pro Max", "type": "simple", "description": "", "short_description": "", "categories": [ ], "tags": [], "images": [] }
{
"name": "iPhone 15 Pro Max",
"type": "simple",
"description": "",
"short_description": "",
"categories": [
],
"tags": [],
"images": []
}

2.  執行請求。如果產品建立成功,您將收到一個產品物件作為響應。請記下產品 ID,因為下一節中會用到它。

建立產品

建立產品

使用 WooCommerce API 編輯產品

讓我們編輯一下剛剛建立的記錄。

1. 在 “Body” 選項卡中,新增以下 JSON 正文:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"name": "iPhone 15 Pro"
}
{ "name": "iPhone 15 Pro" }
{
"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 應如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
https:///wp-json/wc/v3/orders
https:///wp-json/wc/v3/orders
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 正文:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"status": "completed"
}
{ "status": "completed" }
{
"status": "completed"
}

執行請求後,您應該會收到訂單已完成的回覆。

更新訂單狀態

更新訂單狀態

客戶管理和參與

通過 WooCommerce REST API,企業可以高效地建立新客戶檔案、編輯現有客戶詳細資訊,並檢索購買歷史和偏好等綜合資訊。

通過分析這些資訊,企業可以定製個性化營銷策略,根據個人購物行為提供有針對性的促銷、產品推薦和忠誠度獎勵。

這種客戶資料管理水平使企業能夠與客戶建立更牢固的關係,提高客戶滿意度,並促進重複購買。

使用 WooCommerce API 新增客戶

1. 向以下端點 URL 傳送 POST 請求:https://<yourdomain>/wp-json/wc/v3/customers。別忘了像之前那樣加上授權。

2. 在 “Body” 選項卡中,使用此 JSON 物件建立客戶:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"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"
}
}
{ "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" } }
{
"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 檢索您剛剛建立的使用者。

  1. 使用 GET 請求方法建立一個新請求。
  2. 使用相同的端點 URLhttps://<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 平臺同步的程式碼片段:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?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 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
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 後臺的多個請求,這突出了優化後臺效能的重要性。

評論留言