了解 Shopify Flow 中的条件
条件是工作流中的一个步骤,用于根据是否满足一组标准来决定如何继续。每个条件步骤都有两种可能的结果:如果满足标准,则结果为为真;如果不满足标准,则结果为为假。如果您没有为任何一种可能的结果选择另一个条件或操作来定义下一步,则工作流运行将停止。
例如,如果您的工作流在创建订单时触发,则条件可以检查订单上是否使用了特定的 AFFILIATE10 折扣码。如果使用了,则为真选项可导向一个操作,该操作会向联盟发送一封电子邮件,告知他们其折扣码已被使用。如果未使用,则为假选项可以为空,这表示不会发生任何后续操作,工作流运行结束。
一个工作流可以包含任意数量的条件,具体取决于您的工作流的复杂程度。条件也可以连接到其他条件或操作,具体取决于您希望工作流执行什么操作。可以设置条件按顺序连接(例如,如果条件 A 为真,则检查条件 B;如果 A 为假,则检查 C),也可以将它们设置为在同一步骤中同时发生(例如,检查 A、B 或 C 是否为真)。
为您的工作流创建条件
触发器或操作可以从 Shopify Flow 中的可用选项预设列表中选择,而条件则不同,它需要通过选择变量、逻辑运算符和值来从头创建条件语句:
- 变量是一个占位符,用于定义条件正在使用的数据。例如,如果某个条件要检查订单上的特定折扣码,则变量将为
order.discountCode。变量使用 GraphQL Admin API 点表示法。 - 一个 逻辑运算符 指示工作流应如何确定是否满足条件。逻辑运算符可以应用于变量级别,也可以在多个变量作为整体条件标准的一部分时应用:
- 变量级选项包括字段级运算符(例如大于或开头为),或列表运算符(例如其中至少一个或全部)。
- 条件级选项包括 AND(表示所有变量都必须为真,条件才能被视为整体为真)或 OR(表示至少有 1 个变量必须为真,条件才能被视为整体为真)。
- 值是变量正在寻找的实际信息。例如,如果您希望工作流检查的特定
order.discountCode是 AFFILIATE10,那么这就应是包含在条件中的值。
当您选择变量和运算符时,Shopify Flow 画布中的条件步骤会更新,以通俗易懂的语言反映您的条件语句,以便您可以仔细检查您正在构建的条件格式是否正确。您可以点击添加描述,用您自己编写的描述覆盖默认的条件语句。
详细了解 Shopify Flow 中的条件元素。
了解条件中的变量
在工作流中创建条件步骤时,系统会提示您执行的第一个步骤是添加变量。但是,变量是什么?
在 Shopify Flow 中,变量是一个占位符,用于指示工作流中条件所使用的数据。当一个条件显示为“如果 A 大于 10...”时,A 部分就是变量。为条件选择变量,实际上就是明确告知该条件要评估什么数据。
变量使用 GraphQL Admin API 点表示法进行格式化。您无需精通该 API 即可使用 Flow 应用创建工作流,但对变量名称及其定义有基本的了解可以帮助您构建所需的特定工作流逻辑。
要了解变量表示什么数据,请考虑以下有关变量的信息:
- 如何读取变量点表示法。
- 了解变量的数据要求。
- 在搜索期间查找正确的变量。
提示:从 Dev Docs Assistant 获取有关变量的帮助
如果您在构建条件时不确定要选择哪个变量,可以考虑向 Shopify Dev Docs Assistant 寻求建议。Dev Docs Assistant 可以访问有关 GraphQL Admin API 的所有文档,并且可以为您提供有关如何在 Shopify Flow 中设置条件格式的建议:
- 前往 Shopify Dev Docs。
- 点击 咨询助手 以打开聊天面板。
- 在消息输入框中输入您的请求,例如:“如果触发器为“订单已创建”,我想在 Shopify Flow 中访问客户标签数据,该使用哪个变量?”。
- 按 Enter 键或点击
。
解读变量点表示法
选择变量时,您会注意到它们的格式是由句点分隔的关键字,例如 order.customer.tag。此格式表示 API 为获取您要使用的数据所采用的步骤。变量的每“一步”都由一个句点分隔,数据路径从左到右读取。根据数据在 API 中的存储位置以及工作流程为获取数据所采用的路径,变量的长度可能会有所不同。
例如:
order.email:检查与订单关联的客户的电子邮件地址。这类似于您点击订单,然后在订单详细信息中查看电子邮件地址。refunds_item.staffMember.name:检查订单中的商品退款,找到与该退款关联的员工信息,并查看该员工的全名。
选择变量时,请思考您会如何在 Shopify 后台中进行导航以找到所需信息。API 很可能也需要采用类似的路径,这可以帮助您确定变量的格式。
例如,如果您正在查看一个新订单,并且想知道与该订单关联的客户属于哪个 RFM 分组,那么您可能会想到先点击订单上的客户姓名,以重定向到 Shopify 后台中的客户详细信息页面,然后查看客户的分析摘要,以读取 RFM 分组列中显示的值。
在 Shopify Flow 中,您用于返回相同数据的变量将使用类似的路径:order.customer.statistics.rfmGroup。
变量的数据要求
变量需要数据。如果变量无法获取所需数据,条件将无法正常工作,工作流程也会失败。根据您为工作流程选择的初始触发器,可用于条件中的变量选项也会有所不同,以匹配可用的数据。
例如,如果您的工作流程以 产品已创建 触发器为开头,则您基于该触发器创建的条件将仅限于产品数据集中的可用变量。因此,product.category.name、product.vendor 和 variants_item.displayName 等变量都可用作条件的一部分。相比之下,customer.verifiedEmail 或 subscriptionContracts_item.status 等变量则不会显示为选项,因为它们与产品数据集没有关联。
但是,这并不一定意味着其他数据集中的数据完全无法访问。某些数据可以从 API 中的多个路径进行访问,就像您在 Shopify 后台中可以通过点击不同的链接来访问同一页面一样。在实践中,这意味着不同的触发器需要使用不同的变量表示法来返回相同的信息。
例如,您希望工作流程检查客户资料上的标签。如果您的工作流程以 订单已创建 触发器为开头,那么变量应为 order.customer.tags,因为工作流程从订单数据开始,然后检查订单中的客户信息,最后检查该客户的标签。如果您的工作流程以 客户已创建 触发器为开头,那么变量就是 customer.tags,因为工作流程从客户数据开始,所以可以直接检查客户资料上的标签。
在根据关键字搜索时检查变量的路径
由于 Shopify Flow 采用点表示法样式,因此根据关键字搜索要在条件中使用的变量时,可能会返回多个结果。在确定要选择哪个变量来构建条件时,了解变量路径的含义至关重要。
例如,您的工作流程使用 订单已创建 触发器,并且您使用关键字 tags 来搜索变量。您的搜索可能会返回以下结果,这些结果会检查订单中的不同信息:
order.tags:应用于订单本身的标签。例如,#加急订单 或 #礼品。order.customer.tags:应用于下单客户的标签。例如,#VIP 或 #联盟客。order.lineItems.product.tags:应用于订单中所购产品的标签。例如,#易碎品 或 #需要身份证明。
根据您希望工作流程检查的标签类型,您需要选择正确的变量,以使您的条件能按预期运行。
了解条件中的逻辑运算符
逻辑运算符定义条件的评估方式,并使语句的结果为 true 或 false。当条件为“如果 A 大于 10...”时,大于部分就是逻辑运算符。为条件选择逻辑运算符,实质上就是告知条件如何评估变量。
在 Shopify Flow 工作流程中,有 3 种类型的逻辑运算符:
- 字段级运算符,例如 大于 或 开头为。
- 列表运算符,例如 至少一个 或 全部。
- 条件级运算符,例如 AND 或 OR。
字段级运算符和列表运算符在变量级别应用,而条件级运算符则应用于整个条件,可用于将多个变量合并为单个条件。
字段级运算符是最常见的运算符类型,可用于所有类型的变量语句。通过字段级运算符,您可以创建“如果 A 大于 10,则执行 X”或“如果 B 包含 ‘VIP’,则执行 X”等条件语句,从而更好地控制变量的哪些值会返回 true 结果。等于是默认的逻辑运算符。
列表运算符仅适用于可返回结果列表的变量。例如,lineItems_item.variant.price 变量会返回订单中某个产品多属性的价格;当客户在同一订单中购买多个产品时,该变量可以返回一个结果列表。这意味着,如果您希望“lineItems_item.variant.price 大于 10 美元”这一条件语句在订单中至少有 1 个产品多属性价格超过 10 美元时为 true,则可以应用 至少一个 之类的列表运算符。相比之下,对于一次只能返回 1 个结果的变量,则不会显示列表运算符。例如,order.createdAt 等变量只有一个可能的值,因为一个订单只能创建一次,所以列表运算符不会显示为用于修改包含该变量的语句的选项。
借助 AND 和 OR 等运算符,您可以在同一条件中包含多个变量。例如,您不用“如果 A 等于 5,则执行 X”这样的简单条件语句,而是可以构建更复杂的条件,例如“如果 A 等于 5 并且 B 大于 10,则执行 X”(这要求变量 A 和 B 都为 true),或“如果 A 等于 5 或 B 大于 10 或 C 小于 1,则执行 X”(这要求 A、B 或 C 中只需有 1 个为 true)。当工作流中的所有内容都必须为 true 时,请使用 AND;当满足任何 1 个条件就足以使整个条件为 true 时,请使用 OR。
重要性:了解逻辑运算符在条件中的工作原理后,您便可以构建能够精确检查所需条件的工作流。利用这 3 种逻辑运算符,您可以编写详细而复杂的条件语句,让工作流能够检查非常具体的条件。
详细了解条件中的逻辑运算符。