產品觸發機制,逐步解說
Shopify Flow 可以告訴您某項產品已更新,但無法告訴您具體有哪些變更,也無法告知您之前的數值為何。這十一項觸發器則能同時做到這兩點:每項觸發器會在某種變更發生時觸發,並將變更前與變更後的數值傳遞給您的工作流程。
以下每個部分都是一個簡短的教學:說明什麼會觸發該事件、哪些資料會傳入 Flow,以及一個您可以在幾分鐘內重現的工作流程。
本頁內容:產品更新, 產品狀態變更, 產品標題變更, 產品代號變更, 產品描述變更, 產品供應商變更, 產品類型變更, 新增產品標籤, 移除產品標籤, 產品發佈至通路, 產品從通路下架

產品更新
每次儲存產品時都會觸發事件,無論內容有何變更。自 2.10.0 版本起,該事件還會攜帶 changes:列出已變更的追蹤欄位(標題、識別碼、描述、狀態、供應商、類型、標籤),並附上變更前與變更後的值。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可將其開啟。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 一個工作流程,可針對多種產品編輯進行反應,並在
changes.fields上建立分支。 - 稽核軌跡:將所有被追蹤的變更(無論是舊的還是新的)記錄到試算表或 Slack 頻道中。
- 在您釐清自己真正需要哪種更具體的觸發條件之前,這是一個通用的解決方案。
「產品更新」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 已更新的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的产品操作均可使用。 |
payload |
文字 | 包含已更新產品 GID 的 JSON 物件(例如:{"id":"gid://shopify/Product/123"}) |
changes |
對象 | 哪些追蹤欄位已變更(標題、代號、描述、狀態、供應商、類型、標籤),並列出各欄位的舊值與新值 |
changes.fields |
文字清單 | 已變更的受追蹤欄位名稱 |
changes.items |
物件清單 | 每個變更欄位的舊值與新值 |
changes.items (each).field |
文字 | 已變更的欄位:標題、暱稱、描述、狀態、供應商、產品類型或標籤 |
changes.items (each).oldValue |
文字 | 更新前的數值。長數值會被縮短 |
changes.items (each).newValue |
文字 | 更新後的數值。長數值會被縮短 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:將每項被追蹤的產品變更連同其舊值與新值一併記錄下來
- 在「Shopify Flow」中,選擇**「Select a trigger**」,開啟「Workflow Trigger Extensions」,然後選擇「Product Update」。
- 新增條件:
changes.fields既非空且存在。追蹤欄位以外的更新(例如價格編輯、圖片更新)會隨同一個空清單傳入,並在此處停止處理。 - 新增**「發送內部電子郵件**」(或「向 Slack 發送 HTTP 請求」)。Flow 的文字欄位支援 Liquid 語法,因此透過
for對changes.items進行迴圈處理,即可在每次變更時輸出一行:先顯示該條目的field,接著是oldValue和newValue,最後是{{product.title}}。 - 開啟工作流程。這樣也會在應用程式中啟用觸發器。


產品狀態已變更
當產品狀態在「活躍」、「草稿」、「已歸檔」和「**未列出」**之間切換時,會觸發此事件。若儲存操作未變更狀態,則不會觸發此事件。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。該功能本身的開關位於應用程式的「**觸發器」**頁面中 |
用於
- 產品一上線,請立即通知行銷團隊。
- 當產品被歸檔時,請將其從商品列表或套裝中移除。
- 擷取那些因誤操作而被重新設為草稿狀態的產品。
「產品狀態變更」會將哪些訊息傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 狀態已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品動作均可使用。 |
oldStatus |
文字 | 產品先前狀態(已啟用、草稿、已歸檔或未公開) |
newStatus |
文字 | 新產品的狀態(有效、草稿、已歸檔或未公開) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此事件,以查看確切的傳送內容。 |
範例:宣布剛上線的產品
- 選擇「**產品狀態變更」**作為觸發條件。
- 新增一個條件:
newStatus等於active,以及第二個條件oldStatus等於draft。 - **接著,**在「發送內部電子郵件」下方:主旨設為「
Now live: {{product.title}}」,內文填入「{{product.onlineStoreUrl}}」。 - 可選:使用
new-arrival新增產品標籤,以便讓該商品被系列收錄。 - 開啟此工作流程。
產品名稱已變更
當產品的標題變更時會觸發此事件。除了產品的標題變更外,其他情況均不會觸發此事件。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可將其開啟。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 請確保外部目錄、產品資訊管理系統(PIM)或翻譯工具與已重新命名的产品保持同步。
- 每當暢銷書的書名有所變更時,請要求進行 SEO 檢討。
- 偵測批次編輯中意外重命名的情況。
「產品標題變更」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品 (Shopify) | 標題已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品操作皆可使用。 |
oldTitle |
文字 | 該產品的先前名稱 |
newTitle |
文字 | 該產品的新名稱 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:向您的團隊發送一則包含兩個標題的更名通知
- 選擇「**產品標題變更」**作為觸發條件。
- 新增**一封內部電子郵件,**主旨設為「
Product renamed」,內文設為「"{{oldTitle}}" is now "{{newTitle}}" - {{product.onlineStoreUrl}}」。 - 若僅需篩選部分產品,請在前面加上條件:
product.vendor等於您的品牌,或product.tags包含hero。 - 開啟此工作流程。
產品名稱已變更
當產品的 URL 處理函式發生變更時會觸發此事件,該處理函式即為網址中 /products/ 之後的部分。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即會開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 自動從舊網址建立重定向,以確保連結和搜尋結果仍能正常運作。
- 請告知負責管理廣告或電子郵件行銷活動的人員,該著陸頁已搬遷。
「產品編號變更」會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 此為其「handle」已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品操作皆可使用。 |
oldHandle |
文字 | 該產品的先前 URL 識別碼 |
newHandle |
文字 | 該產品的新網址識別碼 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件記錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:從舊的處理程序建立一個 URL 重定向
- 選擇「**產品編號變更」**作為觸發條件。
- 新增「**建立 URL 重定向」**動作。
- 將「**路徑」**設定為
/products/{{oldHandle}},並將「**目標」**設定為/products/{{newHandle}}。 - 啟用工作流程,然後變更測試產品的識別碼,並開啟舊的 URL。
產品描述已變更
當產品的描述(HTML 主體)發生變更時觸發。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 僅在源文本確實有所變更時,才重新執行翻譯或 AI 摘要。
- 在編輯完畢後,請法律或合規部門重新檢查受監管的產品。
- 重新載入包含該產品說明的產品資料饋送。
「產品描述變更」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 產品描述已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品操作皆可使用。 |
oldDescription |
文字 | 前述說明(已截短至 4000 個字元;如有需要,請透過產品參考編號取得完整說明) |
newDescription |
文字 | 新描述(已截短至 4000 個字元;如有需要,請透過產品編號取得完整描述) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:標記已編輯的描述以供審核
- 將「**產品描述已變更」**設為觸發條件。
- 使用
needs-copy-review新增產品標籤。 - 在管理後台中新增「向審閱者發送內部電子郵件,內容包含
{{product.title}}以及產品連結」的功能。 - 審查完成後,審查員會移除該標籤。若此時應發生某些情況,請搭配使用「產品標籤已移除」功能。
產品供應商變更
當產品的供應商變更時,系統會觸發此事件。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 在基於供應商的系列或價格清單之間移動產品。
- 當產品被重新指派給另一家供應商時,請通知採購部門。
「產品供應商變更」會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 供應商已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品操作皆可使用。 |
oldVendor |
文字 | 前一家供應商 |
newVendor |
文字 | 新供應商 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當供應商變更時,替換供應商標籤
- 選擇「**產品供應商變更」**作為觸發條件。
- 使用
vendor:{{oldVendor}}新增或移除產品標籤。 - 使用
vendor:{{newVendor}}新增產品標籤。 - 開啟此工作流程。
產品類型已變更
當產品類型變更時觸發。此處指的是自由輸入的「類型」欄位,而非Shopify的標準產品類別。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 將商品重新分類至基於類型的自動化商品組合或運送設定中。
- 請確保外部系統中的稅務或海關對應表始終保持最新。
「產品類型變更」會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 類型已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品操作皆可使用。 |
oldType |
文字 | 前一種產品類型 |
newType |
文字 | 新產品類型 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當產品類型變更時,通知運維團隊
- 將「選擇**產品類型已變更」**設為觸發條件。
- 若僅有部分類型重要,請新增一個條件:
newType等於Hazardous。 - 新增「發送內部電子郵件」:
{{product.title}} moved from type "{{oldType}}" to "{{newType}}"。 - 開啟此工作流程。
已新增產品標籤
當產品新增至少一個標籤時觸發此事件。addedTags 僅包含新增的標籤,因此您無需自行比較清單。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。該功能本身的開關位於應用程式的「**觸發器」**頁面中 |
用於
- 從標籤啟動程序:
photo-ready、approved、clearance。 - 讓員工無需開啟 Flow,即可直接從產品頁面觸發自動化流程。
「新增的產品標籤」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 標籤已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的產品動作皆可使用。 |
addedTags |
文字 | 以逗號分隔的、已新增至該商品的標籤清單 |
removedTags |
文字 | 在同一更新中從產品中移除的標籤清單(以逗號分隔,可能為空) |
currentTags |
文字 | 該商品目前所有標籤的逗號分隔清單 |
previousTags |
文字 | 此更新之前,該產品所有先前標籤的以逗號分隔清單 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當產品標籤獲得批准時,發布該產品
- 選擇「**新增產品標籤」**作為觸發條件。
- 新增條件:
addedTags包含approved。 - **接著,**在「更新產品狀態」下,選擇「
Active」(或「將產品發佈至頻道」)。 - 若標籤僅為一個訊號,請使用
approved來新增或移除產品標籤。 - 開啟此工作流程。
已移除產品標籤
當產品上至少有一個標籤被移除時觸發。removedTags 陣列中恰好包含那些已被移除的標籤。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 當狀態標籤被移除時結束流程:當移除「
clearance」時,銷售即告結束。 - 撤銷「新增匹配**標籤」**工作流程所執行的操作。
「已移除的產品標籤」會將哪些內容傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 標籤已變更的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的产品操作皆可使用。 |
addedTags |
文字 | 在同一更新中新增至該產品的標籤清單(以逗號分隔,可能為空) |
removedTags |
文字 | 從產品中移除的標籤清單(以逗號分隔) |
currentTags |
文字 | 該商品目前所有標籤的逗號分隔清單 |
previousTags |
文字 | 本次更新前,該產品所有先前標籤的以逗號分隔清單 |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當清倉標籤被移除時,即結束該項商品的促銷活動
- 選擇「**產品標籤已移除」**作為觸發條件。
- 新增條件:
removedTags包含clearance。 - 新增可撤銷該筆銷售的動作,例如「移除商品標籤」
sale-badge以及「向商品管理部門發送內部電子郵件」。 - 開啟此工作流程。
產品已發佈至通路
當產品發佈至一個或多個銷售管道、市場或 B2B 產品目錄時觸發。channels.added 列出該產品剛出現的位置,channels.current 則列出該產品目前所有出現的位置。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 出版物資料存取 + 產品、變體及系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面中 |
用於
- 當產品上架至線上商店時,請啟動上市檢查清單。
- 只有在產品已發佈至該通路後,才將其推送至該市場的資料源。
- 當商品在銷售點系統(POS)上架時,請通知零售團隊。
「發佈至頻道」的產品會將哪些資料傳送至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 已發佈的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的产品操作皆可使用。 |
channels |
對象 | 已新增/移除/目前已發佈的頻道,每個頻道皆為一則發佈項目 (id, name, type, catalogId) |
channels.added |
物件清單 | 在此事件中,該產品剛發布到的頻道。 |
channels.added (each).id |
ID | 該出版物 GID (gid://shopify/Publication/...) |
channels.added (each).name |
文字 | 管道/情境名稱(例如:線上商店、銷售點、Google 與 YouTube、市場名稱,或 B2B 據點名稱) |
channels.added (each).type |
文字 | 銷售情境的類型:銷售管道、市場或 B2B 地點 |
channels.added (each).catalogId |
ID | 支撐本出版物的目錄 GID(AppCatalog、MarketCatalog 或 CompanyLocationCatalog) |
channels.removed |
物件清單 | 在此事件中,該產品剛從哪些頻道下架。 |
channels.removed (each).id |
ID | 該出版物 GID (gid://shopify/Publication/...) |
channels.removed (each).name |
文字 | 管道/情境名稱(例如:線上商店、銷售點、Google 與 YouTube、市場名稱,或 B2B 據點名稱) |
channels.removed (each).type |
文字 | 銷售情境的類型:銷售管道、市場或 B2B 地點 |
channels.removed (each).catalogId |
ID | 支撐本出版物的目錄 GID(AppCatalog、MarketCatalog 或 CompanyLocationCatalog) |
channels.current |
物件清單 | 該產品目前已發布的所有頻道(此變更後)。 |
channels.current (each).id |
ID | 該出版物 GID (gid://shopify/Publication/...) |
channels.current (each).name |
文字 | 管道/情境名稱(例如:線上商店、銷售點、Google 與 YouTube、市場名稱,或 B2B 據點名稱) |
channels.current (each).type |
文字 | 銷售情境的類型:銷售管道、市場或 B2B 地點 |
channels.current (each).catalogId |
ID | 支撐本出版物的目錄 GID(AppCatalog、MarketCatalog 或 CompanyLocationCatalog) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件記錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當產品抵達銷售點時,通知零售團隊
- 選擇「**產品發佈至頻道」**作為觸發條件。
- 新增一項條件:
channels.added中至少有一項的name等於Point of Sale。 - 新增「發送內部電子郵件」:
{{product.title}} is now available on POS。 - 開啟此工作流程。
產品已從頻道中移除
當產品從一個或多個銷售管道中下架時觸發。channels.removed 會列出該產品從哪些管道下架。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 出版物資料存取 + 產品、變體及系列資料存取 |
| 已開啟 | 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面上 |
用於
- 掌握那些悄然從線上商店下架的商品。
- 當產品離開廣告所指向的通路時,立即暫停該產品的廣告。
從「頻道」中未發布的產品會傳送哪些資料至您的工作流程
| 流量中的變量 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 尚未發佈的產品。這是一個完整的「Shopify」產品,因此其所有欄位以及 Flow 自身的产品操作皆可使用。 |
channels |
對象 | 已新增/移除/目前已發佈的頻道,每個皆為一則發佈內容 (id, name, type, catalogId) |
channels.added |
物件清單 | 在此事件中,該產品剛發布至的頻道。 |
channels.added (each).id |
ID | 該出版物 GID (gid://shopify/Publication/...) |
channels.added (each).name |
文字 | 管道/情境名稱(例如:線上商店、銷售點、Google 與 YouTube、市場名稱,或 B2B 據點名稱) |
channels.added (each).type |
文字 | 銷售情境的類型:銷售管道、市場或 B2B 地點 |
channels.added (each).catalogId |
ID | 支撐本出版物的目錄 GID(AppCatalog、MarketCatalog 或 CompanyLocationCatalog) |
channels.removed |
物件清單 | 在此事件中,該產品剛從哪些頻道下架。 |
channels.removed (each).id |
ID | 該出版物 GID (gid://shopify/Publication/...) |
channels.removed (each).name |
文字 | 管道/情境名稱(例如:線上商店、銷售點、Google 與 YouTube、市場名稱,或 B2B 地點名稱) |
channels.removed (each).type |
文字 | 銷售情境的類型:銷售管道、市場或 B2B 地點 |
channels.removed (each).catalogId |
ID | 支撐本出版物的目錄 GID(AppCatalog、MarketCatalog 或 CompanyLocationCatalog) |
channels.current |
物件清單 | 該產品目前已發佈的所有頻道(此變更後)。 |
channels.current (each).id |
ID | 該出版物 GID (gid://shopify/Publication/...) |
channels.current (each).name |
文字 | 管道/情境名稱(例如:線上商店、銷售點、Google 與 YouTube、市場名稱,或 B2B 地點名稱) |
channels.current (each).type |
文字 | 銷售情境的類型:銷售管道、市場或 B2B 地點 |
channels.current (each).catalogId |
ID | 支撐本出版物的目錄 GID(AppCatalog、MarketCatalog 或 CompanyLocationCatalog) |
eventId |
文字 | 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。 |
範例:當商品從線上商店出庫時發出警示
- 選擇「**頻道中的未發佈產品」**作為觸發條件。
- 新增一項條件:
channels.removed中至少有一項的name等於Online Store。 - 請透過
{{product.title}}寄送內部電子郵件或 Slack 請求,並附上管理員連結。 - 開啟此工作流程。
下一步
- 完整的觸發器參考指南 - 將所有觸發器集中於單一頁面。
- 選擇合適的扳機 - 哪一種適合您的情況。
- 自訂觸發器 - 若沒有現成的內建觸發器適用,請自行撰寫。
- 事件歷史紀錄與疑難排解 - 查看發射了什麼以及它攜帶了什麼。
- 在記錄的管理頁面上觸發事件 - 某筆紀錄的最新動態,顯示於「Shopify」管理介面中的專屬頁面。

