觸發器教學產品觸發機制,逐步解說

產品觸發機制,逐步解說

複製頁面

關於產品觸發器的逐步操作指南,說明如何透過 Shopify Flow 展示狀態、標題、代號、供應商、類型及標籤的舊值與新值。

Shopify Flow 可以通知您某項產品已更新,但無法告知您具體變更了哪些內容,也無法提供先前數值的資訊。這十一項觸發器則能同時做到這兩點:每項觸發器會針對某種變更觸發,並將變更前後的數值傳遞給您的工作流程。

以下每個部分都是一個簡短的教學:說明觸發條件為何、Shopify Flow 會接收哪些資料,以及一個您能在幾分鐘內重建的工作流程。

本頁內容:產品更新、產品狀態變更、產品標題變更、產品代號變更、產品描述變更、產品供應商變更、產品類型變更、新增產品標籤、移除產品標籤、產品發佈至通路、產品從通路下架

Shopify Flow
如何找到它們:在 Shopify Flow 中選擇「選取觸發器」,開啟「Workflow Trigger Extensions」,然後搜尋「Product」。

產品更新

每次儲存產品時都會觸發事件,無論內容有何變更。自 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,以查看確切的傳送內容。

範例:記錄每項被追蹤的產品變更,並附上其舊值與新值

  1. 在 Shopify Flow 中,選擇**「選取觸發器**」,開啟「Workflow Trigger Extensions」,然後選擇「產品更新」。
  2. 新增條件:changes.fields 不為空且存在。追蹤範圍外的更新(例如價格修改、圖片更新)會傳回一個空清單,並在此處停止處理。
  3. 新增**「傳送內部電子郵件**」(或**「**向 Slack 傳送 HTTP 請求」)。Shopify Flow 的文字欄位支援 Liquid 語法,因此透過 for 迴圈遍歷 changes.items,即可針對每項變更輸出一行:先顯示該項目的 field,接著是其 oldValue 和 newValue,最後是 {{product.title}}。
  4. 開啟工作流程。這樣也會在應用程式中啟用觸發器。
Shopify Flow
Shopify Flow 中的產品更新:每個 changes.items 條目都會標明該欄位名稱,並包含該欄位在更新前與更新後的值。
Shopify Flow 中「產品更新」的條件:變更項目或項目中至少有一項的「狀態」欄位值與指定條件相符
一項條件:僅當該狀態屬於已變更的欄位之一時,才繼續執行。

產品狀態已變更

當產品在「有效」、「草稿」、「已歸檔」和「**未列出」**狀態之間切換時,此事件會觸發。若儲存操作未變更狀態,則不會觸發此事件。

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

用於

  • 產品一上線,請立即通知行銷團隊。
  • 當產品被歸檔時,請將其從產品資訊流或套裝中移除。
  • 擷取那些因誤操作而被重新設為「待審核」狀態的產品。

「產品狀態變更」會將哪些內容傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
product 產品(Shopify) 狀態已變更的產品。這是一個完整的 Shopify 產品,因此其所有欄位以及 Shopify Flow 自身的產品動作皆可使用。
oldStatus 文字 先前產品狀態(有效、草稿、已歸檔或未公開)
newStatus 文字 新產品的狀態(有效、草稿、已歸檔或未公開)
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:宣布剛上線的產品

  1. 選擇「**產品狀態變更」**作為觸發條件。
  2. 新增一個條件:newStatus 等於 active,以及第二個條件 oldStatus 等於 draft。
  3. 在**「接著」下方新增「發送內部電子郵件**」:主旨為 Now live: {{product.title}},內文包含 {{product.onlineStoreUrl}}。
  4. 可選:為商品新增 new-arrival 標籤,以便讓該商品被系列收錄。
  5. 開啟此工作流程。

產品名稱已變更

當產品的標題變更時會觸發此事件。除了產品的標題變更外,其他情況均不會觸發此事件。

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

用於

  • 請確保外部目錄、產品資訊管理系統(PIM)或翻譯工具與已更名產品保持同步。
  • 每當暢銷書的書名有所變更時,請要求進行 SEO 審查。
  • 偵測批次編輯中意外更名的情況。

「產品標題變更」會將哪些內容傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
product 產品(Shopify) 標題已變更的產品。這是一個完整的 Shopify 產品,因此其所有欄位以及 Shopify Flow 自身的產品動作皆可使用。
oldTitle 文字 該產品的先前名稱
newTitle 文字 該產品的新名稱
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:向您的團隊發送一則包含兩個標題的更名通知

  1. 選擇「**產品標題變更」**作為觸發條件。
  2. 新增一封內部電子郵件,主旨為 Product renamed,內文為 "{{oldTitle}}" is now "{{newTitle}}" - {{product.onlineStoreUrl}}。
  3. 若僅需篩選特定產品,請在前面加上條件:product.vendor 等於您的品牌,或 product.tags 包含 hero。
  4. 開啟此工作流程。

產品名稱已變更

當產品的 URL 處理函式發生變更時會觸發此事件,該處理函式即為網址中 /products/ 之後的部分。

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

用於

  • 自動從舊網址建立重定向,以確保連結和搜尋結果仍能正常運作。
  • 請告知負責管理廣告或電子郵件行銷活動的人員,該著陸頁已搬遷。

「產品編號變更」會將哪些資料傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
product 產品(Shopify) 此商品的名稱已變更。這是一個完整的 Shopify 商品,因此其所有欄位以及 Shopify Flow 自身的商品操作皆可使用。
oldHandle 文字 該產品的先前 URL 識別碼
newHandle 文字 該產品的新 URL 網址
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:從舊的處理程序建立一個 URL 重定向

  1. 選擇「**產品編號變更」**作為觸發條件。
  2. 新增「**建立 URL 重定向」**動作。
  3. 將**「路徑」設定為 /products/{{oldHandle}},並將「目標」**設定為 /products/{{newHandle}}。
  4. 啟用工作流程,然後變更測試產品的識別碼,並開啟舊的網址。

產品描述已變更

當產品的描述(HTML 正文)發生變更時觸發。

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

用於

  • 僅在源文本確實有所變更時,才重新執行翻譯或 AI 摘要。
  • 在編輯完畢後,請法律或合規部門重新檢查受監管的產品。
  • 重新載入包含該描述的產品資料饋送。

「產品描述變更」會將哪些內容傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
product 產品(Shopify) 描述已變更的產品。這是一個完整的 Shopify 產品,因此其所有欄位以及 Shopify Flow 自身的產品動作皆可使用。
oldDescription 文字 前述說明(已截短至 4000 個字元;如有需要,請透過產品參考編號取得完整說明)
newDescription 文字 新描述(已截短至 4000 個字元;如有需要,請透過產品參考編號取得完整描述)
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:標記已編輯的描述以供審核

  1. 將「選取**產品描述已變更」**設為觸發條件。
  2. 新增 新增產品標籤,並加入 needs-copy-review。
  3. 在管理後台中新增「向審核者發送內部電子郵件,內容包含 {{product.title}} 以及該產品的連結」功能。
  4. 審核完成後,審核員會移除該標籤。若此時應觸發特定動作,請搭配「產品標籤已移除」功能。

產品供應商變更

當產品的供應商變更時,系統會觸發此事件。

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

用於

  • 在基於供應商的系列或價格清單之間移動產品。
  • 當產品被重新指派給另一家供應商時,請通知採購部門。

「產品供應商變更」會將哪些資料傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
product 產品(Shopify) 供應商已變更的產品。這是一個完整的 Shopify 產品,因此其所有欄位以及 Shopify Flow 自身的產品操作皆可使用。
oldVendor 文字 前任供應商
newVendor 文字 新供應商
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:當供應商變更時,替換供應商標籤

  1. 選擇「**產品供應商變更」**作為觸發條件。
  2. 使用 vendor:{{oldVendor}} 新增或移除產品標籤。
  3. 使用 vendor:{{newVendor}} 新增產品標籤。
  4. 開啟此工作流程。

產品類型已變更

當產品類型變更時觸發。此處指的是自由輸入的「類型」欄位,而非 Shopify 的標準產品類別。

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

用於

  • 將商品重新分類至基於類型的自動化商品集合或出貨設定中。
  • 請確保外部系統中的稅務或海關對應關係始終保持最新。

「產品類型變更」會將哪些資料傳送至您的工作流程

Shopify Flow 中的變數 類型 內容為何
product 產品(Shopify) 類型已變更的產品。這是一個完整的 Shopify 產品,因此其所有欄位以及 Shopify Flow 自身的產品動作皆可使用。
oldType 文字 前一個產品類型
newType 文字 新產品類型
eventId 文字 此事件的 ID。請在應用程式的「事件歷史紀錄」中搜尋此 ID,以查看確切的傳送內容。

範例:當產品類型變更時,通知運維團隊

  1. 將「選擇**產品類型已變更」**設為觸發條件。
  2. 若僅有部分類型重要,請新增一項條件:newType 等於 Hazardous。
  3. 新增「發送內部電子郵件」:{{product.title}} moved from type "{{oldType}}" to "{{newType}}"。
  4. 開啟此工作流程。

已新增產品標籤

當產品新增至少一個標籤時觸發。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,以查看確切的傳送內容。

範例:當產品標籤獲得批准時,發布該產品

  1. 選擇「**新增產品標籤」**作為觸發條件。
  2. 新增條件:addedTags 包含 approved。
  3. 接著,在「更新產品狀態」下方選擇 Active(或「將產品發佈至頻道」)。
  4. 若標籤僅為訊號,請新增或移除帶有 approved 的產品標籤。
  5. 開啟此工作流程。

已移除產品標籤

當產品上至少有一個標籤被移除時觸發。removedTags 會精確地存放那些已被移除的標籤。

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

用於

  • 當狀態標籤被移除時,結束該流程:當移除 clearance 時,銷售即告結束。
  • 撤銷「新增匹配**標籤」**工作流程所執行的操作。

「已移除的產品標籤」會將哪些內容傳送至您的工作流程

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

範例:當清倉標籤被移除時,即結束該項商品的促銷活動

  1. 選擇「**產品標籤已移除」**作為觸發條件。
  2. 新增條件:removedTags 包含 clearance。
  3. 新增可撤銷此促銷活動的操作,例如:移除商品標籤 sale-badge 以及向商品企劃部門發送內部電子郵件。
  4. 開啟此工作流程。

產品已發佈至通路

當產品發佈至一個或多個銷售管道、市場或 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,以查看確切的傳送內容。

範例:當產品抵達銷售點時,通知零售團隊

  1. 選擇「**產品發佈至頻道」**作為觸發條件。
  2. 新增條件:channels.added 中至少有一個的 name 等於 Point of Sale。
  3. 新增「發送內部電子郵件:{{product.title}} is now available on POS」。
  4. 開啟此工作流程。

產品已從頻道中移除

當產品從一個或多個銷售管道中移除時觸發。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,以查看確切的傳送內容。

範例:當商品從線上商店出庫時發出警示

  1. 選擇「**從頻道移除未發布的產品」**作為觸發條件。
  2. 新增條件:channels.removed 中至少有一個的 name 等於 Online Store。
  3. 新增**「發送內部電子郵件」**或透過 Slack 發送請求,內容包含 {{product.title}} 以及管理員連結。
  4. 開啟此工作流程。

後續步驟