跳转到主要内容

使用 Liquid Templating 进行消息个性化

学习如何使用 Liquid 语法实现高级个性化和动态内容

作者:Ira

Liquid templating 让您能够使用高级逻辑创建个性化消息,例如根据客户位置显示不同内容,在数据缺失时使用备用文本,或动态格式化日期和价格。在电子邮件(Email)营销活动、短信(SMS)和推送通知中使用 Liquid。


开始之前

  • Liquid 模板适用于营销活动和自动化流程(Automation)– 电子邮件(Email)、短信(SMS)和推送通知均支持 Liquid 对象和筛选器。

  • 发送前测试个性化 – 测试邮件显示原始 Liquid 标签 ([[ contact.first_name ]])使用测试与预览 在编辑器中,并选择一个真实的联系人,以查看个性化内容填充。

  • 始终添加备用值 – 使用| default: '文本' 以避免联系人数据缺失时出现空白。

  • Omnisend 使用修改后的 Liquid 语法 – 替换 Shopify 的大括号{{ }} 带方括号[ ]

💡 不熟悉个性化?在使用 Liquid 之前,请先从 标准个性化 开始。Liquid 适用于高级用例。

概览: 什么是 Liquid

Liquid 是由 Shopify 创建的一种开源模板语言。它让您能够使用三个元素将动态内容插入到消息中:

  1. 对象 – 输出联系人或订单数据的变量 ([[ contact.first_name ]])

  2. 标签 – 逻辑和控制流 ([% if contact.country == 'France' %])

  3. 筛选器 – 修改输出 ([[ contact.first_name | capitalize ]]

Omnisend 使用 Liquid 的修改版:

  • 对象:使用[[ ]]{{ }} - 示例:[[ contact.first_name ]]

  • 标签:使用[% %] 而不是{% %} - 示例:[% if contact.country == 'France' %]

💬 了解更多关于Liquid 在 Shopify 的文档中,并记住在 Omnisend 中用方括号替换大括号。

对象

对象是变量,可输出来自联系人资料、订单或您的账户设置的动态内容。对象总是用双层方括号括起来。

[[ contact.first_name ]]

可用对象组:

  • 联系人属性: [[ contact.variable ]] (name, 电子邮件(Email), location, custom properties)

  • 账户属性: [[ account.variable ]] (店铺名称、网站、货币)

  • 订单属性: [[ order.variable ]] (订单 ID, 总计, 商品) – 仅限自动化流程(Automation)工作流程

  • 购物车属性: [[ cart.variable ]] (废弃购物车(Abandoned Cart)网址) – 仅限自动化流程(Automation)工作流程

  • 日期属性: [[ current_date ]] (当前日、月、年)

查看下面的完整 对象参考表

筛选器

过滤器改变 Liquid 对象的输出。筛选器由管道符 | 分隔。


示例:

[[ 'mywebsite.com/orders/' | append: order.order_id ]]

常用筛选器:

  • default – 添加数据缺失时的备用文本:[[ contact.first_name | default: 'there' ]]

  • 首字母大写 – 将首字母大写:[[ contact.city | capitalize ]]

  • upcase – 转换为大写:[[ contact.country | upcase ]]

  • append – 在末尾添加文本:[[ account.website | append: '/sale' ]]

  • 日期 – 格式化日期:[[ current_date | date:'%B %d, %Y' ]] → "May 13, 2026"

  • 呼格 – 在支持的语言中调整名称为呼格形式:[[ contact.first_name | vocative ]]

详细了解 Shopify 文档中的 Liquid 筛选器 – 请记住使用 Omnisend 的 [[ ]] 语法。

标签 (仅限自动化流程(Automation))

标签用于在消息中创建逻辑和控制流。标签被 [% %] 括号括起来,不产生任何可见文本。

示例:

[% if contact.first_name %] Hi [[ contact.first_name ]] [% endif %]

⚠️ 标签仅适用于 自动化流程(Automation) – 不适用于 Campaigns。了解更多关于 Shopify 文档中的 Liquid 标签

常见用例

以下是一些有用的 Liquid 语法的常见用例:

个性化

Hi [[ contact.first_name ]], welcome to Omnisend!

输出:"Hi Sarah, welcome to Omnisend!"

💡 提示:此筛选器会自动将名称调整为支持语言中的呼格形式,使您的消息听起来更自然、更个性化。这可以通过使用以下方式实现:称呼式个性化:[[ contact.first_name | vocative ]]

个性化与备用

Hi [[ contact.first_name | default: 'there' ]], welcome to Omnisend!

输出(如果名字缺失):"Hi there, welcome to Omnisend!"

💡 为何使用备用方案?
如果联系人的资料缺少数据(例如,没有名字),个性化标签将显示空白。备用方案可以防止这种情况发生:

  • 带后备值: 您好 [[ contact.first_name | default: 'there' ]] → "Hi there"

  • 无备用: 您好 [[ contact.first_name ]] → "您好 "

始终添加回退,以避免出现尴尬的空白区域。

消息中的变量插入

在以下位置插入 Liquid 变量:

  • 电子邮件(Email)主题行:别忘了您的购物车,[[ contact.first_name ]]!

  • 电子邮件(Email)正文:您的订单总计:[[ order.total_price ]] [[ order.currency ]]

  • 短信(SMS)消息:您好,[[ contact.first_name ]],您的订单 #[[ order.order_number ]] 已发货!

  • 推送通知:[[ contact.first_name ]], 20% 折扣今日截止

  • 按钮链接:[[ account.website ]]/orders/[[ order.order_id ]]

条件逻辑(仅限自动化)

使用条件语句根据联系人数据显示不同内容。

语言本地化

[% if contact.custom_properties.language == 'Spanish' %] Hola [[ contact.first_name ]]! [% elsif contact.custom_properties.language == 'French' %] Bonjour [[ contact.first_name ]]! [% else %] Hi [[ contact.first_name ]]! [% endif %]

基于位置的内容

[% if contact.country == 'UK' or contact.country == 'Ireland' %] Have you visited our newest flagship store in London? [% endif %]

格式设置

首字母大写

Hi [[ contact.first_name | capitalize ]]

输出:"Hi sarah" → "Hi Sarah"

追加自定义文本

[% assign campaign_destination = '/landing_page.html' %]  [[ account.website | append: campaign_destination ]]

日期格式

Omnisend © [[ current_date | date:'%Y' ]]

输出: "Omnisend © 2026"

日期格式选项:

  • %d – 日 (13)

  • %A – 星期几名称 (星期三)

  • %m – 月份数字 (05)

  • %B – 月份名称 (May)

  • %Y – 年 (2026

对象参考表

联系人属性

下拉菜单标题

标签

值类型

描述

电子邮件(Email)

[[ contact.email ]]

string

联系人电子邮件(Email)

姓名

[[ contact.first_name ]]

string

联系人的名字

姓氏

[[ contact.last_name ]]

string

联系人的姓氏

城市

[[ contact.city ]]

字符串

联系人所在城市

国家/地区

[[ contact.country ]]

string

联系人所在国家/地区

状态

[[ contact.state ]]

string

联系人状态

邮政编码

[[ contact.postal_code ]]

字符串

联系人邮政编码

退订链接

[[ unsubscribe_link ]]

联系人退订链接

偏好设置中心链接

[[ preference_link ]]

联系人偏好设置链接

自定义属性

[[ contact.custom_properties.customPropertyName ]]

object

联系人的自定义属性

电话号码

[[ contact.phone_number ]]

string

联系人的电话号码

账户属性

下拉菜单标题

标签

值类型

描述

名称

[[ account.name ]]

string

账户名称

地址

[[ account.address ]]

string

账户地址

城市

[[ account.city ]]

string

账户城市

邮政编码

[[ account.zipCode ]]

string

账户邮政编码

国家/地区

[[ account.country ]]

string

账户国家

网站 URL

[[ account.website ]]

string

账户网站 URL

时区

[[ account.timezone ]]

string

账户时区

货币

[[ account.currency ]]

字符串

账户的货币

日期属性

下拉标题

标签

值类型

描述

当前日期

[[ current_date | date:'%d' ]]

-

执行操作的日期

当前日期名称

[[ current_date | date:'%A' ]]

-

执行操作的日期

当前月份

[[ current_date | date:'%m' ]]

-

执行操作的月份

当前月份名称

[[ current_date | date:'%B' ]]

-

执行操作的月份名称

当前年份

[[ current_date | date:'%Y' ]]

-

执行操作的当前年份

订单属性(仅限自动化流程)

下拉标题

标签

值类型

描述

订单 ID

[[ order.order_id ]]

字符串

订单 ID

订单号

[[ order.order_number ]]

int64

订单编号

订单名称

[[ order.order_name ]]

字符串

订单名称

订单日期

[[ order.order_date ]]

日期

订单创建日期

货币

[[ order.currency ]]

字符串

订单的货币

总价格

[[ order.total_price ]]

int64

订单的总金额

小计价格

[[ order.subtotal_price ]]

int64

小计订单的总金额

折扣

[[ order.discount ]]

int64

订单的折扣

运费

[[ order.shipping_price ]]

int64

订单的运费

订单状态页面 URL

[[ order.order_url ]]

字符串

获取确切订单信息的 URL

订单备注

[[ order.note ]]

字符串

其他订单备注

账单地址(仅限自动化流程)

下拉菜单标题

标签

值类型

描述

[[ order.billing_address.first_name ]]

string

账单地址中提供的联系人名字

[[ order.billing_address.last_name ]]

字符串

账单地址中提供的联系人姓氏

国家

[[ order.billing_address.country ]]

string

账单地址中提供的联系人国家

国家代码

[[ order.billing_address.country_code ]]

字符串

账单地址中提供的联系人国家代码

[[ order.billing_address.state ]]

string

账单地址中提供的联系人州

州代码

[[ order.billing_address.state_code ]]

字符串

账单地址中提供的联系人州代码

城市

[[ order.billing_address.city ]]

字符串

账单地址中提供的联系人城市

地址 1

[[ order.billing_address.address1 ]]

字符串

账单地址中提供的联系人地址(第一行)

地址 2

[[ order.billing_address.address2 ]]

字符串

账单地址中提供的联系人地址(第二行)

邮政编码

[[ order.billing_address.zip ]]

string

账单地址中提供的联系人邮政编码

公司

[[ order.billing_address.company ]]

string

账单地址中提供的联系人公司名称

电话

[[ order.billing_address.phone ]]

字符串

账单地址中提供的联系人电话号码

发货地址(仅限自动化流程)

下拉标题

标签

值类型

描述

名字

[[ order.shipping_address.first_name ]]

字符串

联系人的名字在运输地址中提供

[[ order.shipping_address.last_name ]]

字符串

联系人的姓在运输地址中提供

国家

[[ order.shipping_address.country ]]

string

联系人的国家在运输地址中提供

国家代码

[[ order.shipping_address.country_code ]]

string

联系人的国家代码在运输地址中提供

[[ order.shipping_address.state ]]

string

联系人的州在运输地址中提供

州代码

[[ order.shipping_address.state_code ]]

string

联系人的州代码在运输地址中提供

城市

[[ order.shipping_address.city ]]

string

联系人的城市在运输地址中提供

地址 1

[[ order.shipping_address.address1 ]]

string

联系人的地址(第一行)在运输地址中提供

地址 2

[[ order.shipping_address.address2 ]]

string

联系人的地址(第二行)在运输地址中提供

邮政编码

[[ order.shipping_address.zip ]]

string

联系人的邮政编码在运输地址中提供

公司

[[ order.shipping_address.company ]]

string

联系人的公司名称在运输地址中提供

电话

[[ order.shipping_address.phone ]]

字符串

联系人的电话号码在运输地址中提供

购物车属性(仅限自动化流程)

下拉标题

标签

值类型

描述

废弃购物车(Abandoned Cart)URL

[[ abandoned_cart.recover_url ]]

string

用于访问/恢复废弃购物车的URL

故障排除

个性化在电子邮件中显示原始代码

原因: 您正在查看测试电子邮件,而不是实时电子邮件。

解决方案: 测试电子邮件始终显示原始 Liquid 标签 ([[ contact.first_name ]]).测试个性化:

  • 在编辑器中使用 测试与预览 并选择一个真实的联系人。

  • 或将活动/自动化发送到您自己的电子邮件(确保您的联系人资料中有数据)。

个性化不会在实时电子邮件中转化

原因: 如果部分编辑,Liquid 标签可能会失去完整性。

解决方案: 删除整个个性化标签并重新插入它,使用个性化标签 图标在工具栏中,或输入@ 在文本块中。这确保标签格式正确。

后备文本无效

原因: 语法不正确或缺少引号。

解决方案: 确保后备值用引号括起来:

  • [[ contact.first_name | default: 'there' ]]

  • [[ contact.first_name | default: there ]]

条件逻辑在活动中无效

原因: 标签和条件语句仅在自动化流程中有效。

解决方案: 在自动化中使用条件逻辑 - 而不是活动。

常见问题

我可以在短信(SMS)和推送通知中使用 Liquid 吗?

是的。 液体对象和过滤器在电子邮件(Email)、短信(SMS)和推送通知中工作。条件逻辑仅在自动化流程中有效。

{{ }}[[ ]] 有什么区别?

Shopify 使用 {{ }} 来表示 Liquid 对象。Omnisend 使用 [[ ]]。如果您正在从 Shopify 文档中复制 Liquid 代码,请将花括号替换为方括号。

我需要添加后备值吗?

是的。始终添加后备选项以避免在缺少联系人数据时出现空白空间:
[[ contact.first_name | default: 'there' ]]

我可以组合多个过滤器吗?

是的。用 | 符号链接过滤器:
[[ contact.first_name | capitalize | default: 'there' ]]

我在哪里可以找到更多的 Liquid 示例?

Shopify 的 Liquid 文档 中了解更多 记得将 {{ }} 替换为 [[ ]],将 {% %} 替换为 [% %] 在 Omnisend 中使用。


欢迎通过应用内聊天或在 [email protected] 联系我们获奖的支持团队以获取任何额外帮助。

这是否解答了您的问题?