訂單自動化實戰:用 n8n 串接 WooCommerce,打造 24 小時不休息的「數位店長」
☰ 目錄 table-of-contents.md
電商最可怕的不是沒訂單,而是訂單進來了卻沒人知道——ERP 沒收到、倉庫沒接到出貨通知、客戶在另一頭等到發火。這些訂單流轉的瑣事,其實全部可以交給 n8n 處理。這篇帶你串接 WooCommerce,組出一個 24 小時不休息的「數位店長」。
在電商營運中,「n8n 與 WooCommerce 訂單同步」絕對是提升效率的神器。很多中小企業主(甚至是一些剛入行的工程師)還停留在「手動匯出 CSV」或是「花大錢買功能單一的外掛」的階段。坦白說,作為一個有點技術潔癖的工程師,看到這種重複性的機械勞動,我的強迫症就會發作。
今天這篇教學,我不談虛無縹緲的理論,直接帶你用目前最強大的開源自動化工具 n8n,實作一個「訂單自動同步系統」。我們會利用 Webhook 技術,讓 WooCommerce 一有新訂單,就立刻通知 n8n,並自動將資料拋轉到 Google Sheets、Slack 或是你的 CRM 系統中。
為什麼選擇 n8n 而不是 Zapier?
在進入實作之前,我得先發點牢騷。市面上有太多自動化工具(如 Zapier, Make),它們很好用,但對於高訂單量的 WooCommerce 網站來說,那個月費帳單真的會讓你懷疑人生。Zapier 是按 Task 收費的,如果你的網站一天有 500 筆訂單,每個訂單要跑 5 個步驟,一個月下來的費用足夠你買好幾台伺服器了。
選擇 n8n 的理由很簡單:
- 節省成本:你可以選擇 Self-hosted(自架版),架在你原本的 VPS 上,幾乎零額外成本。
- 節點式流程:視覺化的拉線設計,邏輯清晰,除錯方便(這對工程師來說太重要了)。
- 資料隱私:資料在自己的伺服器上跑,不用擔心敏感的客戶個資外流給第三方平台。
前置作業:認識 WooCommerce REST API 與 Webhook
要達成「n8n 與 WooCommerce 訂單同步」,我們主要會用到兩個技術核心:
- REST API:讓 n8n 有權限「讀取」或「寫入」WooCommerce 的資料。
- Webhook:這是「主動通知」的機制。當訂單狀態改變(例如:從「處理中」變成「完成」),WooCommerce 會主動發送一個訊號給 n8n。
這比傳統的 Polling(每隔 5 分鐘去問一次網站有沒有新訂單)有效率太多了。想像一下,Polling 就像是你每分鐘打電話問餐廳「我的外送好了沒?」,而 Webhook 則是餐廳跟你說「做好了我會傳簡訊給你」。
步驟一:在 WooCommerce 取得 API 金鑰
首先,進入你的 WordPress 後台:
- 前往 WooCommerce > 設定 > 進階 > REST API。
- 點擊「新增金鑰」。
- 描述可以填寫「n8n Order Sync」。
- 使用者選擇你的管理員帳號。
- 權限建議設為「讀取/寫入」(雖然同步訂單主要是讀取,但如果你之後想從 n8n 更新訂單狀態,就需要寫入權限)。
- 重要:產生後,請立刻複製「消費者金鑰 (Consumer Key)」和「消費者秘密 (Consumer Secret)」,因為離開頁面後就看不到了。
實戰教學:n8n 訂單同步工作流搭建
接下來進入重頭戲,打開你的 n8n 編輯器。
1. 設定 Webhook Trigger (觸發器)
在 n8n 中新增一個 Webhook 節點。
- HTTP Method: POST
- Path:
wc-order-created(這可以自訂) - Authentication: None (WooCommerce 的 Webhook 驗證機制在 Header,我們先用簡單方式接收)
你會得到兩組 URL:Test URL 和 Production URL。先複製 Test URL。
2. 在 WooCommerce 設定 Webhook
回到 WordPress 後台:
- 前往 WooCommerce > 設定 > 進階 > Webhook。
- 點擊「新增 Webhook」。
- 名稱:n8n New Order
- 狀態:啟用
- 主題:訂單已建立 (Order created)
- 傳送網址:貼上剛剛從 n8n 複製的
Test URL。 - API 版本:WP REST API 整合 v3
儲存後,WooCommerce 會發送一個測試 Ping 到你的 n8n。這時候回到 n8n 點擊 "Listen for Test Event",你應該會收到一筆測試資料。如果沒收到,請檢查防火牆設定(Cloudflare 常常是擋掉 Webhook 的元兇,工程師的痛啊!)。
3. 解析訂單資料 (JSON)
當真實訂單進來時,你會收到一長串 JSON 格式的資料。對於新手來說,這看起來很可怕,但裡面全是黃金。以下是我們最關心的幾個欄位:
{
"id": 12345,
"status": "processing",
"total": "1500.00",
"billing": {
"first_name": "Eric",
"last_name": "Chen",
"email": "eric@roamer-tech.com",
"phone": "0912345678"
},
"line_items": [
{
"name": "WordPress 高效能架設指南",
"quantity": 1,
"total": "1500.00"
}
]
}
4. 資料處理與拋轉
接收到資料後,你通常需要整理格式。例如,將 first_name 和 last_name 合併為全名,或者處理日期格式。
在 n8n 中,你可以接上一個 Google Sheets 節點來儲存訂單,或是 LINE 節點來通知管理員。這裡我強烈建議加上一個 Try/Catch 的邏輯(在 n8n 裡可以使用 Error Trigger 或是 Split In Batches 的錯誤處理)。
工程師的碎念: 千萬不要相信 API 永遠是穩定的。網路會斷、Google API 會限流 (Rate Limit)、客戶填寫的電話號碼可能會包含奇怪的符號。做好錯誤處理,才不會讓你的自動化流程在半夜掛掉。
進階技巧:處理 WooCommerce 的 HMAC 簽章驗證
為了安全起見,你不希望隨便一個人拿著 Postman 往你的 Webhook URL 塞假訂單資料吧?WooCommerce 發送 Webhook 時,會在 Header 包含一個 x-wc-webhook-signature。
在 n8n 中,你可以使用 Crypto 節點或是 Function 節點來驗證這個簽章。原理是將你的「Webhook Secret」與接收到的 Body 內容進行 HMAC-SHA256 運算,比對結果是否與 Header 中的簽章一致。這一步雖然麻煩,但在正式環境 (Production) 是絕對必須的。
常見的同步應用場景
完成了基礎的 n8n 與 WooCommerce 訂單同步 後,你可以延伸出無限可能:
- 財務自動化:訂單完成後,自動觸發電子發票 API 開立發票。
- 物流自動化:將收件人資料自動拋轉到黑貓或超商取貨系統的後台。
- CRM 行銷:依據購買的商品(例如買了「貓砂」),自動將客戶加入 Mailchimp 的「養貓族群」標籤,一個月後自動寄送回購優惠券。
結語
自動化不僅僅是為了省時間,更是為了減少人為錯誤。透過 n8n 串接 WooCommerce,你正在為你的電商網站建立一個 24 小時不休息的數位大腦。
如果你在實作過程中遇到 Webhook 接收不到、JSON 解析錯誤,或是不知道如何設計更複雜的邏輯(例如處理退款流程),別擔心,這都是必經之路。技術是為了服務商業而存在的,別讓繁瑣的技術細節阻礙了你業務的成長。
延伸閱讀
想要更深入了解如何將 WooCommerce 與自動化工具結合?這裡有幾篇我精選的實戰文章,強烈建議閱讀:
- Google Sheets 改價格,WooCommerce 就同步?別再手動點到手軟!n8n 打造你的『雲端價格儀表板』
- 訂單處理還在複製貼上?揭秘 WooCommerce Webhook 自動化魔法,打造你的 24H 全自動電商大腦!
- 還在手動複製貼上出貨單?WordPress 物流 API 串接終極指南 (黑貓/宅配通/超取),讓你的電商訂單自動化!
不想自己處理複雜的 API 串接與除錯?
浪花科技擁有豐富的 WooCommerce 開發與 n8n 自動化經驗。讓我們幫你打造專屬的自動化系統,你專心賺錢,技術難題交給我們!
立即聯繫浪花科技,諮詢自動化解決方案常見問題
n8n 是免費的嗎?
為什麼處理高訂單量電商時 n8n 比 Zapier 划算?
串接 WooCommerce 訂單同步用 Webhook 還是 Polling 比較好?
為什麼 n8n 收不到 WooCommerce 發來的 Webhook?
如何驗證 WooCommerce Webhook 的來源安全性?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。