从Shopify Flow传递数据

您的电子邮件布局就像一个带有空洞的形状。**变量(JSON)**就是Shopify Flow用来填补这些空洞的方式。

这是最常见的错误,因此花五分钟时间了解它非常值得。

两部分

在哪里 你写的内容 示例
在您的电子邮件版面中 占位符 Hi {{ variables.firstName }}
“In the Flow” Shopify Flow 操作 提供该数据的 JSON {"firstName": "{{ order.customer.firstName }}"}

JSON 左侧的键必须与布局中 variables. 后的名称完全一致 - - 拼写和大小写都必须相同。firstName 和 firstname 是两个不同的变量。

让应用程序为您生成 JSON 数据

你不必手写这些内容,而且最好不要手写。

打开您的布局。在侧边栏(或可视化构建器中的**“测试变量**”选项卡)中,有一张名为**“在Shopify Flow中使用**”的卡片,其中包含该布局的精确JSON代码,所有键值均已设置正确。点击**“复制JSON**”,然后将其粘贴到“发送交易邮件”操作的**“变量(JSON)**”字段中。

该应用会为它识别出的字段(如客户名称、订单名称、订单总额、状态页面 URL 等)自动填写“Shopify Flow”属性。无法推断出的内容将显示为<pick a Flow variable>,供您手动替换。

JSON 应该是什么样子的

{
  "firstName": "{{ order.customer.firstName }}",
  "orderName": "{{ order.name }}",
  "statusPageUrl": "{{ order.statusPageUrl }}"
}

值得了解的规则:

  • 请将每个 Shopify Flow 值用双引号括起来。"orderName": {{ order.name }} 是不合法的 JSON;"orderName": "{{ order.name }}" 是正确的。
  • 条目之间用逗号分隔,最后一个条目后不加逗号。
  • **键名由您自行决定。**它们只需与您的布局相匹配即可。如果您的布局中写的是 {{ variables.kunde }},那么该键应为 kunde。
  • 值以文本形式传入。数字和日期则以 Shopify Flow 渲染后的形式传入。
Shopify Flow 中的“发送事务性电子邮件”操作,包含“回复至”、“发件人姓名”、“语言”以及填充了 Shopify Flow 变量的 JSON 变量
操作中的变量(JSON):左侧是您的键,右侧是 Shopify Flow 变量。其上方是“回复至”、“发件人姓名”和“语言”字段。
包含“在Shopify Flow中使用”面板及其“复制JSON”按钮的布局中的“测试变量”选项卡
布局的“测试变量”选项卡会自动生成 JSON 代码:复制 JSON 代码,然后将其粘贴到操作中,并替换其中的值。

最常见的错误:订单项

一个订单包含_许多_订单项,因此没有单一的variant.title可供读取。这将返回空值:

{{ order.lineItems.variant.title }}

你有两个不错的选择。

**选项 1 - - 在布局内部进行循环。**先发送列表,然后进行迭代。在 Shopify Flow 操作中:

{
  "items": "{{ order.lineItems | json }}"
}

在您的布局中,请使用一个**“循环**”模块:

{% for item in variables.items %}
  <tr>
    <td>{{ item.title }}</td>
    <td>{{ item.quantity }}</td>
  </tr>
{% endfor %}

**方案 2 - - 在 Shopify Flow 中将其扁平化。**如果你只需要一行文本,可以在 Shopify Flow 中使用 for 循环构建它,然后发送生成的字符串:

{
  "itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}

如果该应用检测到某个变量看起来像是订单项数据 - - 例如名称为 variant、product、item、sku 或 quantity 的变量 - - 它会在**“在 Shopify Flow** 中使用”卡片上向您发出警告。

测试值并非实时值

这几乎会让所有人犯错。

  • 布局编辑器中的测试变量仅用于驱动预览和**“发送测试邮件”功能**。
  • Shopify Flow 的实时运行会完全忽略这些内容,并直接使用 Shopify Flow 操作发送的任何内容。

因此,一封看起来完美的测试邮件只能证明你的_设计_有效,但无法证明你的 Shopify Flow 配置是否正确。请务必通过实际运行工作流程来确认。

当一个变量为空时

从 1.10.0 版本开始,应用会直接告知你,而不是让你自己猜测。

如果实时发送将某个变量渲染为空,则**“历史记录**”中的条目会显示**“空变量**”标记,打开该条目即可准确查看具体是哪些变量,这些变量会按以下两种情况分类:

案例 含义 修复
由 Shopify Flow 发送,但邮件内容为空 密钥就在你的 JSON 中,但 Shopify Flow 没有生成任何值 该订单的“流”属性路径有误,或者确实为空(访客结账时没有customer.firstName)
这完全不是Shopify Flow发来的 你的 JSON 中完全缺少该键 添加它 - - “复制 JSON”按钮会为您提供完整的数据集

防范空值

对于任何可选内容,请在布局中为其设置备用方案,以确保客户永远不会看到空白页面:

Hi {{ variables.firstName | default: "there" }}

启用default:过滤器后,应用会将空值视为有意为之,且不会就此发出警告。

检查清单

  1. 将布局中**“在 Shopify Flow 中使用**”卡片中的 JSON 内容复制下来。
  2. 将其粘贴到“Shopify Flow”操作的**“变量(JSON)**”字段中。
  3. 使用 Shopify Flow 的变量选择器替换任何 <pick a Flow variable>。
  4. 应通过循环遍历订单项,而不是直接读取它们。
  5. 在任何可选内容后添加| default:。
  6. 实际运行该工作流程,然后在**“历史记录**”中查看是否出现**“变量为空**”的标记。

相关