觸發器教學訂單觸發器,逐步解說

訂單觸發器,逐步解說

複製頁面

關於訂單標籤、備註、屬性、明細項目、履約及狀態變更觸發器的Shopify Flow逐步教學指南。

Shopify Flow 針對訂單的重要時刻(例如:建立、付款、完成、取消)提供了完善的觸發機制。但它缺乏的是這些階段之間的所有細節。這十項觸發機制會在訂單建立後發生任何修改時觸發,並分別詳細記錄了具體的變更內容。

本頁內容:訂單更新, 新增訂單標籤, 移除訂單標籤, 訂單備註變更, 訂單屬性變更, 訂單明細變更, 訂單履行狀態變更, 訂單顯示狀態變更, 訂單財務狀態變更, 訂單寄送地址變更

Shopify Flow
如何找到它們:在「Shopify Flow」中選擇「Select a trigger」,開啟「Workflow Trigger Extensions」,然後搜尋「Order」。

訂單更新

每當訂單更新時都會觸發。它攜帶changes:已變更的追蹤欄位(財務狀態、履行狀態、標籤、備註、明細項目、自訂屬性)及其變更前與變更後的值。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用該功能的「Shopify Flow」工作流程,即可開啟該功能。其專屬開關位於該應用程式的「**觸發器」**頁面中

用於

  • 一個能因應多種訂單編輯情況的工作流程。
  • 供客戶服務部門參考的訂單變更紀錄。

「訂單更新」會將哪些資料傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 已更新的訂單。這是一筆完整的 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,以查看確切的傳送內容。

範例:透過您的客服系統,將已追蹤的訂單變更記錄至該訂單的時間軸中

  1. 選擇「**訂單更新」**作為觸發條件。
  2. 新增條件:changes.fields 既非空,又存在。
  3. 在您的客服系統中新增**「發送 HTTP 請求」**功能,並在請求體中加入 {{order.name}}。Shopify Flow 的文字欄位支援 Liquid 語法,因此透過 for 對 changes.items 進行迴圈處理,即可針對每項變更新增一行,並包含其 field、oldValue 及 newValue。
  4. 開啟此工作流程。

已新增訂單標籤

當訂單中新增至少一個標籤時觸發。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用該功能的「Shopify Flow」工作流程,即可將其開啟。該功能的專用開關位於應用程式的「**觸發器」**頁面中

用於

  • 請讓員工透過標籤啟動流程:gift-wrap、hold、priority。
  • 針對來自防詐騙、訂閱或履約應用程式的標籤做出反應。

「新增訂單標籤」功能會將哪些資料傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 標籤已變更的訂單。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Shopify Flow 自身的訂單操作皆可使用。
addedTags 文字 以逗號分隔的、已新增至訂單的標籤清單
removedTags 文字 在同一則更新中從訂單中移除的標籤清單(以逗號分隔;可能為空)
currentTags 文字 訂單上所有當前標籤的逗號分隔清單
previousTags 文字 此更新之前,該訂單上所有先前標籤的以逗號分隔清單
eventId 文字 此事件的 ID。請在應用程式的「事件記錄」中搜尋此 ID,以查看確切的傳送內容。

範例:當訂單被標記為「暫停」時,暫停出貨

  1. 將「揀貨**順序標籤已新增」**設為觸發條件。
  2. 新增條件:addedTags 包含 hold。
  3. 新增一個「針對 order.fulfillmentOrders 執行 **For each」**操作,並設定動作為「暫停履行訂單」。
  4. 啟用此工作流程。建立鏡像,並勾選「**移除訂單標籤」**及「解除履約訂單保留」選項。

已移除訂單標籤

當訂單中至少有一個標籤被移除時觸發。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用此功能的「Shopify Flow」工作流程,即會開啟該功能。其專屬開關位於該應用程式的「**觸發器」**頁面上

用於

  • 釋放標籤所束縛的一切。
  • 當移除「needs-review」標籤時,請關閉該任務。

「移除訂單標籤」功能會將哪些項目傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 標籤已變更的訂單。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Shopify Flow 自身的訂單操作皆可使用。
removedTags 文字 從訂單中移除的標籤清單(以逗號分隔)
addedTags 文字 在同一筆更新中新增至訂單的標籤清單,以逗號分隔(可能為空)
currentTags 文字 訂單上所有現行標籤的逗號分隔清單
previousTags 文字 此更新之前,該訂單上所有先前標籤的以逗號分隔清單
eventId 文字 此事件的 ID。請在應用程式的「事件記錄」中搜尋此 ID,以查看確切的傳送內容。

範例:當標籤被移除時,解除鎖定

  1. 已將「揀貨**順序標籤移除」**設為觸發條件。
  2. 新增條件:removedTags 包含 hold。
  3. 新增一個「**For each」**迴圈,遍歷 order.fulfillmentOrders 並執行「釋放履約訂單保留」操作。
  4. 開啟此工作流程。

訂單備註已變更

當工作人員或客戶在結帳編輯階段新增、變更或清除訂單明細時,會觸發此事件。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用此功能的「Shopify Flow」工作流程,即可開啟該功能。其專屬開關位於該應用程式的「**觸發器」**頁面中

用於

  • 若在訂單下單後新增了備註,請通知倉庫。
  • 解析配送指示。

「訂單備註變更」會將哪些內容傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 該訂單的備註已變更。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Shopify Flow 自身的訂單操作皆可使用。
oldNote 文字 該訂單的先前備註(若先前未設定備註,則為空)
newNote 文字 訂單上的新備註(若備註已清除,則為空)
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:向倉庫發出延遲通知

  1. 將「揀貨**順序備註變更」**設為觸發條件。
  2. 新增條件:order.displayFulfillmentStatus 不同於 FULFILLED。
  3. 新增「發送內部電子郵件」:{{order.name}} note changed from "{{oldNote}}" to "{{newNote}}"。
  4. 開啟此工作流程。

訂單屬性已變更

當訂單的自訂屬性(購物車屬性、備註屬性)被新增、移除或變更時觸發。changes.items 中的每個項目皆包含 changeType、key 以及這兩者的值。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用該功能的「Shopify Flow」工作流程,即可開啟此功能。其專屬開關位於該應用程式的「**觸發器」**頁面上

用於

  • 針對由送達日期選擇器、禮物選項或 B2B 表單所填寫的屬性做出反應。
  • 偵測員工在訂單成立後修正屬性的情況。

「訂單屬性變更」會將哪些資料傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 自訂屬性已變更的訂單。這是一個完整的 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,以查看確切的傳送內容。

範例:因應交貨日期變更而採取的應對措施

  1. 將「揀貨**順序屬性變更」**設為觸發條件。
  2. 新增一項條件:changes.items 中至少有一項的 key 等於 delivery_date。
  3. 新增**「傳送內部電子郵件**」。Shopify Flow 的文字欄位支援 Liquid 語法,因此透過 for 對 changes.items 進行迴圈處理,即可將每個條目的 key 連同其 oldValue 和 newValue 一併列印出來。
  4. 開啟此工作流程。

訂單明細項目已變更

當訂單被編輯時(例如新增或移除商品、變更數量、價格或變體)會觸發此事件。changes.items 中的每筆記錄都會標示事件類型(added、removed、quantity_changed、price_changed、variant_changed),並包含舊值與新值。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用該功能的「Shopify Flow」工作流程,即可開啟此功能。其專屬開關位於該應用程式的「**觸發器」**頁面上

用於

  • 請通知倉庫,某筆已揀貨的訂單內容有所變更。
  • 編輯後,請重新執行詐欺或保證金檢查。
  • 將訂單編輯內容同步至 ERP 系統,而 Shopify 自身提供的訂單 Webhook 功能卻讓這項操作變得十分棘手。

「訂單明細項目變更」會將哪些內容傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 已更新的訂單。這是一筆完整的 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,以查看確切的傳送內容。

範例:當某項物品被移出時,暫停倉庫運作

  1. 將「揀貨**訂單明細項目已變更」**設為觸發條件。
  2. 新增一項條件:changes.items 中至少有一項的 changeType 等於 removed。
  3. 新增訂單標籤 edited-recheck,並發送一封內部電子郵件,列出 changes.items 中每筆記錄的 productTitle 及 variantTitle(在電子郵件正文中使用 Liquid for 迴圈)。
  4. 開啟此工作流程。

訂單處理方式已變更

當訂單的履約狀態發生變更時(null、partial、fulfilled、restocked),以及其間發生的履約事件(例如:單筆訂單已履約、履約已取消、追蹤資訊新增或變更)時,此事件會觸發。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用該功能的「Shopify Flow」工作流程,即可開啟該功能。其專屬開關位於該應用程式的「**觸發器」**頁面中

用於

  • 請自行發送附有追蹤資訊的出貨通知。
  • 偵測已取消的訂單履行。
  • 應以每筆貨運為單位來更新 ERP,而非以每筆訂單為單位。

「訂單履行變更」會將哪些內容傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 履行狀態已變更的訂單。這是一筆完整的 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 文字 新的履約狀態(例如:空值、部分完成、已完成、已補貨)
changes.items (each).fulfillmentId ID 履約編號(適用於 tracking_updated)
changes.items (each).trackingNumber 文字 追蹤編號
changes.items (each).trackingUrl 文字 追蹤網址
changes.items (each).trackingCompany 文字 追蹤公司
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:轉發新的追蹤編號

  1. **將「揀貨訂單履約」**設為觸發條件。
  2. 新增一個**「For each」**迴圈,遍歷 changes.items。
  3. 在迴圈內部新增一個條件:迴圈項目的trackingNumber不為空且存在。
  4. 新增**「傳送 HTTP 請求」**動作,並設定為 {{order.name}},以及迴圈項目的 trackingNumber 和 trackingUrl。透過「新增變數」選取這些值:Shopify Flow 會將迴圈項目列於觸發器資料的旁邊。
  5. 開啟此工作流程。

訂單顯示狀態已變更

當管理員所顯示的履約狀態發生變更時觸發:unfulfilled、in_progress、on_hold、scheduled、partially_fulfilled、fulfilled。Shopify 針對這些狀態不會發送 Webhook,因此應用程式會依照排程進行檢查。

火災源自 是根據排程進行檢查的,因為 Shopify 並不會針對此操作發送 webhook
權限 訂單資料存取
已開啟 啟用一個使用該功能的 Shopify Flow 工作流程,即會開啟該功能。其專屬開關位於該應用程式的「**觸發器」**頁面中

用於

  • 當履約服務或 POS 將訂單標記為「進行中」時,進行相應處理。
  • 將已「暫停」的訂單升級處理。

「訂單顯示狀態變更」會向您的工作流程傳送什麼

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 顯示中的訂單履行狀態已變更的訂單。這是一筆完整的 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,以查看確切的傳送內容。

範例:將已暫停處理的訂單升級處理

  1. 將「揀**貨單顯示狀態變更」**設為觸發條件。
  2. 新增一個條件:newDisplayFulfillmentStatus 等於 on_hold。
  3. 新增「透過 {{order.name}} 向客戶服務發送內部電子郵件」功能。
  4. 開啟此工作流程。

訂單財務狀態已變更

當訂單的財務狀態發生變更時觸發,例如:pending 變更為 paid、paid 變更為 partially_refunded 或 refunded、authorized 變更為 voided。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取
已開啟 啟用一個使用該功能的「Shopify Flow」工作流程,即可開啟此功能。其專屬開關位於該應用程式的「**觸發器」**頁面中

用於

  • 針對訂單完成數天後才標示為「已付款」的銀行轉帳及發票,請予以處理。
  • 請向會計部門通報退款事宜。
  • 訂單必須在付款後,才可釋出進行出貨。

「財務狀況變更」會將哪些項目傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 財務狀態發生變更的訂單。這是一個完整的 Shopify 訂單,因此其所有欄位以及 Shopify Flow 自身的訂單操作皆可使用。
oldFinancialStatus 文字 先前的財務狀態(例如:待處理、已核准、已付款)
newFinancialStatus 文字 新的財務狀態(例如:已付款、部分退款、已退款、已作廢)
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋該 ID,以查看確切的傳送內容。

範例:當發票款項已支付時,釋出 B2B 訂單

  1. 將「揀**貨單財務狀態變更」**設為觸發條件。
  2. 新增條件:oldFinancialStatus 等於 pending,且 newFinancialStatus 等於 paid。
  3. 新增並移除訂單標籤 awaiting-payment,並針對 order.fulfillmentOrders 加入「For each over」迴圈,同時啟用「釋放訂單履行」的訂單暫存功能。
  4. 開啟此工作流程。

訂單寄送地址已變更

當訂單提交後,其運送地址發生變更時觸發。shippingAddress 為單一行,shippingAddressDetails 則為獨立欄位。

火災源自 Shopify Webhook 加上變更偵測
權限 訂單資料存取 + 客戶資料存取
已開啟 啟用一個使用該功能的Shopify Flow工作流程,即可開啟此功能。其專屬開關位於該應用程式的「**觸發器」**頁面中

用於

  • 當揀貨開始後地址發生變更時,請停止或重新安排該貨件的運送路線。
  • 重新執行地址驗證或詐騙檢查。

「運送地址變更」會向您的工作流程傳送哪些訊息

Shopify Flow 中的變數 類型 內容為何
order 訂單(Shopify) 該訂單的寄送地址已變更。這是一筆完整的 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,以查看確切的傳送內容。

範例:暫停一筆地址已變更的訂單

  1. 在「Shopify Flow」中變更揀貨訂單的寄送地址。此功能需要存取****訂單和客戶資料;當您從「觸發器」頁面啟用此功能時,應用程式會透過同一個對話方塊同時要求這兩項權限。
  2. 新增條件:order.displayFulfillmentStatus 不同於 FULFILLED。
  3. 新增訂單標籤 address-changed,並向倉庫發送內部電子郵件。
  4. 開啟此工作流程。

下一步

預設情況下,該應用程式會監控過去 60 天的訂單,這正是「Shopify」所授予的權限。若要對更早的訂單編輯做出反應,請在「權限」頁面上延長訂單歷史記錄。請參閱 權限與資料存取。