WooCommerce 訂單沒有同步?從 Webhook 投遞紀錄找出失敗原因
WooCommerce 訂單已成立,但物流或 ERP 沒有收到通知,先確認整合是否真的使用 WooCommerce Webhook。訂單存在、Webhook 回傳 200、接收端完成建單是三件不同的事;任何一項都不能單獨證明整個流程成功。
比對事件與投遞紀錄
記下測試訂單編號、建立時間與應收到資料的系統。到 WooCommerce → 設定 → 進階 → Webhooks,核對目標 Webhook 的名稱、狀態、Topic 和 Delivery URL;不要把 URL 中的 token 或 Secret 貼到工單。接著到 WooCommerce → 狀態 → 日誌,依官方操作文件篩選 webhooks-delivery,以時間與事件核對請求及回應。日誌可能含個資、簽章或訂單資料,分享前先遮蔽。
如果看不到該事件,確認 Topic 與訂單實際發生的動作一致,並檢查事件觸發及排程處理;沒有紀錄也可能是日誌保留或設定限制。401/403 可能涉及接收端驗證或防火牆,404 要核對目的路徑,5xx 或逾時要由接收端查看同時段日誌。200 僅代表 HTTP 回應成功,仍需以訂單編號核對接收端實際處理結果。
先修原因,再用測試事件驗證
官方文件說明連續投遞失敗可能使 Webhook 停用,門檻可受設定影響。先保存原狀態與設定,與接收端確認故障原因、簽章驗證與 URL;不要直接更換 Secret,否則雙方驗證可能失敗。修復後經授權恢復狀態,使用測試環境及雙方約定的測試訂單觸發相同事件,確認 WooCommerce 投遞紀錄、接收端紀錄與最終資料一致。首次以 Active 儲存時可能送出 ping,接收端需辨識。
缺漏訂單補送與回復
不要自行反覆修改真實訂單或重送完整 payload;先列出受影響時間及訂單,讓接收端確認已處理清單,討論依訂單或事件識別碼去重與補送方式。確認接收系統不會重複扣款、出貨或建單後,才依整合商支援的方式補送並逐筆核對。若啟用後錯誤增加,將 Webhook 暫停並通知負責人,記錄未同步區間以便安全補處理;暫停不會自動補回漏掉的事件。相關排程檢查可參考WP Crontrol 排程檢查。
用測試訂單追蹤與安全補送
在 WooCommerce → 設定 → 進階 → Webhooks 打開既有項目,記下 ID、Topic(例如 Order created)、狀態及目的主機名稱;不要複製 Secret。到 WooCommerce → 狀態 → 日誌,選擇或篩選 webhooks-delivery,依時間和 webhook ID 查找測試訂單。介面與保留時間依版本和日誌設定可能不同。
HTTP 401 請雙方核對認證與簽章;404 檢查 URL 路由;500 檢查接收端日誌;連線逾時查網路與負載。200 或 204 表示對方回應成功,但還要以測試訂單 ID 查 ERP 或物流紀錄,確認資料正確且沒有重複;重新導向是否完成實際處理也必須另查。
補送前建立對照表,包含 WooCommerce 訂單 ID、事件類型、時間、接收端 ID、是否出貨或扣款,以及補送結果。請整合商確認去重鍵與事件版本:一張訂單可能有多次合法更新,不能只憑訂單 ID 丟棄所有後續事件。先於測試環境重送同一事件兩次,確認只產生一次預期副作用,再逐筆補處理並對帳;若沒有去重能力,停止自動補送,由負責人依整合商流程處理。









臉書留言
一般留言