產品觸發機制,逐步解說
關於產品觸發器的逐步操作指南,說明如何透過 Shopify Flow 展示狀態、標題、代號、供應商、類型及標籤的舊值與新值。
Shopify Flow 可以通知您某項產品已更新,但無法告知您具體變更了哪些內容,也無法提供先前數值的資訊。這十一項觸發器則能同時做到這兩點:每項觸發器會針對某種變更觸發,並將變更前後的數值傳遞給您的工作流程。
以下每個部分都是一個簡短的教學:說明觸發條件為何、Shopify Flow 會接收哪些資料,以及一個您能在幾分鐘內重建的工作流程。
本頁內容:產品更新、產品狀態變更、產品標題變更、產品代號變更、產品描述變更、產品供應商變更、產品類型變更、新增產品標籤、移除產品標籤、產品發佈至通路、產品從通路下架

產品更新
每次儲存產品時都會觸發事件,無論內容有何變更。自 2.10.0 版本起,該事件還會攜帶 changes:即發生變更的受追蹤欄位(標題、識別碼、描述、狀態、供應商、類型、標籤),並包含變更前與變更後的值。
| 火災源自 | Shopify Webhook 加上變更偵測 |
| 權限 | 產品、變體與系列資料存取 |
| 已開啟 | 啟用一個使用此功能的 Shopify Flow 工作流程,即會開啟該功能。其專屬開關位於該應用程式的「**觸發器」**頁面中 |
用於
- 一個能對多種產品編輯操作做出反應,並根據
changes.fields進行分支的工作流程。 - 稽核軌跡:將所有被追蹤的變更(無論是舊的還是新的)記錄到試算表或 Slack 頻道中。
- 在您釐清自己真正需要哪種更精準的觸發機制之前,這是一個通用的解決方案。
「產品更新」會將哪些內容傳送至您的工作流程
| Shopify Flow 中的變數 | 類型 | 內容為何 |
|---|---|---|
product |
產品(Shopify) | 已更新的商品。這是一項完整的 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 中,選擇**「選取觸發器**」,開啟「Workflow Trigger Extensions」,然後選擇「產品更新」。
- 新增條件:
changes.fields不為空且存在。追蹤範圍外的更新(例如價格修改、圖片更新)會傳回一個空清單,並在此處停止處理。 - 新增**「傳送內部電子郵件**」(或**「**向 Slack 傳送 HTTP 請求」)。Shopify Flow 的文字欄位支援 Liquid 語法,因此透過
for迴圈遍歷changes.items,即可針對每項變更輸出一行:先顯示該項目的field,接著是其oldValue和newValue,最後是{{product.title}}。 - 開啟工作流程。這樣也會在應用程式中啟用觸發器。


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