Shopify Flow 中的计划、获取数据和循环工作流
在大多数情况下,您可以将多个条件和操作链接到某个在事件发生时运行的触发器,以此来构建工作流。对于更复杂的用例,您可能会发现没有符合您需求的触发器,或者您需要让工作流在特定时间运行,又或者您可能需要处理数据列表。在这些情况下,您可以使用定时触发器、获取数据操作和循环来创建高级工作流。
例如,假设您想获取未发货订单的每日摘要。借助这些功能,您可以运行一个工作流,让它每天在特定时间运行,获取这些订单,然后向您发送一份摘要。您可以浏览更多利用这些触发器和操作的 示例和模板。
定时触发器
定时触发器并非因某一事件而启动工作流,而是在您指定的特定时间和日期启动工作流。您还可以将工作流安排为每小时、每天、每周或每月重复运行。由于工作流是按计划运行的,因此若要使用客户、订单或产品等数据,则必须使用操作来获取该数据。您可以通过使用获取数据操作来完成此任务。
定时触发器运行频率最高可达每 10 分钟一次。
获取数据操作
大多数操作会更改您商店中的某些内容,例如为客户添加标记,或向应用发送命令(例如指示应用向客户发送推送通知)。
获取数据操作会从您的商店中提取数据以在 Flow 中使用。这些操作会调用带有一组筛选条件的查询,例如仅获取在过去一天内更新的内容。该操作会返回与这些条件匹配的数据列表。例如,获取订单数据操作会调用 Admin API 上的订单查询,并返回与您的查询匹配的订单列表。
获取数据操作只能对最多包含 100 个项目的列表运行。
以下操作可从您的商店检索信息,以便您可以在工作流中使用这些数据。请查看每个操作,详细了解如何筛选数据以及返回哪些数据:
- 获取现金跟踪访问数据
- 获取产品系列数据
- 获取公司数据
- 获取公司地点数据
- 获取客户数据
- 获取折扣数据
- 获取草稿订单数据
- 获取发货订单数据
- 获取礼品卡数据
- 获取地点数据
- 获取元对象条目
- 获取元对象条目
- 获取订单数据
- 获取产品数据
- 获取产品多属性数据
- 获取销售方案群组数据
- 获取订阅账单尝试数据
- 获取订阅合同数据
“获取数据”操作中的 Liquid 标签
将获取数据操作与日期结合使用时,您可以使用 date_minus 和 date_plus Liquid 标签来更改查询中的日期。例如,要计算工作流计划运行时间 5 天前的日期,您可以使用以下 Liquid:
{{ scheduledAt | date_minus: "5 days" }}有关如何使用这些标签的更多详细信息,请参阅 Liquid 变量文档。
For each 循环
当您使用获取数据操作时,您会获得一个与查询匹配的数据列表。您可以使用 For each 循环(迭代)操作来遍历该列表。在 For each 循环中,您可以使用仅应用于该特定项目的条件和操作。
例如,您创建一个在每周一运行的工作流。该工作流使用 获取订单数据操作来检索该周内下单的订单。然后,For each 循环(迭代)会为 getOrderData 列表返回的每个订单应用 New order 标记。在该列表中的所有订单都添加标记后,系统会发送一封内部电子邮件,指明添加标记的操作已完成。

聚合操作
处理列表时,您可能需要计算项目数,以便在后续的“条件”和“操作”中使用。例如,您可能希望在发送电子邮件之前检查结果是否多于 0 个。Flow 提供以下操作来对工作流中的列表数据执行计算:
Shopify Flow 中的高级工作流示例
查看一些可在 Shopify Flow 中使用的高级工作流示例:
- 获取错过两天发货窗口的订单的每日摘要。
- 创建新订单后,检查同一客户是否在过去 24 小时内下了其他订单。
- 每天,获取一封摘要电子邮件,其中列出了缺货产品。
- 每天一次,查找与拒付相关的所有订单,并为相应客户添加标记。
- 创建新订单后,查明客户在过去六个月内下了多少订单。
- 每天,获取所有未结草稿订单的列表并发送一条 Slack 消息。
获取每日摘要,其中包含错过两天发货窗口期的订单
此工作流可用于确定是否有任何订单错过了发货保证期,如果有,则确定这些订单的价值。
在此示例中,工作流在每天下午 5:00 运行。工作流使用获取订单数据操作来检索未在两天发货窗口期内发货的订单列表。然后,对于每个操作会为所有延迟订单添加标记。工作流还使用计数操作来确定延迟订单的数量,并使用求和操作来确定这些订单的价值。由计数和求和操作创建的变量用于发送电子邮件,以说明订单数量及其价值。

创建新订单后,检查同一客户是否在过去 24 小时内下了其他订单
此工作流可用于确定同一客户是否在同一天下了多个订单,如果是,则将发货设置为暂停状态,以便将这些订单合并发货。
在此示例中,工作流在每次创建新订单时运行。工作流使用获取订单数据操作来检索客户在过去一天内所下订单的列表。然后,计数操作确定客户所下订单的数量。如果同一客户在同一天下了两个或更多订单,则会暂停订单发货,并为订单添加标记。

每天,获取一封摘要电子邮件,其中列出了缺货产品
此工作流可用于生成所有缺货产品的列表并发送电子邮件。
在此示例中,工作流在每天晚上 9:00 运行。工作流使用获取产品数据操作来检索没有库存的产品列表。计数操作确定缺货商品的数量。由获取订单数据和计数操作创建的变量用于发送电子邮件,以说明产品数量和这些产品的列表。

每天一次,查找与拒付相关的所有订单,并为相应客户添加标记
此工作流可用于跟踪已发起拒付的客户。
在此示例中,工作流在每天上午 10:00 运行。工作流使用获取订单数据操作来检索有拒付的订单列表。然后,对于每个操作会为下了这些订单的所有客户添加标记。

创建新订单后,查明客户在过去六个月内下了多少订单
此工作流可用于确定客户在过去六个月内下了多少订单,并添加忠诚度标记。
在此示例中,工作流在每次创建新订单时运行。工作流使用获取订单数据操作来检索客户在过去六个月内所下订单的列表。然后,计数操作确定客户所下订单的数量,求和操作确定这些订单的价值。如果订单数量等于或大于 5,则会添加一个客户标记;如果订单价值等于或大于 100 美元,则会添加另一个标记。

每天,获取所有未结草稿订单的列表并发送一条 Slack 消息
此工作流可用于发送一条 Slack 消息,说明您的商店中是否有任何未结草稿订单,以及订单数量。
在此示例中,工作流在每天下午 5:00 运行。工作流使用获取草稿订单数据操作来检索状态为未结的草稿订单列表。然后,计数操作确定未结草稿订单的数量。由计数操作创建的变量用于发送一条 Slack 消息,以说明未结草稿订单的数量。
