訂單觸發器,逐步解說
Shopify Flow 針對訂單的重要時刻(例如:建立、付款、完成、取消)提供了完善的觸發機制。但它缺乏的是這些時刻之間的各項細節。這十項觸發機制會在訂單建立後發生任何編輯變更時觸發,並分別詳細記錄了具體的變更內容。
本頁內容:訂單更新,新增訂單標籤,移除訂單標籤,訂單備註變更,訂單屬性變更,訂單明細變更,訂單履行狀態變更,訂單顯示狀態變更,訂單財務狀態變更,訂單寄送地址變更

訂單更新
每當訂單更新時都會觸發。它攜帶changes:已變更的追蹤欄位(財務狀態、履約狀態、標籤、備註、明細項目、自訂屬性)及其變更前後的數值。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可將其開啟。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 一個能處理多種訂單編輯情況的工作流程。
- 供客戶服務部門參考的訂單變更紀錄。
「訂單更新」會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 已更新的訂單。這是一筆完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
payload |
文字 | 包含已更新訂單 GID 的 JSON 物件(例如:{"id":"gid://shopify/Order/123"}) |
changes |
對象 | 哪些追蹤欄位已變更(財務狀態、履行狀態、標籤、備註、明細項目、自訂屬性),並列出各欄位的舊值與新值 |
changes.fields |
文字清單 | 已變更的受追蹤欄位名稱 |
changes.items |
物件清單 | 每個變更欄位的舊值與新值 |
changes.items (each).field |
文字 | 已變更的欄位:financialStatus、fulfillmentStatus、tags、note、lineItems 或 customAttributes。 |
changes.items (each).oldValue |
文字 | 更新前的數值。長數值會被縮短 |
changes.items (each).newValue |
文字 | 更新後的數值。長數值會被縮短 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:透過您的客服系統,將已追蹤的訂單變更記錄至該訂單的時間軸中
- 選擇「**訂單更新」**作為觸發條件。
- 新增條件:
changes.fields既不為空,又存在。 - 在您的服務台中新增「**傳送 HTTP 請求」**功能,並在請求內容中包含
{{order.name}}。Flow 的文字欄位支援 Liquid 語法,因此透過for對changes.items進行迴圈處理,即可針對每項變更新增一行,並包含其field、oldValue及newValue。 - 開啟此工作流程。
已新增訂單標籤
當訂單中至少新增一個標籤時觸發。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 請讓員工透過標籤啟動流程:
gift-wrap、hold、priority。 - 針對來自防詐騙、訂閱或履約應用程式的標籤做出反應。
「新增訂單標籤」會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 標籤已變更的訂單。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
addedTags |
文字 | 以逗號分隔的標籤清單,這些標籤已新增至訂單中 |
removedTags |
文字 | 在同一筆更新中從訂單中移除的標籤清單(以逗號分隔,可能為空) |
currentTags |
文字 | 訂單上所有現行標籤的逗號分隔清單 |
previousTags |
文字 | 此更新之前,該訂單上所有先前標籤的以逗號分隔清單 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當訂單被標記為「暫停」時,暫停出貨
- 已將「揀貨順序標籤」新增為觸發條件。
- 新增條件:
addedTags包含hold。 - 新增一個「針對
order.fulfillmentOrders」的「**For each」**操作,並設定動作為「暫停履行訂單」。 - 啟用此工作流程。建立「已移除訂單標籤」的鏡像,並解除履約訂單的暫停狀態。
已移除訂單標籤
當訂單中至少有一個標籤被移除時觸發。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 釋放標籤所束縛的一切。
- 當移除「
needs-review」標籤時,關閉該任務。
「移除訂單標籤」會將哪些項目傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 標籤已變更的訂單。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單動作皆可使用。 |
removedTags |
文字 | 從訂單中移除的標籤清單(以逗號分隔) |
addedTags |
文字 | 在同一筆更新中新增至訂單的標籤清單(以逗號分隔),該清單可能為空 |
currentTags |
文字 | 訂單上所有現行標籤的逗號分隔清單 |
previousTags |
文字 | 此更新之前,該訂單上所有先前標籤的以逗號分隔清單 |
eventId |
文字 | 此事件的識別碼。請在應用程式的「事件記錄」中搜尋此識別碼,以查看確切的傳送內容。 |
範例:當標籤被移除時,解除鎖定
- 已將「揀貨**順序標籤已移除」**設為觸發條件。
- 新增條件:
removedTags包含hold。 - 新增一個「針對
order.fulfillmentOrders進行 For each 循環」,並啟用「釋放履約訂單保留」功能。 - 開啟此工作流程。
訂單備註已變更
當工作人員或客戶在結帳編輯時新增、變更或清除訂單明細時觸發。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟它。其專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 若在訂單成立後新增備註,請通知倉庫。
- 解析配送指示。
「訂單備註變更」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 該訂單的備註已變更。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
oldNote |
文字 | 該訂單的先前備註(若先前未設定備註,則為空) |
newNote |
文字 | 訂單上的新備註(若備註已被清除,則為空) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:向倉庫發出延遲通知
- 將「揀貨**順序備註變更」**設為觸發條件。
- 新增條件:
order.displayFulfillmentStatus不同於FULFILLED。 - 新增「發送內部電子郵件」:
{{order.name}} note changed from "{{oldNote}}" to "{{newNote}}"。 - 開啟此工作流程。
訂單屬性已變更
當訂單的自訂屬性(購物車屬性、備註屬性)被新增、移除或變更時觸發。changes.items 中的每個項目皆包含changeType、key 以及這兩者的值。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟它。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 針對由送達日期選擇器、禮物選項或 B2B 表單所填寫的屬性做出反應。
- 偵測員工在訂單成立後修正屬性的情況。
「訂單屬性變更」會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 自訂屬性已變更的訂單。這是個完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
changes |
對象 | 偵測到屬性變更。每個項目皆包含 changeType(新增、移除或變更)、鍵值,以及舊值與新值。 |
changes.items |
物件清單 | 偵測到的屬性變更清單 |
changes.items (each).changeType |
文字 | 變更類型:新增、移除、修改 |
changes.items (each).key |
文字 | 屬性鍵(亦稱 note_attribute 名稱) |
changes.items (each).oldValue |
文字 | 先前值(當 changeType 為 'added' 時為空字串) |
changes.items (each).newValue |
文字 | 新值(當 changeType 為 'removed' 時為空字串) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:針對送貨日期變更做出反應
- 將「揀貨**順序屬性變更」**設為觸發條件。
- 新增一項條件:
changes.items中,至少有一項的key等於delivery_date。 - 新增**「發送內部電子郵件**」。Flow 的文字欄位支援 Liquid 語法,因此透過
for迴圈遍歷changes.items,便會將每個條目的key連同其oldValue與newValue一併列印出來。 - 開啟此工作流程。
訂單明細項目已變更
當訂單被編輯時觸發:新增或移除商品、變更數量、價格或變體。changes.items 中的每個條目都會標示觸發類型(added、removed、quantity_changed、price_changed、variant_changed),並包含舊值與新值。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 請通知倉庫,某筆已揀貨的訂單內容有所變更。
- 編輯後,請重新執行詐欺或保證金檢查。
- 將訂單編輯內容同步至 ERP 系統,但這項操作因 Shopify 自身的訂單 webhook 而變得相當棘手。
「訂單明細項目變更」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 已更新的訂單。這是一筆完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
changes |
對象 | 偵測到明細項目的變更,並列出舊值與新值 |
changes.items |
物件清單 | 偵測到的變更清單 |
changes.items (each).changeType |
文字 | 變更類型:新增、移除、數量變更、價格變更、變體變更 |
changes.items (each).lineItemId |
ID | 明細項目編號(如有) |
changes.items (each).productTitle |
文字 | 產品名稱 |
changes.items (each).variantTitle |
文字 | 替代標題 |
changes.items (each).oldVariantId |
ID | 舊版 GID(適用於已移除或 variant_changed 的情況) |
changes.items (each).newVariantId |
ID | 新變體 GID(適用於新增或變體變更) |
changes.items (each).oldProductId |
ID | 舊產品 GID(適用於已移除或變體已變更的情況) |
changes.items (each).newProductId |
ID | 新產品 GID(適用於新增或變體變更) |
changes.items (each).oldQuantity |
數字 | 舊數量(適用於 quantity_changed) |
changes.items (each).newQuantity |
數字 | 新數量(適用於 quantity_changed) |
changes.items (each).oldPrice |
文字 | 舊價格(適用於 price_changed) |
changes.items (each).newPrice |
文字 | 新價格(適用於 price_changed) |
changes.items (each).lineItemData |
文字 | 完整的明細項目資料(以 JSON 格式呈現) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當某項物品被移出時,暫停倉庫作業
- 將「揀**貨單明細項目已變更」**設為觸發條件。
- 新增一項條件:
changes.items中至少有一項的changeType等於removed。 - 新增訂單標籤「
edited-recheck」,並發送內部電子郵件,列出changes.items中每筆記錄的productTitle和variantTitle(在電子郵件正文中使用 Liquidfor迴圈)。 - 開啟此工作流程。
訂單處理方式變更
當訂單的履約狀態發生變更時(null、partial、fulfilled、restocked),以及其間發生的履約事件(例如:單筆訂單已履約、履約被取消、新增或變更追蹤資訊)時,此事件會觸發。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。該功能的專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 請自行發送附有追蹤編號的出貨通知。
- 偵測已取消的訂單履行。
- 應以每筆貨運為單位更新 ERP,而非以每筆訂單為單位。
「訂單履行變更」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 履行狀態已變更的訂單。這是一個完整的「Shopify」訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
oldFulfillmentStatus |
文字 | 先前的 REST 訂單履行狀態(null、部分履行、已履行、已補貨) |
newFulfillmentStatus |
文字 | 新的 REST 訂單履行狀態(null、部分履行、已履行、已補貨) |
changes |
對象 | 偵測到履約變更及其詳細資訊 |
changes.items |
物件清單 | 偵測到的變更清單 |
changes.items (each).changeType |
文字 | 變更類型:status_changed、line_item_fulfilled、line_item_unfulfilled、tracking_updated |
changes.items (each).lineItemId |
ID | 明細項目編號(適用於 line_item_fulfilled/unfulfilled) |
changes.items (each).productTitle |
文字 | 產品名稱 |
changes.items (each).variantTitle |
文字 | 替代標題 |
changes.items (each).oldFulfillmentStatus |
文字 | 舊的訂單履行狀態(例如:null、部分完成、已完成、已補貨) |
changes.items (each).newFulfillmentStatus |
文字 | 新的履約狀態(例如:null、部分完成、已完成、已補貨) |
changes.items (each).fulfillmentId |
ID | 履約編號(適用於 tracking_updated) |
changes.items (each).trackingNumber |
文字 | 追蹤編號 |
changes.items (each).trackingUrl |
文字 | 追蹤網址 |
changes.items (each).trackingCompany |
文字 | 追蹤公司 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:轉發新的追蹤編號
- **將「揀貨訂單履行」**設為觸發條件。
- 新增一個**「For each」**迴圈,遍歷
changes.items。 - 在迴圈內部新增一個條件:迴圈項目的
trackingNumber既非空,且確實存在。 - 新增**「傳送 HTTP 請求」**節點,並輸入
{{order.name}}以及迴圈項目的trackingNumber和trackingUrl。透過「新增變數」選取這些值:Flow 會將迴圈項目列在觸發器資料的旁邊。 - 開啟此工作流程。
訂單顯示狀態已變更
當管理員所顯示的履行狀態發生變更時觸發:unfulfilled、in_progress、on_hold、scheduled、partially_fulfilled、fulfilled。Shopify 針對這些狀態不會發送 webhook,因此應用程式會依照排程進行檢查。
| 火災源自 | 是根據排程進行檢查的,因為 Shopify 不會針對此事件發送 webhook |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。該功能的專用開關位於應用程式的「**觸發器」**頁面上 |
用於
- 當履約服務或 POS 將訂單標記為「進行中」時,觸發相應動作。
- 將已「暫停」的訂單升級處理。
「訂單顯示狀態變更」會向您的工作流程傳送什麼訊息
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 顯示履行狀態已變更的訂單。這是一筆完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
oldDisplayFulfillmentStatus |
文字 | 先前的展示履行狀態(例如:未履行、進行中、部分履行、已履行、暫停、已排程) |
newDisplayFulfillmentStatus |
文字 | 新的展示履行狀態(例如:未履行、進行中、部分履行、已履行、暫停中、已排程) |
fulfillmentStatus |
文字 | 目前的履約狀態(未履約、部分履約、已履約、已補貨) |
changes |
對象 | 偵測到顯示狀態的變更及相關詳細資訊 |
changes.items |
物件清單 | 偵測到的變更清單 |
changes.items (each).changeType |
文字 | 變更類型:order_status_changed、fulfillment_display_status_changed |
changes.items (each).fulfillmentId |
ID | 履約編號(用於每次履約的顯示狀態變更) |
changes.items (each).oldDisplayStatus |
文字 | 先前顯示狀態 |
changes.items (each).newDisplayStatus |
文字 | 新的顯示狀態 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:將處於暫停狀態的訂單上報
- 將「揀貨**順序顯示狀態變更」**設為觸發條件。
- 新增一項條件:
newDisplayFulfillmentStatus等於on_hold。 - 新增「透過
{{order.name}}向客戶服務發送內部電子郵件」功能。 - 開啟此工作流程。
訂單財務狀態已變更
當訂單的財務狀態發生變更時觸發,例如:pending 變更為 paid、paid 變更為 partially_refunded 或 refunded、authorized 變更為 voided。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 針對訂單完成數天後才標示為「已付款」的銀行轉帳及發票,請採取相應措施。
- 請向會計部門通報退款事宜。
- 訂單必須在付款完成後,才可釋出進行處理。
「財務狀況變更」會將哪些項目傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 財務狀態發生變更的訂單。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
oldFinancialStatus |
文字 | 先前的財務狀態(例如:待處理、已核准、已支付) |
newFinancialStatus |
文字 | 新的財務狀態(例如:已付款、部分退款、已退款、已作廢) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當發票款項已支付時,釋放 B2B 訂單
- 將「揀**貨單財務狀態變更」**設為觸發條件。
- 新增條件:
oldFinancialStatus等於pending,且newFinancialStatus等於paid。 - 新增並移除訂單標籤
awaiting-payment,並加入一個針對order.fulfillmentOrders的「For each over」迴圈,其中包含「Release fulfillment order hold」條件。 - 開啟此工作流程。
訂單寄送地址已變更
當訂單下單後其運送地址發生變更時觸發。shippingAddress 為單行格式,shippingAddressDetails 則為分開的欄位。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 訂單資料存取 + 客戶資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 當揀貨開始後地址發生變更時,請停止或重新安排貨件的運送路線。
- 重新執行地址驗證或詐騙檢查。
「運送地址變更」會向您的工作流程傳送哪些訊息
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
order |
訂單(Shopify) | 該訂單的配送地址已變更。這是一筆完整的 Shopify 訂單,因此其所有欄位以及 Flow 自身的訂單操作皆可使用。 |
shippingAddress |
文字 | 該訂單目前的寄送(送貨)地址,以單行格式呈現(可能為空) |
shippingAddressDetails |
對象 | 訂單的當前寄送(送貨)地址,以結構化欄位形式呈現(可能為空) |
shippingAddressDetails.firstName |
文字 | 地址上的名字 |
shippingAddressDetails.lastName |
文字 | 地址上的姓氏 |
shippingAddressDetails.name |
文字 | 全名,由 firstName 和 lastName 衍生而來 |
shippingAddressDetails.company |
文字 | 公司或組織名稱 |
shippingAddressDetails.address1 |
文字 | 第一行 - - 街道地址或郵政信箱號碼 |
shippingAddressDetails.address2 |
文字 | 第二行 - - 公寓、套房或單位 |
shippingAddressDetails.city |
文字 | 市、區、村或鎮 |
shippingAddressDetails.province |
文字 | 地區 - 省、州或區 |
shippingAddressDetails.provinceCode |
文字 | 地區代碼(例如 ON) |
shippingAddressDetails.zip |
文字 | 郵遞區號或郵政編碼 |
shippingAddressDetails.country |
文字 | 國家名稱 |
shippingAddressDetails.countryCode |
文字 | 兩字母國家代碼(例如 US) |
shippingAddressDetails.phone |
文字 | 地址上的電話號碼 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件記錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:暫停一筆地址已變更的訂單
- 「揀貨訂單」的運送地址已在流程中變更。此功能需要存取****訂單和客戶資料;當您從「觸發器」頁面啟用此功能時,應用程式會透過同一個對話方塊同時要求這兩項資料。
- 新增條件:
order.displayFulfillmentStatus不同於FULFILLED。 - 新增訂單標籤
address-changed,並向倉庫發送內部電子郵件。 - 開啟此工作流程。
下一步
預設情況下,此應用程式會監控過去 60 天內的訂單,這正是「Shopify」所授予的權限。若要對更早訂單的編輯進行回應,請在「權限」頁面中延長訂單歷史紀錄。請參閱 權限與資料存取。
- 完整的觸發器參考指南 - 將所有觸發器集中於單一頁面。
- 選擇合適的扳機 - 哪一種適合您的情況。
- 自訂觸發器 - 若沒有合適的內建觸發器,請自行撰寫。
- 事件歷史紀錄與疑難排解 - 查看發射了什麼以及它攜帶了什麼。
- 在記錄的管理頁面上觸發事件 - 某筆紀錄的最新動態,顯示於「Shopify」管理介面中的專屬頁面。

