Shopify Flow 中的条件

在 Shopify Flow 中,条件可决定是否在触发器启动工作流后执行操作。设置条件时,您可以选择从商店数据中提取的值逻辑运算符,并手动设置要检查的值。

用于 Flow 的数据类型

任何 Flow 条件中的第一个值都是从商店获得的数据,并且提取自 GraphQL 后台 API

Flow 支持以下类型的数据:

  • 浮动:浮动值是包含小数的数字。例如,4.25。
  • 整数:整数值不含小数。例如,42。
  • 日期:日期值是日期的数字表示形式。例如,01012021。
  • 字符串:字符串值是文本。使用字符串值进行的比较不区分大小写。
  • 布尔值:布尔值是 true 或 false。
  • 枚举:枚举值是一组数据,允许变量是一组预定义常量。

Flow 中使用的逻辑运算符

逻辑运算符定义条件的应用方式。条件可以检查简单的属性,例如订单总额是否超过一定金额,或客户是否接受营销。逻辑运算符还可以检查更复杂的属性。

Flow 可以使用以下运算符:

Equal to

Equal to 用于比较值,以查看值是否相同。在下面的示例中,工作流将从您的商店数据中检索 order.currentTotalDiscountsSet.shopMoney.amount 的值并将其与第二个值 (50) 进行比较。

使用 equal to 逻辑运算符的工作流示例,该工作流在检索到的数据等于 50 时取消订单

如果第一个值等于 50,则条件为 true。订单将被取消。

Not equal to

Not equal to 用于比较值,以查看值是否不同。在下面的示例中,工作流将从您的商店数据中检索 order.currentTotalDiscountsSet.shopMoney.amount 的值并将其与第二个值 (50) 进行比较。

使用 not equal to 逻辑运算符的工作流示例,该工作流在检索到的数据不等于 50 时取消订单

如果第一个值等于 93,则条件为 true。订单将被取消。

Greater than 和 Greater than or equal to

Greater thanGreater than or equal to 用于比较值,以查看第一个值是大于还是大于或等于第二个值。在下面的示例中,工作流将从您的商店数据中检索 order.currentTotalDiscountsSet.shopMoney.amount 的值并将其与第二个值 (50) 进行比较。

使用 greater than 逻辑运算符的工作流示例,该工作流在检索到的数据大于 50 时取消订单

如果从商店提取的值为 137,则条件为 true,因为 137 大于 50。订单将被取消。

Less than 和 Less than or equal to

Less thanLess than or equal to 用于比较值,以查看第一个值是否小于或是小于或等于第二个值。在下面的示例中,工作流将从您的商店数据中检索 order.currentTotalDiscountsSet.shopMoney.amount 的值并将其与第二个值 (50) 进行比较。

使用 less than 或 equal to 逻辑运算符的工作流示例,该工作流在检索到的数据小于或等于 50 时取消订单

如果从商店提取的值为 47,则条件为 true,因为 47 小于或等于 50。订单将被取消。

Any of

Any of 用于比较数据数组中的值,以查看第一个值输入是否包含第二个值输入中的任何数据。要检查的值必须各自输入,然后按 Enter 键。对空白数组使用 Any of 会导致误报。在下面的示例中,工作流从商店数据中检索 order.lineitem.product.title 的值并将其与第二组值 (pineapple, guava, kiwi) 进行比较。

使用 any of 逻辑运算符的工作流示例,该工作流在检索到的数据中包括 pineapple、guava 或 kiwi 时取消订单

如果从商店提取的值为 guava,则条件为 true,因为 pineapple, guava, kiwi 数组中包含 guava。订单将被取消。

Not any of

Not any of 用于比较数据数组中的值,以查看第一个值输入是否不包含第二个值输入中的任何数据。要检查的值必须各自输入,然后按 Enter 键。在下面的示例中,工作流从商店数据中检索 order.lineitem.product.title 的值并将其与第二组值 (pineapple, guava, kiwi) 进行比较。

使用 not any of 逻辑运算符的工作流示例,该工作流在检索到的数据中不包括 pineapple、guava 或 kiwi 时取消订单

如果从商店提取的值为 raspberry,则条件为 true,因为 pineapple, guava, kiwi 数组中不包含 raspberry。订单将被取消。

Includes

Includes 用于比较值,以查看任意的第一个值输入是否包括第二个值输入中的数据。在下面的示例中,工作流将从您的商店数据中检索 order.lineitem.product.title 的值并将其与第二个值 (scrape) 进行比较。

使用 includes 逻辑运算符的工作流示例,该工作流在检索到的数据中包括字符串 scrape 时取消订单

如果从商店数据中提取的值为 skyscraper,则条件为 true,因为字符串 skyscraper 中包括 scrape 字符串的精确匹配字符串。订单将被取消。

Does not include

Does not include 用于比较值,以查看任意的第一个值输入是否不包含第二个值输入中的数据。在下面的示例中,工作流将从您的商店数据中检索 order.lineitem.product.title 的值并将其与第二个值 (scrape) 进行比较。

使用 does not include 逻辑运算符的工作流示例,该工作流在检索到的数据中不包括字符串 scrape 时取消订单

如果从您的商店数据中提取的值为 scrap-metal,则条件为 true,因为字符串 scrap-metal 中不包括 scrape 字符串的精确匹配字符串。订单将被取消。

Starts with

Starts with 用于比较值,以查看第一个值是否以第二个值中的数据为开头。在下面的示例中,工作流将从您的商店数据中检索 order.shippingAddress.country 的值并将其与第二个值 (United) 进行比较。

使用 start with 逻辑运算符的工作流示例,该工作流在检索到的数据以字符串 United 开头时取消订单

如果从商店提取的值为 United Kingdom,则条件为 true,因为字符串 United Kingdom 以字符串 United 开头。订单将被取消。

Does not start with

Does not start with 用于比较值,以查看第一个值是否不以第二个值中的数据为开头。在下面的示例中,工作流将从您的商店数据中检索 order.shippingAddress.country 的值并将其与第二个值 (United) 进行比较。

使用 does not start with 逻辑运算符的工作流示例,该工作流在检索到的数据不以字符串 United 开头时取消订单

如果从商店提取的值为 Canada,则条件为 true,因为字符串 United Kingdom 不以字符串 Canada 开头。订单将被取消。

Ends with

Ends with 用于比较值,以查看第一个值是否以第二个值中的数据为结尾。在下面的示例中,工作流将从您的商店数据中检索 order.lineitems.product.title 的值并将其与第二个值 (last-available) 进行比较。

使用 ends with 逻辑运算符的工作流示例,该工作流在检索到的数据以字符串 last-available 结尾时取消订单

如果从商店提取的值为 athletic socks last-available,则条件为 true,因为字符串 athletic socks last-available 以字符串 last-available 结尾。订单将被取消。

Does not end with

Does not end with 用于比较值,以查看第一个值是否不以第二个值中的数据为结尾。在下面的示例中,工作流将从您的商店数据中检索 order.lineitems.product.title 的值并将其与第二个值 (last-available) 进行比较。

使用 does not end with 逻辑运算符的工作流示例,该工作流在检索到的数据不以字符串 last-available 结尾时取消订单

如果从商店提取的值为 athletic socks new,则条件为 true,因为字符串 athletic socks new 不以字符串 last-available 结尾。订单将被取消。

对条件排序

您可以创建包含多个条件的工作流,每个条件都可以触发不同的操作。条件的顺序很重要。工作流启动时便开始检查条件,并有序逐一检查每个条件。当满足某个条件时,检查便会停止。

满足多个条件

设置条件时,您可以设置多个条件,并确定当满足所有条件或满足任一条件时,Flow 是否认为条件为 true。

如果满足所有条件

选择如果满足所有条件后,只有当您设置的所有条件都为 true 时,工作流才会返回 true 响应。

例如,您创建一个工作流来为位于加拿大且单个订单花费金额超过 500 美元的客户添加标签。

使用 and 条件的工作流示例

只有当客户位于加拿大并且订单花费金额超过 500 美元时,工作流才会为客户添加标签。如果其中任一条件为 false,则工作流不会为客户添加标签。

如果满足任意条件

选择如果满足任意条件后,如果您设置的任一条件得到满足,工作流都会返回 true 响应。

例如,您创建一个工作流来为被视为存在高风险或中风险的订单添加标签。

使用 or 条件的工作流示例

无论订单存在高风险还是中风险,工作流都会为订单添加标签。只要其中一个条件为 true,工作流就会为订单添加标签。

组合条件和操作

您可以将多个条件组合在一起,创建一个较大的条件。组合条件后,只有满足所有条件才能使整个条件为 true。如果有任何一个条件未满足,则整个条件为 false。在下面的示例中,客户必须接受营销材料并且其订单总额必须高于特定阈值。

用于检查客户的总消费金额并添加标签的工作流示例

类似地,您可以将操作组合在一起,以便可以运行多个操作。本示例使用多个条件并基于客户在商店中的总消费金额来检查客户是否有资格参与忠诚计划。上面的示例中按照显示顺序对下列条件进行了检查:

  1. 如果总价高于 1000 美元并且客户同意接受营销,则使用金牌标签对他们进行标记。
  2. 如果总价低于 1000 美元但超过 500 美元,并且客户同意接受营销,则使用银牌标签对他们进行标记。
  3. 如果客户消费了 200 美元以上并且同意接受营销,则使用铜牌标签对他们进行标记。

条件中的静态和动态数据

通常,条件中的第二个值是静态的手动输入值。每次运行工作流时,此值保持不变。

如果第二个值的字段显示 </> 符号,则表示您也可以使用动态值。工作流每次运行时都会从您的商店数据中提取动态值。若要使用动态值,请点击 </> 符号并选择要检查的值。动态值并非在所有字段都可用。

例如,您可以创建一个工作流,当订单账单地址中的国家/地区与收货地址中的国家/地区匹配时,该工作流将为订单添加标签。

使用 RHS 数据为订单添加标签的工作流示例,该工作流检查客户的账单地址和收货地址中的国家/地区是否相同。

在此示例中,第一个值和第二个值均提取自商店数据,而不是手动指定要相较于第二个值检查的静态字符串。如果客户提供的账单地址中的国家/地区与客户在收货地址中提供的国家/地区相同,则条件为 true,并且工作流将为订单添加标签。

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

免费试用