Shopify Flow 中的变量

变量是在工作流运行时替换为值的占位符。此类变量描述工作流中涉及的客户、订单和产品的属性。例如,订单号、订单价格、客户姓名等内容都有对应的变量。

Flow 使用不同于 Shopify 模板的 Liquid 版本,并且可以访问任何通过 GraphQL 后台 API 提供的变量。

大多数变量的名称都是自描述性的。例如,显示产品名称的变量是 {{ product.title }}。发送消息时,此变量将替换为已订购产品的名称:Large Coffee Mug

向操作中添加变量

您可以将变量添加到包含添加变量链接的任何文本字段。点击相关字段下方的添加变量链接,然后从列表中选择变量。

添加变量列表中的变量将被筛选,以便您只看到适用于所选触发器的变量。从列表中选择变量后,该变量将被正确格式化并添加到文本框中。

Flow 支持几乎所有 GraphQL 后台 API 字段。

Liquid 变量

如果您是具有 Liquid 代码编写经验的开发人员,则可以使用 Liquid 编写变量或编辑您使用添加变量链接插入的变量。若要了解详细信息,请参阅 GraphQL 后台 API 参考

条件和迭代标签

您可以手动将 Liquid 变量标签添加到工作流消息中。您可以使用这些标签在消息中包含更多信息。

例如,您可以使用 for loop 对象迭代对象列表,例如订单中的订单项目。借助这些标签,您可以创建包含详细信息(例如,订单中每个订单项目的产品标题、SKU、价格和数量)的消息,使接收者不必在 Shopify 后台查找这些信息。

Flow 支持以下 Liquid 条件(或控制流)标签:

Flow 还支持以下 Liquid 迭代标签:

筛选器

Flow 支持以下 Liquid 筛选条件:

Flow 支持的 Liquid 筛选条件
筛选器名称 筛选器类型
abs 数学
append 字符串
at_least 数学
at_most 数学
capitalize 字符串
ceil 数学
concat 数组
date 附加
default 附加
divided_by 数学
downcase 字符串
escape 字符串
首先 数组
floor 数学
join 数组
last 数组
lstrip 字符串
地图 数组
minus 数学
modulo 数学
newline_to_br 字符串
Plus 数学
prepend 字符串
remove 字符串
remove_first 字符串
replace 字符串
replace_first 字符串
reverse 数组
round 数学
rstrip 字符串
尺寸 数组
slice 字符串
排序 数组
split 字符串
strip 字符串
strip_html 字符串
strip_newlines 字符串
times 数学
truncate 字符串
truncatewords 字符串
uniq 数组
upcase 字符串
url_encode 字符串
where 数组

变量示例

假设您想创建一个工作流,当客户某个订单的花费金额超过 500 美元时,该工作流会向员工发送电子邮件。您可以创建一个使用已创建订单触发器的工作流,设置在订单总额超过 500 美元时为 true 的条件,然后使用发送内部电子邮件操作。在发送内部电子邮件操作的消息部分中,您可以使用以下变量。

用于提供客户详细信息的变量示例。
输入 输出
{{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) 的下单金额为 {{ order.totalPriceSet.shopMoney.amount }} 美元,请向其发送私人感谢备注。 Jeanne Dupont (jeanne@example.com) 的下单金额为 763.42 美元,请向其发送私人感谢备注。

您确定您需要在产品库存不足并且需要下订单以购买更多库存时通知员工。您可以创建一个通过库存数量已更改触发器启动的工作流,并设置在库存数量先验小于或等于 10 时为 true 的条件。在发送内部电子邮件操作的消息部分中,您可以使用以下变量。

用于提供商品详细信息的变量示例。
输入 输出
请重新订购 {{ product.title }}。向 owner@store.com 发送电子邮件以确认他们已收到采购订单。 请重新订购高腰打底裤 - 黑色。向 owner@example.com 发送电子邮件以确认他们已收到采购订单。

您希望取消具有高风险级别的订单,但倾向于让员工手动取消订单。您可以创建通过已创建订单触发器启动的工作流,并设置在订单风险级别等于“高”时为 true 的条件。在发送内部电子邮件操作的消息部分中,您可以使用以下变量。

用于提供欺诈性订单相关信息的变量示例。
输入 输出
我们的 Shopify 商店收到一个具有高欺诈风险的订单。我们需要立即取消此订单,避免该订单进入处理流程:

{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}

请确认新的订单状态。谢谢!
我们的 Shopify 商店收到一个具有高欺诈风险的订单。我们需要立即取消此订单,避免该订单进入处理流程:

#1001
Dupont, Jeanne
jeanne@example.com

请确认新的订单状态。谢谢!

for loop 示例

收到订单时,发送包含订购产品的消息非常有用。您可以使用 for loop 来实现此目的,它可重复执行代码块。支持变量的文本字段也支持 for loop 和 forloop 对象

例如,您想创建一个工作流,用于返回订单中所有 SKU 和数量的列表。在发送内部电子邮件操作的消息部分中,您可以使用以下变量。

用于提供订单信息的 for loop 示例。
输入 输出
订单摘要:
{% for a in order.lineItems %}
SKU: {{a.sku}} ({{a.quantity}}),
{% endfor %}
订单摘要:
8987097979 (50)
8877778887 (3)
888998898B (1)

您决定要向电子邮件添加更多信息,包括产品名称、SKU、每件商品的价格以及客户的收货信息。在发送内部电子邮件操作的消息部分中,您可以使用以下变量。

用于提供更丰富的订单信息的 for loop 示例。
输入 输出
订单摘要:
{% for a in order.lineItems %}
产品: {{a.title}}
SKU: {{a.sku}}
价格(单价): {{a.originalUnitPriceSet.shopMoney.amount}} 美元
数量: {{a.quantity}}
{% endfor %}
订单摘要:
产品: 高腰打底裤 - 黑色
SKU: 8987097979
价格(单价): 8.49 美元
数量: 5
产品: 运动袜 - 蓝色
SKU: 888998898B
价格(单价): 5.61 美元
数量: 2

您需要跟踪由特定厂商供应的已售出商品。在发送内部电子邮件操作的消息部分中,您可以使用以下变量,并在您的 for loop 中包含 if 语句。

用于针对特定厂商提供订单信息的 for loop 和 if 语句的示例。
输入 输出
Acme 产品已售出:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
产品名称: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Acme 产品已售出:
产品名称: 高腰打底裤 - 黑色
SKU: 8987097979

Shopify Flow 中的复杂数据对象

Shopify Flow 不支持输出数组和对象,原因如下:

  • GraphQL API 不建议输出不需要的数据,它可能会创建庞大的查询量,导致工作流程出现问题。
  • 引入新功能会添加新的 API 字段,这可能会破坏您的工作流程。

如果自动发送过多数据,工作流程将会出问题。您应循环数组,并且仅包含您想要的字段,而不是直接调用数组和对象。

例如,您不应直接调用 {{ order.lineItems }},而是使用以下格式来调用某个字段。这些示例涵盖了直接调用数组或对象将会包含的所有字段。您可以复制并粘贴所需字段。

准备好开始使用 Shopify 进行销售了吗?

免费试用