触发器教程产品触发器,分步指南

产品触发器,分步指南

复制页面

关于产品触发器的分步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 语法,因此可以通过对 changes.items 进行 for 循环,为每次变更打印一行内容:先显示条目的 field,接着是其 oldValue 和 newValue,最后是 {{product.title}}。
  4. 开启工作流程。这样也会在应用中启用该触发器。
“产品更新”中的“更改”/“项目”内,Shopify Flow 的变量选择器显示字段、oldValue 和 newValue
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. 启用该工作流程,然后更改测试产品的标识符,并打开旧的 URL。

产品描述已更改

当产品的描述(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。

“已添加的产品标签”会向您的工作流程发送什么

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、名称、类型、catalogId)
channels.added 对象列表 在此事件中,该产品刚刚发布到的频道。chinese
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 工作流程即可将其开启。该功能的独立开关位于应用的**“触发器**”页面上。

用于

  • 发现那些悄然从在线商店下架的商品。
  • 当产品离开广告所指向的渠道时,立即暂停该产品的广告。

“Channel”中未发布的产品会发送哪些内容到您的工作流程

Shopify Flow中的变量 类型 内容简介
product 产品(Shopify) 该产品处于未发布状态。这是一个完整的Shopify产品,因此其所有字段以及Shopify Flow自身的产品操作均可使用。
channels 对象 已添加、已删除或当前已发布的频道,每个频道都是一条发布记录(id、名称、类型、catalogId)
channels.added 对象列表 在此事件中,该产品刚刚发布到的频道。chinese
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. 启用该工作流程。

下一步