訂單一來就自動歸檔?n8n 聯手 WooCommerce 訂單同步,打造你的 24H 全自動電商大腦!
嗨,我是浪花科技的資深工程師 Eric。經營電商的你,是不是常常覺得自己被訂單追著跑?一筆新訂單進來,你就要手動複製客戶資料到 Google Sheets、手動通知出貨部門、手動更新 CRM 系統… 訂單一多,複製貼上就變成了你的正職工作,不僅耗時,更容易出錯。今天,我就要來跟你分享一個解放你雙手的神兵利器:n8n 與 WooCommerce 訂單同步,讓你把這些繁瑣的流程,通通交給自動化機器人處理!
你可能會想:「自動化?聽起來就很複雜,要寫很多程式碼吧?」先別急著關掉頁面!n8n 是一個強大的低程式碼(Low-code)自動化平台,你可以把它想像成一個可以自己架設、功能更強大、更彈性的 Zapier。透過 n8n,我們可以串接 WooCommerce 的 Webhook,當有新訂單成立時,自動觸發一連串預設好的動作。這篇文章,我會手把手帶你從零開始,打造一個專屬於你的全自動訂單處理流程。
為什麼你需要自動化?解放生產力的第一步
在我們深入技術細節之前,讓我們先聊聊「為什麼」。身為一個工程師,我最討厭的就是重複性、沒有創造性的工作。而手動處理訂單,就是典型的例子。導入 n8n 與 WooCommerce 訂單同步 的好處,遠比你想像的還多:
- 零失誤的人為操作: 機器人不會眼花、不會手抖,只要流程設定正確,每一筆訂單的處理都會精準無誤,告別複製貼上時的欄位錯置惡夢。
- 7×24 小時全年無休: 客戶半夜三點下單?沒問題,自動化流程會立刻啟動,通知倉庫、記錄資料,完全不需要你從被窩裡爬起來。
- 釋放寶貴的人力: 把團隊從繁瑣的行政工作中解放出來,讓他們專注在更有價值的事情上,例如客戶服務、行銷策略、產品開發。
- 即時的數據同步: 訂單成立的瞬間,相關資料就能同步到你的庫存系統、會計軟體或數據分析儀表板,讓你隨時掌握最新的營運狀況。
說了這麼多,是不是已經讓你心癢癢了?別急,我們馬上就來動手實作!
實戰教學:打造 WooCommerce 到 n8n 的自動化橋樑
整個流程的核心概念很簡單:當 WooCommerce 有新訂單時,透過「Webhook」這個機制,主動發送一個通知(包含訂單資料)給 n8n。n8n 收到通知後,再根據我們設定的流程,去執行後續的動作。聽起來很像快遞員送包裹,對吧?
步驟一:在 WooCommerce 設定 Webhook (寄件人)
首先,我們要讓 WooCommerce 知道「新訂單來了,要通知誰」。
- 登入你的 WordPress 後台,前往 WooCommerce > 設定 > 進階 > Webhook。
- 點擊「新增 Webhook」。
- 開始填寫欄位,這裡有幾個重點:
- 名稱:取一個你好辨識的名字,例如「n8n New Order Sync」。
- 狀態:設定為「啟用」。
- 主題:這是觸發的時機,我們選擇「訂單已建立 (Order created)」。你也可以根據需求選擇「訂單狀態已變更」等等。
- 傳送 URL:這個欄位先留空,我們要先到 n8n 去取得接收網址。
- 密鑰 (Secret):這非常重要!它就像是你們之間的通關密語。點擊「產生」按鈕讓系統自動生成一組複雜的字串,並把它複製下來。待會我們會用到它來驗證收到的通知真的是 WooCommerce 送來的,而不是駭客偽造的。
- 先不要儲存,我們接著去設定 n8n。
步驟二:在 n8n 建立工作流 (收件人)
現在,我們要設定一個 n8n 工作流來接收 WooCommerce 的通知。
- 打開你的 n8n 儀表板,建立一個新的工作流 (Workflow)。
- 第一個節點,搜尋並選擇「Webhook」。
- 點進 Webhook 節點,你會在右側看到「Webhook URLs」。把「TEST」分頁下的 URL 複製起來。
- 回到剛剛的 WooCommerce Webhook 設定頁面,將這串 URL 貼到「傳送 URL」欄位,然後點擊「儲存 Webhook」。
- 回到 n8n,點擊「Listen for Test Event」按鈕。這時候 n8n 會進入等待狀態。
- 現在,到你的 WooCommerce 商店前台,下一筆測試訂單。完成結帳後,理論上 WooCommerce 就會發送一個 Webhook 通知。
- 如果一切順利,你會看到 n8n 的 Webhook 節點顯示成功接收到資料,並且可以看到完整的訂單 JSON 資料結構。恭喜你,自動化的橋樑已經搭起來了!
囉嗦一下,看到那一大包 JSON 資料先別慌。這就是訂單的所有細節,從客戶是誰、買了什麼商品、地址在哪、用了什麼付款方式,應有盡有。這就是我們自動化的原料,接下來的工作就是把這些原料加工成我們想要的樣子。
步驟三:加工訂單資料並串接其他服務
收到資料後,好戲才正要開始。這裡我舉兩個最常見的應用場景。
場景一:新訂單自動通知到 Slack
當有新訂單時,馬上通知團隊,讓大家振奮一下士氣!
- 在 n8n 的 Webhook 節點後方,點擊「+」號,新增一個「Slack」節點。
- 設定你的 Slack 憑證 (Credentials),授權 n8n 發送訊息。
- 在「Channel」欄位選擇你要發送訊息的頻道,例如 #sales。
- 在「Text」欄位,我們可以組合從 Webhook 收到的資料,打造客製化訊息。例如:
🔥 新訂單來囉!
訂單編號:{{$json["body"]["number"]}}
客戶:{{$json["body"]["billing"]["first_name"]}} {{$json["body"]["billing"]["last_name"]}}
總金額:{{$json["body"]["total"]}} 元
趕快準備出貨吧! - 啟用並儲存你的工作流。現在,只要有新訂單,你的 Slack 就會馬上跳出通知!
場景二:將訂單資料自動寫入 Google Sheets
告別手動複製貼上,讓每筆訂單自動歸檔。
- 在 Webhook 節點後方,新增一個「Google Sheets」節點。
- 同樣的,先設定 Google 憑證,並授權 n8n 存取你的 Google Sheets。
- 在「Operation」選擇「Append or Update Row」。
- 選擇你的試算表 (Spreadsheet ID) 和工作表名稱 (Sheet Name)。
- 在「Columns」區塊,你會看到你 Google Sheets 上的欄位名稱。這時候就是最神奇的「資料對應」環節了。點擊欄位旁邊的圖示,從 Webhook 節點的輸出中,把對應的資料拖曳過來。例如:
- 訂單編號 ->
{{$json["body"]["id"]}} - 客戶姓名 ->
{{$json["body"]["billing"]["first_name"]}} {{$json["body"]["billing"]["last_name"]}} - 訂單金額 ->
{{$json["body"]["total"]}} - 訂單日期 ->
{{$json["body"]["date_created"]}}
- 訂單編號 ->
- 啟用並儲存。從此以後,你的訂單紀錄表就會自動更新,再也不用擔心漏記或記錯了!
工程師的龜毛提醒:安全性與錯誤處理
身為一個資深工程師,我必須提醒你,讓系統「能動」只是第一步,「穩定又安全」才是我們的終極目標。在享受自動化便利的同時,千萬別忽略了以下幾點:
1. 驗證 Webhook 簽章
你的 Webhook URL 是公開的,任何人只要知道網址,都可以傳送假資料給你。為了防止這種情況,我們必須驗證這個請求真的是 WooCommerce 發出的。這就要用到我們第一步設定的「密鑰 (Secret)」。
在 n8n 中,我們可以在 Webhook 節點後方,加上一個「IF」節點或「Function」節點來做驗證。WooCommerce 會在 HTTP Headers 中帶上一個 `x-wc-webhook-signature` 的簽章。我們需要用同樣的密鑰和收到的 Request Body,以 `HMAC-SHA256` 演算法計算一次,比對看看簽章是否相符。
這段驗證邏輯稍微複雜,但非常重要。你可以新增一個 Function 節點,並使用類似下面的 JavaScript 程式碼來做驗證:
// 引入 Node.js 的 crypto 模組
const crypto = require('crypto');
// 從 Webhook Header 取得 WooCommerce 傳來的簽章
const receivedSignature = $request.headers['x-wc-webhook-signature'];
// 記得在 n8n 的環境變數中設定你的 Webhook Secret
const secret = process.env.WOOCOMMERCE_WEBHOOK_SECRET;
// 取得原始的 Request Body
const requestBody = $request.rawBody;
// 使用 HMAC-SHA256 演算法計算簽章
const calculatedSignature = crypto.createHmac('sha256', secret)
.update(requestBody, 'utf8')
.digest('base64');
// 比對簽章是否相符
if (receivedSignature !== calculatedSignature) {
// 如果不相符,就拋出錯誤,中斷工作流
throw new Error('Webhook signature mismatch!');
}
// 如果相符,就回傳收到的 JSON 資料,讓工作流繼續
return $json;
把這段邏輯加進去,你的自動化流程才算是真正固若金湯!
2. 處理失敗情況
如果今天 Google Sheets 剛好在維修,API 寫不進去怎麼辦?訂單資料就遺失了嗎?當然不行!n8n 內建了錯誤處理機制。你可以設定「Error Trigger」節點,當主流程發生錯誤時,自動觸發另一條備用流程,例如「寄一封 Email 通知管理員」、「把失敗的資料暫存到另一個地方等待重試」等等。確保任何意外情況下,你的寶貴訂單資料都不會憑空消失。
結論:自動化不是選項,而是未來
今天我們從觀念到實作,完整地走了一遍如何透過 n8n 與 WooCommerce 訂單同步 來打造自動化流程。從最簡單的 Slack 通知,到寫入 Google Sheets,再到工程師等級的安全性考量,你會發現,自動化的世界充滿了無限可能。
這篇文章只是個起點,你還可以串接更多服務,例如:
- 將客戶資料同步到 HubSpot 或其他 CRM 系統。
- 根據客戶購買的商品,自動將他們加入特定的電子郵件行銷名單。
- 自動產生出貨單,並透過 API 傳送給物流公司。
記住,你花在設定自動化流程上的每一分鐘,都會在未來為你省下數小時、甚至數天的工作時間。不要再讓自己被困在重複的瑣事中,擁抱自動化,把時間和精力投入到真正能讓你的事業成長的地方吧!
如果你在設定過程中遇到任何問題,或是想打造更複雜、更客製化的企業級自動化流程,浪花科技的團隊擁有豐富的 API 串接與系統整合經驗。我們不只會幫你把流程「串起來」,更會從架構、安全性、與擴展性的角度,為你打造穩定可靠的自動化引擎。
準備好讓你的電商事業起飛了嗎?立即聯繫我們,讓專業的工程師團隊為您規劃專屬的自動化解決方案!
延伸閱讀
- 告別手動複製貼上!WooCommerce Webhook 終極指南:打造零失誤、全自動的訂單處理流程
- 資料還在手動同步?n8n Webhook + API 終極整合術,讓你的 WordPress 數據流自動奔跑!
- 「別再複製貼上了!」WordPress API 串接實戰:串接 LINE / HubSpot / n8n,打造你的全自動工作流
常見問題 (FAQ)
Q1: n8n 跟 Zapier 或 Make 有什麼不同?我該選哪個?
A1: Zapier 和 Make 是非常優秀的 SaaS 自動化工具,優點是開箱即用、介面友善。而 n8n 最大的不同在於它是「開源」且可以「自行架設 (Self-hosted)」。這代表著:1. 成本更低:你可以將 n8n 架設在自己的伺服器上,執行節點的費用遠低於 Zapier 的方案。 2. 彈性更高:沒有執行的次數上限,你可以完全掌控你的資料,並且可以透過程式碼(Function 節點)實現極度客製化的複雜邏輯。如果你的需求簡單、預算充足,Zapier 是個好選擇;但如果你追求更高的彈性、成本效益與資料自主權,n8n 絕對是你的首選。
Q2: 設定 Webhook 會不會拖慢我的網站速度?
A2: 這是個好問題!答案是:幾乎不會。WooCommerce 的 Webhook 是以「非同步 (Asynchronous)」方式執行的。也就是說,當訂單成立後,它會把「發送通知」這個任務丟到背景去處理,不會卡住使用者的結帳流程。使用者完成結帳的當下,網頁就已經載入完畢了,而 Webhook 的發送是在那之後才悄悄進行的。所以,你可以放心地使用它,不用擔心會影響網站效能或使用者體驗。
Q3: 如果我想串接的服務在 n8n 裡面沒有內建的節點怎麼辦?
A3: 這正是 n8n 強大的地方!即使沒有官方支援的整合節點,只要該服務有提供 API (Application Programming Interface),你幾乎都可以透過 n8n 的「HTTP Request」節點來串接。你可以用這個節點來手動發送 GET, POST, PUT 等請求,並客製化 Headers 和 Body 內容,來跟任何第三方服務的 API 進行溝通。這賦予了 n8n 近乎無限的串接可能性。
Q4: 我不是工程師,文章裡的程式碼看不懂,也能使用 n8n 嗎?
A4: 絕對可以!n8n 的核心理念就是「低程式碼」。文章中提到的程式碼是為了實現「簽章驗證」這個進階的安全性功能。對於絕大多數的應用場景,例如我們提到的串接 Slack 或 Google Sheets,你完全不需要寫任何一行程式碼,只需要透過拖拉、點選和設定,就能完成整個自動化流程。n8n 的視覺化介面非常直觀,即使沒有技術背景也能輕鬆上手。






