开发者模板中的基于时间和库存的触发器

模板中的基于时间和库存的触发器

复制页面

四个自定义触发器模板:订单未在 N 天内完成、物流状态无更新、元字段中的日期已达到,以及某地点的库存低于该地点自身的阈值。

Shopify Flow 会在发生某些情况时触发。一些最实用的自动化流程是在某些情况未发生时,或当特定日期到来时启动的:例如,订单在三天后仍未发货、包裹停止运输,或是元字段中存储的发布日期。还有一些情况则需要 Shopify Flow 条件无法表达的规则,例如每个地点的低库存阈值各不相同。

有四个模板适用于这些情况。每个模板都是一个自定义触发器:您只需在自定义触发器编辑器中选择模板,在代码顶部设置几个值,进行测试,然后启用它即可。您无需自己编写代码。

四个模板

模板 工作原理 它对什么有反应
该订单已逾期 N 天仍未完成 按时间表,每小时一次 一个尚未发货或仅部分发货的未结订单,自下单之日起经过您设定的天数
该货件已停滞 N 天 按时间表,每小时一次 在您设定的天数内,某笔订单信息未发生任何变化,但该订单的货物仍未送达
元字段中的日期已达到 按计划,每6小时一次 产品或订单中已到达的日期元字段,或距离该日期还有若干天的日期元字段
库存跌破了该地点设定的阈值 每次库存变动时 某地点的可用库存量跌破了您为该地点设定的阈值

该区间是模板的起始值。您可以在编辑器中对其进行修改。

使用模板

在“触发器”页面中的您的自定义触发器部分创建一个自定义触发器。为其指定名称和标识符。标识符是工作流程用于筛选的依据,且此后无法更改。

关于这三个预设模板:

  1. 在运行条件部分,选择按计划选项。
  2. 在**“日程安排”卡片中,打开从模板开始**列表并选择模板。系统会自动替换代码并设置间隔。
  3. 请编辑代码顶部的值。以下将针对每个模板分别进行说明。
  4. 进行测试。测试会将您的代码执行一次,不会向 Shopify Flow 发送任何数据,也不会存储任何内容,因此您可以随心所欲地重复执行。
  5. 打开触发器并保存。

关于库存模板:

  1. 在运行原理部分,选择**“一个 Shopify 事件**”选项。
  2. 打开从模板开始列表,选择库存模板。系统会自动选中地点库存水平发生变化事件,并填入代码。
  3. 编辑代码顶部的数值。
  4. 通过更改商店中某个变体的库存来模拟真实事件,然后针对该事件进行测试。
  5. 打开触发器并保存。

在Shopify Flow中使用它

这四个字段在Shopify Flow中均以“自定义触发器”的形式出现。将其添加到工作流程中,并设置一个条件:字段触发器标识符等于您的触发器的标识符。模板发送的每个值都是触发器上的一个字段。

这三个预设模板还会将订单或产品作为事件的记录 ID 传递。请添加获取订单数据或获取产品数据等步骤,以加载完整的记录,并在后续步骤中对其进行处理。

该订单已逾期 N 天仍未完成

在客户提出要求之前就发现延误的发货。

代码中的价值 开头是 含义
DAYS 3 订单后的天数
ONLY_PAID true 只有已付款的订单才算数。未付款的订单通常是在等待付款,而不是在等你。

当每个已打开的订单达到您设定的时限时,如果该订单尚未完成或仅部分完成,该触发器将针对该订单启动一次工作流程。已按时完成的订单绝不会触发该工作流程。

该检查每笔订单仅执行一次,且仅在该时刻进行。如果一周后订单仍未完成,则不会再次触发该工作流程。在“仅限已付款”设置下,若订单是在该时刻之后才付款的,也不会被纳入处理。

发送到 Shopify Flow 的字段 包含
name 订单名称,例如 #1042
placedAt 下单时
daysSinceOrder 订单的年龄(以天为单位)
fulfillmentStatus 订单的发货状态
financialStatus 订单的付款状态
thresholdDays 您设置的天数

该订单本身作为该事件的记录 ID 被传递。

在自定义触发器编辑器中,“订单未履行已达 N 天”模板的代码,以 DAYS 和 ONLY_PAID 开头
编辑器中的模板。代码顶部的这两个值就是你需要编辑的。

该货件已停滞 N 天

在客户提出“我的订单在哪里”这个问题之前,就已给出答案。

代码中的价值 开头是 含义
DAYS 5 未发生任何变化的天数
ONLY_WITH_TRACKING true 没有运单号的包裹将被排除在外。这些包裹永远无法报告已送达
DONE DELIVERED, PICKED_UP, CANCELED 视为已完成的发货状态

Shopify 无法根据货件最后一次移动的日期进行搜索。因此,该模板基于订单进行筛选。它会查找那些已完成或部分完成的订单,这些订单在您设定的天数内未被更新,且仍有未完成的货件。

**订单的任何变更都会重新开始计数。**跟踪信息更新会触发这一操作,编辑备注或添加新标签同样会触发。

该触发器会针对每笔滞留的发货启动一次工作流程,因此,如果一笔订单中有两个滞留的包裹,则会触发两次。每笔订单最多检查三笔发货。

发送到 Shopify Flow 的字段 包含
name 订单名称
fulfillmentId 该货件的ID
shipmentStatus 该批货物的当前状态
lastTrackingStatus 最新追踪事件的状态
lastMovedAt 该货件上次移动的时间
daysWithoutMovement 自货物上次移动以来的天数
shippedAt 创建该货运时
estimatedDeliveryAt 预计送达日期(如果承运商提供了该信息)
carrier 承运人的名称
trackingNumber 运单号
trackingUrl 追踪链接
thresholdDays 您设置的天数

该订单本身作为该事件的记录 ID 被传递。

元字段中的日期已达到

包括发布日期、保修期、最佳食用日期、续期日期等:任何您在产品或订单上记录的日期信息。

代码中的价值 开头是 含义
RESOURCE "products" 元字段的位置:在产品上还是在订单上
NAMESPACE "custom" 元字段的命名空间
KEY "release_date" 元字段的键
OFFSET_DAYS 0 距该日期前或后的天数。请参见以下示例

关于偏移量的三个示例:

偏移量 当您的工作流程启动时
0 在当天
-7 距离该日期还有七天
30 自该日起三十天后

该触发器会针对每个在当天到期的产品或订单,启动一次工作流程。日期以UTC天为单位。该触发器每次处理一天的数据,因此漏处理的日期会在后续处理中按顺序补上。当某一天有超过100条记录到期时,剩余的记录将在后续运行中处理。

发送到 Shopify Flow 的字段 包含
name 产品名称或订单名称
date 存储在元字段中的日期
reachedOn 应提交记录的那一天
offsetDays 您设置的偏移量

产品或订单本身作为该事件的记录 ID 传递。

库存跌破该地点设定的阈值

每个地点一条低库存规则:仓库内20件,店铺内3件。

代码中的价值 开头是 含义
THRESHOLDS { "Main warehouse": 20, "Pop-up store": 3 } 每个地点的阈值,按地点名称排序
DEFAULT 5 未列出的每个地点的阈值
ALSO_WHEN_RESTOCKED false 无论您的工作流程是否也在库存恢复到阈值或高于阈值时开始

若要忽略某个地点,请将其阈值设为null。若要仅监控列出的地点,请将默认阈值设为null。

该触发器会在交叉点处触发一次工作流程:即库存量在变化前达到或超过阈值,变化后则低于该阈值。当库存量已经较低时,它不会对每次销售都做出反应。之所以能实现这一点,是因为该应用知道每次变化前后的库存水平。

请将地点名称完全按照Shopify后台设置>地点中显示的名称填写。

此模板需要启用地点库存水平变化触发器,并授予其相应权限。这正是使该应用能够跟踪库存水平的关键。请参阅 “触发器”页面(原“设置”) 和 权限与数据访问。

发送到 Shopify Flow 的字段 包含
event 发生了什么:股价跌破了阈值,或者股价已回升
productTitle 产品名称
variantTitle 变体标题
sku 该变体的SKU
location 地点名称
locationId 该地点的ID
oldAvailable 变更前的可用库存
newAvailable 变更后的可用库存
threshold 适用的阈值

“发生的情况”字段包含以下两个值之一:

值 含义
below 股价跌破了临界点
restocked 库存已恢复到阈值或高于阈值
我打开触发器后,为什么工作流程没有启动?

计划模板的首次运行仅会记住其起始点。触发器仅对之后跨越该起始点的订单、发货和日期做出反应,而不对已经超过该起始点的项目做出反应。

我能比每小时一次更频繁地运行检查吗?

是的,间隔时间由您自行选择,从每30秒到每天一次均可。间隔时间越短,运行次数就越多,每次运行都会计入您的套餐。对于以天为单位的规则,通常每小时一次就绰绰有余了。

日期触发器报告了错误。问题出在哪里?

几乎总是元字段的定义问题。该元字段必须为“日期”类型,并且在设置>自定义数据下需开启过滤选项。此外,请确认代码中的命名空间和键与定义完全一致。

模板会改变我的订单或产品吗?

不。自定义触发器仅支持读取操作。若要给订单添加标签、发送电子邮件或更新元字段,请将这些操作添加到由该触发器启动的工作流程中。

一笔货运被滞留的时间超过了我设定的天数,但我的工作流程却没有启动。为什么?

计数是从订单的最后一次变更开始计算的。如果在此期间订单被工作人员、其他应用程序或物流更新修改过,则计数将从该时刻重新开始。

下一步