模板中的基于时间和库存的触发器
四个自定义触发器模板:订单未在 N 天内完成、物流状态无更新、元字段中的日期已达到,以及某地点的库存低于该地点自身的阈值。
Shopify Flow 会在发生某些情况时触发。一些最实用的自动化流程是在某些情况未发生时,或当特定日期到来时启动的:例如,订单在三天后仍未发货、包裹停止运输,或是元字段中存储的发布日期。还有一些情况则需要 Shopify Flow 条件无法表达的规则,例如每个地点的低库存阈值各不相同。
有四个模板适用于这些情况。每个模板都是一个自定义触发器:您只需在自定义触发器编辑器中选择模板,在代码顶部设置几个值,进行测试,然后启用它即可。您无需自己编写代码。
四个模板
| 模板 | 工作原理 | 它对什么有反应 |
|---|---|---|
| 该订单已逾期 N 天仍未完成 | 按时间表,每小时一次 | 一个尚未发货或仅部分发货的未结订单,自下单之日起经过您设定的天数 |
| 该货件已停滞 N 天 | 按时间表,每小时一次 | 在您设定的天数内,某笔订单信息未发生任何变化,但该订单的货物仍未送达 |
| 元字段中的日期已达到 | 按计划,每6小时一次 | 产品或订单中已到达的日期元字段,或距离该日期还有若干天的日期元字段 |
| 库存跌破了该地点设定的阈值 | 每次库存变动时 | 某地点的可用库存量跌破了您为该地点设定的阈值 |
该区间是模板的起始值。您可以在编辑器中对其进行修改。
使用模板
在“触发器”页面中的您的自定义触发器部分创建一个自定义触发器。为其指定名称和标识符。标识符是工作流程用于筛选的依据,且此后无法更改。
关于这三个预设模板:
- 在运行条件部分,选择按计划选项。
- 在**“日程安排”卡片中,打开从模板开始**列表并选择模板。系统会自动替换代码并设置间隔。
- 请编辑代码顶部的值。以下将针对每个模板分别进行说明。
- 进行测试。测试会将您的代码执行一次,不会向 Shopify Flow 发送任何数据,也不会存储任何内容,因此您可以随心所欲地重复执行。
- 打开触发器并保存。
关于库存模板:
- 在运行原理部分,选择**“一个 Shopify 事件**”选项。
- 打开从模板开始列表,选择库存模板。系统会自动选中地点库存水平发生变化事件,并填入代码。
- 编辑代码顶部的数值。
- 通过更改商店中某个变体的库存来模拟真实事件,然后针对该事件进行测试。
- 打开触发器并保存。
在Shopify Flow中使用它
这四个字段在Shopify Flow中均以“自定义触发器”的形式出现。将其添加到工作流程中,并设置一个条件:字段触发器标识符等于您的触发器的标识符。模板发送的每个值都是触发器上的一个字段。
这三个预设模板还会将订单或产品作为事件的记录 ID 传递。请添加获取订单数据或获取产品数据等步骤,以加载完整的记录,并在后续步骤中对其进行处理。
该订单已逾期 N 天仍未完成
在客户提出要求之前就发现延误的发货。
| 代码中的价值 | 开头是 | 含义 |
|---|---|---|
DAYS |
3 |
订单后的天数 |
ONLY_PAID |
true |
只有已付款的订单才算数。未付款的订单通常是在等待付款,而不是在等你。 |
当每个已打开的订单达到您设定的时限时,如果该订单尚未完成或仅部分完成,该触发器将针对该订单启动一次工作流程。已按时完成的订单绝不会触发该工作流程。
该检查每笔订单仅执行一次,且仅在该时刻进行。如果一周后订单仍未完成,则不会再次触发该工作流程。在“仅限已付款”设置下,若订单是在该时刻之后才付款的,也不会被纳入处理。
| 发送到 Shopify Flow 的字段 | 包含 |
|---|---|
name |
订单名称,例如 #1042 |
placedAt |
下单时 |
daysSinceOrder |
订单的年龄(以天为单位) |
fulfillmentStatus |
订单的发货状态 |
financialStatus |
订单的付款状态 |
thresholdDays |
您设置的天数 |
该订单本身作为该事件的记录 ID 被传递。

该货件已停滞 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秒到每天一次均可。间隔时间越短,运行次数就越多,每次运行都会计入您的套餐。对于以天为单位的规则,通常每小时一次就绰绰有余了。
日期触发器报告了错误。问题出在哪里?
几乎总是元字段的定义问题。该元字段必须为“日期”类型,并且在设置>自定义数据下需开启过滤选项。此外,请确认代码中的命名空间和键与定义完全一致。
模板会改变我的订单或产品吗?
不。自定义触发器仅支持读取操作。若要给订单添加标签、发送电子邮件或更新元字段,请将这些操作添加到由该触发器启动的工作流程中。
一笔货运被滞留的时间超过了我设定的天数,但我的工作流程却没有启动。为什么?
计数是从订单的最后一次变更开始计算的。如果在此期间订单被工作人员、其他应用程序或物流更新修改过,则计数将从该时刻重新开始。
下一步
- 自定义触发器 - 编辑器、测试以及自定义触发器在 Shopify Flow 中的工作原理。
- 使用人工智能生成触发器代码 - 描述一条不同的规则,并让 AI 编写代码。
- 套餐与使用情况 - 运行和事件如何计入您的套餐。
- 库存触发器,分步指南 - 内置库存触发器的分步指南。
