从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 渲染后的形式传入。


最常见的错误:订单项
一个订单包含_许多_订单项,因此没有单一的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:过滤器后,应用会将空值视为有意为之,且不会就此发出警告。
检查清单
- 将布局中**“在 Shopify Flow 中使用**”卡片中的 JSON 内容复制下来。
- 将其粘贴到“Shopify Flow”操作的**“变量(JSON)**”字段中。
- 使用 Shopify Flow 的变量选择器替换任何
<pick a Flow variable>。 - 应通过循环遍历订单项,而不是直接读取它们。
- 在任何可选内容后添加
| default:。 - 实际运行该工作流程,然后在**“历史记录**”中查看是否出现**“变量为空**”的标记。

