Google Sheets 改價格,WooCommerce 就同步?別再手動點到手軟!n8n 打造你的『雲端價格儀表板』

2025/12/20 | API 串接與自動化, N8N大補帖, WC 開發, WP 開發技巧

n8n x Google Sheets:WooCommerce 價格自動化終極解方

厭倦了購物節前夕在 WooCommerce 後台手動更新數百個商品價格嗎?傳統外掛笨重且缺乏彈性,更帶來安全性與權限管理難題。資深工程師推薦更優雅的架構:利用 Google Sheets 打造安全的「價格儀表板」,並以 n8n 作為 24 小時不間斷的自動化中介層。這套流程將資料層與應用層解耦,提供極致的協作便利性、版本控制與高安全性。從此,改價格不再是惡夢,而是喝咖啡的愜意時光。別讓重複性工作拖垮您的效率!立即導入這套企業級自動化架構,解放您的團隊潛能,將寶貴時間投入到真正有價值的策略規劃上!

需要專業協助?

聯絡浪花專案團隊 →

Google Sheets 改價格,WooCommerce 就同步?別再手動點到手軟!n8n 打造你的『雲端價格儀表板』

嗨,我是浪花科技的資深工程師 Eric。每當購物節前夕,看著行銷團隊為了幾百個、甚至幾千個商品的促銷價格,在 WooCommerce 後台一個一個點擊、修改、儲存,我的工程師雷達就會嗡嗡作響。那種重複性高、容易出錯、又極度耗時的工作,簡直是生產力的黑洞。心裡總有個聲音在吶喊:「這流程太不科學了!一定有更好的方法!」

你可能會說:「Eric,不是有很多 WooCommerce 大量編輯外掛嗎?」沒錯,市面上的確有解決方案,但它們往往伴隨著幾個工程師看了會皺眉的問題:笨重的 UI、昂貴的年費、權限控管不易(你真的敢讓實習生碰核心的商品編輯器嗎?),而且最重要的是,你被綁死在外掛的框架裡,缺乏彈性。

今天,我要分享一個更優雅、更具彈性,而且完全在自己掌控之下的解決方案。我們將利用 Google Sheets 作為我們直觀、易於協作的「價格儀表板」,並派出我們的自動化瑞士刀——n8n,來擔任 WordPress (WooCommerce) 與 Google Sheets 之間 24 小時不打烊的傳令兵。這套 n8n 與 Google Sheets 自動化 流程,將徹底解放你和你的團隊,讓改價格這件事,從惡夢變成喝杯咖啡的時間就能完成的愜意任務。

為什麼我們要『多此一舉』,不用外掛就好?

身為一個囉嗦的工程師,我必須先解釋「為什麼」。在我們動手之前,理解背後的「架構思維」至關重要。這不是為了炫技,而是為了打造一個真正可擴展、可維護的系統。

  • 協作的便利性: Google Sheets 是地球上可能最多人會用的協作工具。行銷、營運團隊不需要學習複雜的 WordPress 後台,只要在熟悉的試算表上填寫 SKU 和新價格,剩下的交給自動化。
  • 版本控制與歷史紀錄: 誰、在什麼時候、改了什麼價格,Google Sheets 的修訂歷史一目了然。這在追蹤問題或進行復盤時,是無價之寶。多數外掛可沒這麼貼心。
  • 權限分離與安全性: 你只需要開放一個 Google Sheet 的編輯權限,而不用給予任何人高風險的 WordPress 後台「編輯商品」權限。這大大降低了人為失誤的風險。
  • 極致的彈性: 今天你只想改價格,明天可能想同步更新庫存,後天想加上商品標籤。這套架構可以輕易擴充,只要在 n8n 工作流中加上幾個節點就好。你的需求,你做主,而不是被外掛的功能列表限制住。

簡單來說,我們正在做的,是將「資料層」(價格數據)與「應用層」(WooCommerce 網站)解耦,並透過 n8n 這個中介層來溝通。這是一種輕量級的 Headless (無頭) 管理概念,也是現代化系統架構的核心精神。

自動化藍圖:從 Google Sheets 到 WooCommerce 的旅程

在我們一頭栽進 n8n 的節點世界前,先來看看我們的作戰地圖。整個流程非常清晰:

  1. 準備彈藥庫 (Google Sheet): 建立一個包含商品 SKU、新價格、以及狀態回寫欄位的試算表。
  2. 設定觸發器 (n8n Trigger): 設定一個排程,讓 n8n 定期(例如每小時)去檢查試算表。
  3. 讀取指令 (n8n Read Sheet): n8n 讀取 Google Sheet 上的所有商品資料。
  4. 逐一處理 (n8n Loop): n8n 將逐行讀取資料,針對每一個商品進行操作。
  5. 精準定位 (n8n Find Product): 根據每一行的 SKU,透過 WooCommerce API 找到對應的商品 ID。
  6. 執行更新 (n8n Update Product): 找到商品後,n8n 發送指令更新價格。
  7. 回報戰果 (n8n Write Status): 更新成功或失敗後,n8n 將結果寫回 Google Sheet 的狀態欄,讓我們一目了然。

看起來很酷對吧?別急,我們一步一步來實現它。

實戰教學:手把手打造你的價格自動化引擎

第一步:前置作業與環境準備

在開始之前,請確保你手邊有這幾樣東西:

  • 一個 n8n 執行個體: 無論是 n8n Cloud 或是你自己架設的版本都可以。
  • 一個 WordPress 網站 (已安裝 WooCommerce): 這是我們的目標戰場。
  • WooCommerce REST API 金鑰: 這是 n8n 進入你網站後台的「通行證」。
    1. 前往 WordPress 後台 > WooCommerce > 設定 > 進階 > REST API。
    2. 點擊「新增金鑰」,描述填寫「n8n Price Sync」,權限選擇「讀取/寫入」。
    3. 產生金鑰後,立刻將「Consumer Key」和「Consumer Secret」複製下來,因為頁面關閉後就看不到了!
  • Google API 憑證: 讓 n8n 可以讀寫你的 Google Sheets。你需要在 n8n 的 Credentials 中,新增一個 Google (OAuth2) 憑證。這個過程有點繁瑣,需要進到 Google Cloud Console,但跟著 n8n 的官方文件走一次就能搞定。這也是工程師的日常,為了安全,多幾步是值得的。

第二步:準備你的 Google Sheets 價格儀表板

建立一個新的 Google Sheet,並設定好欄位。結構越簡單越好,關鍵是必須有一個獨一無二的識別碼,這裡我們用 `SKU` 是最理想的選擇。千萬別用商品名稱,那玩意兒太容易變了。

你的試算表應該長得像這樣:

SKU Product Name (for reference) New Price Status Last Updated
TSHIRT-RED-L 紅色 T-Shirt (L) 599
MUG-LOGO-01 浪科技 Logo 馬克杯 350

`Status` 和 `Last Updated` 欄位是留給 n8n 回寫資訊用的,這樣我們才能追蹤自動化的執行狀況。

第三步:建構 n8n 工作流 (Workflow)

現在,進入 n8n 的畫布,讓我們把節點一個個串起來!

節點 1:Schedule Trigger (排程觸發)

這是工作流的起點。新增一個 `Schedule` 節點,你可以設定每小時、每天,或任何你需要的頻率來執行這個同步任務。

節點 2:Google Sheets (讀取資料)

新增 `Google Sheets` 節點。設定如下:

  • Authentication: 選擇你剛才設定好的 Google OAuth2 憑證。
  • Resource: Sheet
  • Operation: Read
  • Sheet ID: 貼上你的 Google Sheet 網址中的那串亂碼 ID。
  • Range: `A:E` (或是你實際有資料的欄位範圍),記得勾選 `Read Headers`。

執行測試後,你應該能看到 n8n 成功抓取到試算表中的所有資料列。

節點 3:Item Lists (迴圈處理)

接下來是關鍵。我們不能一次把所有資料丟給 WooCommerce,而是要一筆一筆處理。新增 `Item Lists` 節點。

  • Operation: `Split Out Items` (或類似的選項,依 n8n 版本可能名稱不同)。這個節點會將上一步傳來的一整個資料陣列,拆成一個個獨立的項目 (item),讓後續的節點可以逐一處理。

節點 4:WooCommerce (用 SKU 尋找商品)

現在,我們要用 SKU 來找出商品。新增 `WooCommerce` 節點。

  • Authentication: 新增一個 WooCommerce API 憑證,貼上你的 Consumer Key & Secret。
  • Resource: Product
  • Operation: Get All
  • Options > Add Field > SKU: 在這裡,我們要用 n8n 的表達式 (Expression) 來動態填入來自 Google Sheet 的 SKU。點擊旁邊的齒輪圖示,拖曳 `Nodes > Item Lists > Output Data > JSON > SKU` 到欄位中。完整的表達式會像這樣:{{ $('Item Lists').item.json.SKU }}
  • Options > Limit: 記得把 Limit 設為 1,因為一個 SKU 只會對應一個商品。

這一步非常重要,因為 WooCommerce 的「更新商品」API 需要的是 `商品 ID`,而不是 SKU。所以我們必須先用 SKU 查到 ID。

節點 5:IF (判斷商品是否存在)

一個穩健的系統必須考慮到例外情況。如果試算表裡的 SKU 在 WooCommerce 找不到怎麼辦?新增 `IF` 節點來處理。

  • Value 1: 使用表達式,抓取上一步 WooCommerce 節點回傳的資料。我們要檢查回傳的 `ID` 是否存在。表達式:{{ $('WooCommerce').item.json.id }}
  • Operation: `Is Not Empty`

這個節點會有兩個輸出:`true` (找到了商品) 和 `false` (沒找到商品)。

節點 6:WooCommerce (更新商品價格)

將 `IF` 節點的 `true` 輸出連接到這個新的 `WooCommerce` 節點。

  • Authentication: 選擇剛才建立的憑證。
  • Resource: Product
  • Operation: Update
  • Product ID: 這裡填入上一個 WooCommerce 節點(尋找商品那一步)回傳的 `ID`。表達式:{{ $('WooCommerce').item.json.id }}
  • Update Fields > Add Field > Regular Price: 填入我們在 Google Sheet 上設定的新價格。表達式:{{ $('Item Lists').item.json['New Price'] }}

太棒了!核心的更新邏輯已經完成。

節點 7:Merge & Google Sheets (回寫狀態)

最後一步,也是讓整個流程完美的收尾:回報結果。不論更新成功或失敗,我們都應該在 Google Sheet 上留下紀錄。

  1. 新增一個 `Merge` 節點。將「更新商品」節點的輸出和 `IF` 節點的 `false` 輸出都連到這個 `Merge` 節點。這樣無論成功或失敗,流程都會走到這裡。
  2. 在 `Merge` 節點後,再新增一個 `Google Sheets` 節點。
  3. Operation: Update
  4. Sheet ID: 填入你的 Sheet ID。
  5. Key Column: `SKU`。我們用 SKU 來定位要更新哪一列。
  6. Key Value: {{ $('Item Lists').item.json.SKU }}
  7. Columns to Update > Add Column to Update:
    • `Status`: 這裡我們可以用一個三元運算子的表達式來判斷狀態:{{ $('WooCommerce').item.json.id ? 'Success' : 'SKU Not Found' }}。意思是如果 `id` 存在,就寫入 `Success`,否則寫入 `SKU Not Found`。
    • `Last Updated`: 使用表達式來填入當前時間:{{ new Date().toISOString() }}

儲存並啟用你的工作流。現在,只要你在 Google Sheets 上修改 `New Price` 欄位,等到下一次排程觸發時,n8n 就會自動幫你同步到 WooCommerce 網站上,並回報執行狀態。恭喜你,你已經打造了一個屬於自己的、強大的自動化價格管理系統!

工程師的囉嗦時間:進階考量與最佳實踐

做到這裡,功能已經完成了。但一個追求卓越的工程師,想的永遠更多。

  • API Rate Limiting: 如果你有幾千個商品要一次更新,短時間內大量的 API 請求可能會觸發主機的速率限制。這時就需要引入更複雜的機制,例如在迴圈中加入等待節點,或是採用「指數退讓」策略來優雅地重試。
  • 更細緻的錯誤處理: 除了「SKU Not Found」,API 更新也可能因為網路問題、資料庫鎖定等原因失敗。你可以將失敗的項目記錄到另一個 Sheet,或透過 LINE/Slack 發送通知,讓你能即時處理。
  • 資料驗證: 如果有人在價格欄填寫了文字或負數怎麼辦?你可以在更新 WooCommerce 之前,加入一個 `IF` 節點或 `Function` 節點,檢查價格是否為有效的數字,從源頭杜絕髒數據。

結論:自動化不是工具,而是一種思維

今天我們透過 n8n 與 Google Sheets 自動化,解決了 WooCommerce 大量更新價格的痛點。但更重要的是,你學到了一種解決問題的「模式」。這個「試算表作為儀表板 -> n8n 作為中介 -> WordPress 作為執行端」的模式,可以應用在無數個場景:

  • 用 Google Sheets 管理文章的 SEO 標題和描述,並自動同步。
  • 用 Google Sheets 管理會員的自訂欄位資料。
  • 用 Google Sheets 快速上下架商品或調整庫存。

自動化的真正威力,不在於你學會了多少工具,而在於你是否能將重複、繁瑣的工作流程,拆解成一個個可以被機器執行的步驟。當你開始用這種思維看待你的日常工作時,你會發現,處處都是可以優化的機會。

希望這篇文章能為你打開一扇新的大門。如果你在實作中遇到任何問題,或是想探討更複雜、更客製化的企業級自動化流程,浪花科技的團隊隨時準備好為你提供專業的諮詢與協助。

推薦閱讀

對打造更強大的企業自動化流程感興趣嗎?
別讓重複的工作流程拖垮你的團隊效率。立即聯繫浪花科技,讓我們協助你導入 n8n 與 WordPress 的深度整合,打造專屬於你的、穩固可靠的自動化商業引擎!

常見問題 (FAQ)

Q1: 為什麼要用 n8n,而不是更知名的 Zapier 或 Make?

A: 這是個好問題!對於工程師或重視數據隱私的企業來說,n8n 有幾個關鍵優勢:1. 可自行架設 (Self-hosted): 你的所有資料和流程都在自己的伺服器上運行,完全掌控數據隱私。2. 成本效益: 對於高執行量的任務,自架 n8n 的成本遠低於 Zapier 或 Make 的高階方案。3. 開發者友善: n8n 的節點和表達式提供了更高的自由度和複雜邏輯的處理能力,更適合處理客製化需求。

Q2: 這個工作流可以處理「可變商品」(Variable Products) 的不同價格嗎?

A: 絕對可以,但流程會更複雜一些。你需要調整 Google Sheet,增加一個 `Variation SKU` 欄位。在 n8n 中,你不能只用「更新商品」節點,而是需要先用 SKU 找到主商品 ID,然後再用「商品變化 (Product Variation)」相關的 API 端點,根據變化商品的 ID 或 SKU 去更新對應的價格。這篇文章為了教學清晰,專注在簡單商品,但這個架構完全有能力擴展到可變商品。

Q3: 如果我在 n8n 工作流執行期間,又去修改 Google Sheet 會發生什麼事?

A: 你的工作流只會處理它「開始執行那一刻」讀取到的資料版本。例如,如果你的排程是 10:00 啟動,n8n 在 10:00:01 讀取了整個試算表,那它就會根據這個版本的資料跑到結束。你在 10:00:05 做的任何修改,都要等到下一個排程週期(例如 11:00)才會被讀取。對於非常頻繁的手動更新,這可能會產生一些時間差,但對於大多數批量更新場景來說,這個機制是穩定可靠的。

Q4: 給 n8n 我 WooCommerce 網站的讀寫權限,這樣安全嗎?

A: 安全性的關鍵在於兩點:1. 保護你的 n8n 執行個體: 確保你的 n8n 服務本身是安全的,有強密碼保護,並且最好不要直接暴露在公網上(例如使用 VPN 或 IP 白名單)。2. 最小權限原則: 在 WooCommerce 產生 API 金鑰時,只給予必要的權限。像這個案例,只需要「讀取/寫入」商品即可,絕對不要使用管理員帳號的權限或給予所有權限。這樣就算金鑰不幸外洩,對方能造成的損害也是有限的。

 
立即諮詢,索取免費1年網站保固