產品觸發機制,逐步解說

Shopify Flow 可以告訴您某項產品已更新,但無法告訴您具體有哪些變更,也無法告知您之前的數值為何。這十一項觸發器則能同時做到這兩點:每項觸發器會在某種變更發生時觸發,並將變更前與變更後的數值傳遞給您的工作流程。

以下每個部分都是一個簡短的教學:說明什麼會觸發該事件、哪些資料會傳入 Flow,以及一個您可以在幾分鐘內重現的工作流程。

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

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

產品更新

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

範例:將每項被追蹤的產品變更連同其舊值與新值一併記錄下來

  1. 在「Shopify Flow」中,選擇**「Select a trigger**」,開啟「Workflow Trigger Extensions」,然後選擇「Product Update」。
  2. 新增條件changes.fields 既非空且存在。追蹤欄位以外的更新(例如價格編輯、圖片更新)會隨同一個空清單傳入,並在此處停止處理。
  3. 新增**「發送內部電子郵件**」(或「向 Slack 發送 HTTP 請求」)。Flow 的文字欄位支援 Liquid 語法,因此透過 forchanges.items 進行迴圈處理,即可在每次變更時輸出一行:先顯示該條目的 field,接著是 oldValuenewValue,最後是 {{product.title}}
  4. 開啟工作流程。這樣也會在應用程式中啟用觸發器。
在「產品更新」的「變更」/「項目」中,Flow 的變數選擇器顯示欄位、舊值和新值
Flow 中的產品更新:每筆 changes.items 記錄都會標明該欄位名稱,並包含該欄位在更新前與更新後的值。
產品更新時的流程條件:變更項目或項目中,至少有一項的欄位值等於「狀態」
一項條件:僅當該狀態屬於已變更的欄位之一時,才繼續執行。

產品狀態已變更

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

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

用於

  • 產品一上線,請立即通知行銷團隊。
  • 當產品被歸檔時,請將其從商品列表或套裝中移除。
  • 擷取那些因誤操作而被重新設為草稿狀態的產品。

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

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

範例:宣布剛上線的產品

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

產品名稱已變更

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

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

用於

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

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

流量中的變量 類型 內容為何
product 產品 (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 加上變更偵測
權限 產品、變體與系列資料存取
已開啟 啟用一個使用該功能的 Flow 工作流程,即會開啟該功能。其專屬開關位於應用程式的「**觸發器」**頁面上

用於

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

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

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

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

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

產品描述已變更

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

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

用於

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

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

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

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

  1. 將「**產品描述已變更」**設為觸發條件。
  2. 使用 needs-copy-review 新增產品標籤
  3. 在管理後台中新增「向審閱者發送內部電子郵件,內容包含 {{product.title}} 以及產品連結」的功能。
  4. 審查完成後,審查員會移除該標籤。若此時應發生某些情況,請搭配使用「產品標籤已移除」功能。

產品供應商變更

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

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

用於

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

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

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

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

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

產品類型已變更

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

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

用於

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

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

流量中的變量 類型 內容為何
product 產品(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 加上變更偵測
權限 產品、變體與系列資料存取
已開啟 啟用一個使用該功能的 Flow 工作流程,即可開啟該功能。該功能本身的開關位於應用程式的「**觸發器」**頁面中

用於

  • 從標籤啟動程序:photo-readyapprovedclearance
  • 讓員工無需開啟 Flow,即可直接從產品頁面觸發自動化流程。

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

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

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

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

已移除產品標籤

當產品上至少有一個標籤被移除時觸發。removedTags 陣列中恰好包含那些已被移除的標籤。

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

用於

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

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

流量中的變量 類型 內容為何
product 產品(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 加上變更偵測
權限 出版物資料存取 + 產品、變體及系列資料存取
已開啟 啟用一個使用該功能的 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,以查看確切的傳送內容。

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

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

產品已從頻道中移除

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

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

  1. 選擇「**頻道中的未發佈產品」**作為觸發條件。
  2. 新增一項條件channels.removed 中至少有一項的 name 等於 Online Store
  3. 請透過 {{product.title}} 寄送內部電子郵件或 Slack 請求,並附上管理員連結。
  4. 開啟此工作流程。

下一步