你的商品還在手動KEY?WooCommerce 商品 API 從零到一實戰教學,解放你的雙手!
嗨,我是浪花科技的資深工程師 Eric。在我們接手的案子中,最常聽到客戶的痛點之一就是:「我的商品有上千個,每次更新價格或庫存,都要一個一個點進去改,點到懷疑人生!」或是「我們公司的 ERP 系統有完整的商品資料,但每天都要手動複製貼上到 WooCommerce,超沒效率又容易出錯。」
如果你對這些場景心有戚戚焉,那這篇文章就是你的救贖。今天,我們不談複雜的理論,直接帶你動手玩玩 WordPress 開發者最愛的武器之一:WooCommerce REST API。這東西就像是打開你網站任督二脈的鑰匙,讓你能夠用程式自動化處理那些重複、繁瑣的商品管理任務。別再當個點擊工人了,讓我們一起用更聰明的方式管理你的電商王國吧!
第一步:申請你的 API 通行證 (API Keys)
在我們開始用程式碼「指揮」你的網站之前,得先拿到一把安全的鑰匙,也就是 API Keys。這組鑰匙包含 Consumer Key 和 Consumer Secret,它們是讓外部應用程式(例如你的腳本、ERP 系統)能夠安全地與你的 WooCommerce 網站溝通的憑證。
如何產生 API Keys?
步驟非常簡單,跟著我一步一步做:
- 登入你的 WordPress 後台。
- 在左側選單找到 WooCommerce > 設定 > 進階。
- 點擊上方的 REST API 標籤頁。
- 點擊「新增金鑰」或「Create an API key」按鈕。
- 接下來你會看到三個欄位:
- 描述 (Description): 給這組金鑰取個好記的名字,例如「我的 ERP 系統」、「商品批次更新腳本」,這樣你以後才知道這組鑰匙是幹嘛用的。
- 使用者 (User): 選擇一個管理員帳號。API 的權限會跟著這個使用者跑。
- 權限 (Permissions): 這是最重要的一步。你有三個選項:讀取 (Read)、寫入 (Write)、讀取/寫入 (Read/Write)。根據你的需求選擇,如果只是要讀取商品資料,就選「讀取」;如果要新增、修改、刪除商品,就選「讀-寫」。
- 點擊「產生 API 金鑰」。
完成後,畫面會顯示你的 Consumer Key 和 Consumer Secret。身為一個囉嗦的工程師,我必須鄭重警告你:這個畫面只會出現一次! 請立刻、馬上把這兩組金鑰複製下來,存放在安全的地方(例如密碼管理器),千萬不要外洩。它們就跟你的網站管理員密碼一樣重要,一旦流出,駭客就能對你的商品做任何事!
萬事俱備:你的第一個 API 請求
拿到鑰匙後,我們就可以來試試開門了。測試 API 最方便的工具是 Postman,但為了讓大家都能快速上手,我們今天用一個更底層、幾乎所有工程師電腦裡都有的工具:curl。
WooCommerce API 的基本網址結構是:https://你的網域.com/wp-json/wc/v3/。我們接下來的所有操作都會基於這個網址。
用基本認證 (Basic Auth) 取得商品列表
最簡單的驗證方式就是 HTTP Basic Authentication。我們將 Consumer Key 當作使用者名稱,Consumer Secret 當作密碼。打開你的終端機 (Terminal),試著貼上並執行以下指令(記得換成你自己的資料):
curl -u YOUR_CONSUMER_KEY:YOUR_CONSUMER_SECRET https://yourdomain.com/wp-json/wc/v3/products
如果一切順利,你的終端機應該會噴出一大堆 JSON 格式的文字,裡面就是你網站上前 10 個商品的詳細資料。恭喜你!你已經成功和你的網站「對上話」了!
商品 API 實戰演練:CRUD 操作全解析
學會了溝通,接下來就是重頭戲:對商品進行增、刪、查、改 (CRUD) 的操作。這也是 API 最核心的價值所在。
C – Create (新增一個簡單商品)
假設我們要新增一件 T-shirt,名稱是「浪花科技 Logo T-shirt」,價格是 $500。我們需要發送一個 POST 請求到 /products 這個端點,並在請求的 body 中附上商品的資料。
curl -X POST -u YOUR_CONSUMER_KEY:YOUR_CONSUMER_SECRET \
-H "Content-Type: application/json" \
-d '{
"name": "浪花科技 Logo T-shirt",
"type": "simple",
"regular_price": "500",
"description": "一件舒適又有型的純棉 T-shirt,展現你的工程師魂!",
"short_description": "浪花科技經典 Logo T-shirt。",
"categories": [ { "id": 9 } ],
"images": [ { "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg" } ]
}' \
https://yourdomain.com/wp-json/wc/v3/products
執行成功後,你會收到一個 JSON 回應,裡面包含了剛剛建立好的商品所有資料,最重要的是它會有一個 `id`,這個 `id` 就是這件商品在資料庫裡的唯一身份證。
R – Read (讀取商品資料)
讀取我們在前面已經試過了,但其實它有很多玩法。例如,你想找特定 SKU 的商品,或是想看第二頁的資料:
- 根據 SKU 查詢:
/products?sku=LOGO-TSHIRT - 取得第二頁的商品列表 (每頁 20 個):
/products?per_page=20&page=2 - 取得特定 ID 的商品:
/products/123(將 123 換成你想查詢的商品 ID)
靈活運用這些查詢參數,可以讓你精準地抓到你想要的資料,而不是每次都撈回一整包。
U – Update (更新商品資訊)
假設剛剛那件 T-shirt 要特價了,價格從 $500 降到 $399,庫存也只剩下 10 件。我們需要對這個特定商品 ID 發送一個 PUT 請求。
curl -X PUT -u YOUR_CONSUMER_KEY:YOUR_CONSUMER_SECRET \
-H "Content-Type: application/json" \
-d '{
"sale_price": "399",
"stock_quantity": 10
}' \
https://yourdomain.com/wp-json/wc/v3/products/YOUR_PRODUCT_ID
記得將 `YOUR_PRODUCT_ID` 換成你剛剛新增商品後拿到的 ID。送出後,網站上的商品價格和庫存就會立刻被更新。是不是很神奇?這就是自動化同步 ERP 庫存的核心原理!
D – Delete (刪除商品)
如果某個商品要下架了,你可以用 DELETE 請求來把它刪除。但這裡有個小細節,身為工程師一定要提醒你。
# 將商品移至垃圾桶
curl -X DELETE -u YOUR_CONSUMER_KEY:YOUR_CONSUMER_SECRET https://yourdomain.com/wp-json/wc/v3/products/YOUR_PRODUCT_ID
# 永久刪除,無法復原!
curl -X DELETE -u YOUR_CONSUMER_KEY:YOUR_CONSUMER_SECRET https://yourdomain.com/wp-json/wc/v3/products/YOUR_PRODUCT_ID?force=true
預設的 DELETE 只是把商品丟到垃圾桶,你還可以從後台救回來。但如果加上了 `force=true` 參數,它就是真的從資料庫裡消失了,灰飛煙滅,神仙難救。所以,在執行永久刪除前,請務必再三確認,而且永遠都要有備份!相信我,半夜被客戶 call 醒救資料的滋味絕對不好受。
進階挑戰:管理可變商品 (Variable Products)
剛剛我們操作的都是「簡單商品」。但如果你的 T-shirt 有分 S, M, L 三種尺寸,那就是「可變商品」。
可變商品的結構比較複雜,它像是一個「父商品」(T-shirt 本身),底下掛著好幾個「子商品」,也就是「變化形」(Variations),例如 S 號 T-shirt、M 號 T-shirt。每個變化形都可以有自己獨立的 SKU、價格、庫存、圖片。
要操作它們,你會用到不同的端點:
- 取得某個可變商品的所有變化形:
GET /wp-json/wc/v3/products/<product_id>/variations - 為某個可變商品新增一個變化形:
POST /wp-json/wc/v3/products/<product_id>/variations - 更新某個特定的變化形:
PUT /wp-json/wc/v3/products/<product_id>/variations/<variation_id>
這部分的操作細節比較多,需要處理屬性 (attributes) 和對應的變化形資料,我們之後可以再寫一篇專門的文章來深入探討。但只要你理解了這個父子結構,基本上就掌握了八成的精髓。
總結:你的自動化電商帝國,從這裡開始
今天我們從申請 API 金鑰開始,一步步完成了對 WooCommerce 商品的增、刪、查、改。你可能覺得只是一些指令,但這背後代表的卻是無限的可能性。你可以:
- 撰寫一個 Python 或 PHP 腳本,每天定時讀取 ERP 系統的 CSV 檔,自動更新網站上數千個商品的庫存與價格。
- 打造一個內部的商品管理儀表板,讓行銷人員不需要登入 WordPress 後台,就能快速進行批次上下架。
- 串接外部的供應商系統,當供應商有新品時,自動在你的網站上建立草稿商品。
WooCommerce 商品 API 使用教學 不僅僅是技術文件,它是你通往高效、自動化電商管理的門票。當你把這些重複性的工作都交給程式後,你才能真正專注在更重要的事上:品牌經營、行銷策略和客戶關係。
當然,API 的世界遠不止於此,訂單、顧客、優惠券… 幾乎所有 WooCommerce 的功能都可以透過 API 來操作。希望今天的教學能為你打開一扇新的大門。如果你在實作中遇到任何問題,或是想打造更複雜的企業級自動化流程,別客氣!
歡迎隨時與浪花科技的團隊聯繫,我們很樂意協助你打造真正會思考、會自己工作的智慧網站!
延伸閱讀
- 告別手動上架地獄!WooCommerce 商品 API 終極實戰,讓你的庫存、ERP 同步自動化!
- 告別手動複製貼上!WooCommerce Webhook 終極指南:打造零失誤、全自動的訂單處理流程
- API 亂糟糟,專案火葬場?資深工程師的 WordPress REST API 設計聖經 (REST + JSON)
常見問題 (FAQ)
Q1: WooCommerce REST API 主要是用來做什麼的?
A: 簡單來說,它是用來「自動化」的。你可以透過它來自動處理各種電商任務,例如批次更新商品價格與庫存、將訂單資料同步到會計或 ERP 系統、建立客製化的管理後台,或是開發手機 App 來管理你的商店,徹底擺脫手動操作的惡夢。
Q2: 使用 API 金鑰安全嗎?會不會有被盜的風險?
A: 只要你的網站有安裝 SSL 憑證 (使用 HTTPS),通訊過程就是加密的,基本上是安全的。最大的風險來自於金鑰本身的保管。你必須像對待密碼一樣保護它,不要寫在公開的程式碼或文件裡。最好的做法是使用伺服器的環境變數來儲存,並為不同的應用程式設定不同權限的金鑰,以分散風險。
Q3: 我可以一次更新大量的商品嗎?一個一個呼叫 API 感覺很慢。
A: 問得很好!WooCommerce API 提供了「批次更新 (Batch Update)」的功能。你可以透過 POST /wp-json/wc/v3/products/batch 這個端點,在一次請求中同時傳送一個包含多個新增、更新或刪除操作的陣列。這能大幅減少 API 的請求次數,顯著提升大量資料處理的效率,是進行大規模同步時的必備技巧。






