从商品模块为单个商品铸造一次性 Shopify 折扣码

项目级的折扣优惠面向整个受众,发放一个全店(或单一商品)通用的折扣码。这是它更精细的、模块级的搭档:折扣直接挂在商品模块本身上,绑定你从 Shopify 商品目录导入的一件真实商品,在每位收件人的邮件发送的那一刻按人铸造,并直接在该商品自己的页面上兑换——不需要购买历史分群,也不需要设置折扣优惠。

一个链接到你 Shopify 商店的工作室商品模块,可以为每位收件人铸造它自己的一次性折扣码,限定于那一件商品——不需要购买历史分群,也不需要项目级的折扣优惠。

MailInApp 已经有一个项目级的折扣优惠,用一个折扣码覆盖整个匹配受众。这是一个更精细的工具:折扣直接挂在商品模块本身上,绑定你从 Shopify 商品目录导入的那件真实商品,为该邮件的每一位收件人自动铸造,并直接在该商品自己的页面上兑换。

第 1 步——连接 Shopify

在设置 → 集成中,连接你的 Shopify 商店(如果尚未连接)。MailInApp 会在只读权限之外专门请求 write_discounts,以便铸造这项功能所依赖的折扣码——它从不请求对你商品、订单或客户本身的写入权限。

第 2 步——把商品导入商品模块

在工作室中,添加一个商品模块,打开它的从商店导入搜索。从你已同步的 Shopify 商品目录中挑选真实商品,而不是手动输入 URL。导入会同时做三件事:填入名称、描述、图片和价格;把结账切换为链接到外部商店结账;并根据商品自己的 Shopify handle 填入外部商品页面 URL。这三项对下一步都很关键——手动输入的 URL 背后没有真实的商店商品 ID,因此折扣开关在你导入之前会一直隐藏。

第 3 步——开启单品折扣

一旦模块上有一件真实的已导入商品,检查器中就会出现一个单品折扣开关。打开它并设置:

  • 折扣类型——百分比或固定金额。
  • 折扣数值——具体的数字。
  • 到期时间(发送后天数)——铸造出的折扣码可保持有效的时长。

这与该项目可能同时设置的任何项目级折扣优惠相互独立——一次发送可以同时带有两者、都不带,或只带其中一个。

第 4 步——发送,MailInApp 铸造一个限定于该商品的折扣码

在每位收件人的邮件即将渲染之前,MailInApp 会按邮箱查找其 Shopify 客户记录,并通过 Shopify 的 Admin GraphQL API 创建一个折扣码:一次性使用(usageLimit: 1)、限定给该客户,并且只限定于这一件商品,而不是你整个商店。模块自身的立即购买链接会自动被重写以带上它——不需要手动用合并标签套模板,因为一个模块 ID 本来就不是可以输入进标题里的东西。

第 5 步——购物者会准确落回这件商品,且折扣码已经应用

兑换通过你商店自己的 /discount/<code> URL 完成,它会直接重定向到这件商品自己的页面,并已应用好折扣码——而不是你商店的首页,也不是某个通用购物车。这是刻意设计的:邮件展示给他们的是一件具体商品,所以带折扣的链接也应该把他们带到同一件商品上,而不是让他们自己再去找一遍。

归因方式与其他任何商店点击相同

兑换链接仍会带上与你项目其他外部链接相同的 utm_campaign。用该折扣码下的订单,会像其他任何 Shopify 点击带来的订单一样,归因回这次发送——归因具体是如何端到端运作的,参见跟踪 Shopify 订单、结账与收入。

如果某位收件人的铸造失败

他们的邮件仍会照常发送。如果没有 Shopify 客户记录匹配他们的邮箱,或者实时 API 调用出现故障,该收件人的立即购买只会回退到模块普通的、未打折的商品链接——绝不会是一个损坏的链接,发送本身也绝不会被阻塞。

这和项目级的折扣优惠有什么不同

发送页面的折扣优惠面向整个匹配的受众——通常与购买历史分群搭配使用——用一个从下拉菜单中选择的折扣范围(全店或单一商品)覆盖所有人。这项功能则完全跳过了那一切:它只限定于模块自身携带的那件商品,不需要任何受众筛选条件,并且会为收到该邮件的任何人自动铸造。两者也各自维护自己的冷却标记,因此对一件商品设置单品折扣,绝不会阻塞另一件商品的折扣,也不会阻塞同一联系人的项目级优惠。这个模式面向整个受众的版本,参见用购买历史分群与折扣码挽回老买家。

快速上手

先连接 Shopify,把一件真实商品导入商品模块,开启一个不太起眼的单品折扣,先发给一个较小的名单,确认兑换链接落在你预期的地方。完整参考见商品模块、Shopify 集成和商店原生折扣。

典型的构建与发送流程

  1. 1

    连接 Shopify

    在设置 → 集成中,连接你的 Shopify 商店(如果尚未连接)。MailInApp 会在只读权限之外专门请求 write_discounts 权限,以便铸造这项功能所依赖的折扣码。

  2. 2

    把商品导入商品模块

    在工作室中,添加一个商品模块,使用它的从商店导入搜索,从你已同步的 Shopify 商品目录中挑选真实商品。导入会把结账设置为链接到外部商店结账,并自动填入外部商品页面 URL——下一步要出现,这两项都是必需的。

  3. 3

    开启单品折扣

    一旦模块上有一件真实的已导入商品,检查器中就会出现一个单品折扣开关。打开它,设置折扣百分比或固定金额,以及铸造出的折扣码可保持有效的天数——这与该项目可能同时设置的任何项目级折扣优惠相互独立。工作室画布会立即重新绘制,展示与收件人将看到的相同折扣徽章和划线原价,这样你无需打开实时预览就能查看。

  4. 4

    发送——MailInApp 铸造一个限定于该商品的折扣码

    在每位收件人的邮件即将渲染之前,MailInApp 会按邮箱查找其 Shopify 客户记录,并通过 Shopify 的 Admin GraphQL API 创建一个一次性折扣码,限定给该客户,并且只限定于这一件商品——不是你整个商店。

  5. 5

    立即购买已经带上了折扣码

    模块的立即购买链接会被重写为你商店的 /discount/<code> 兑换 URL,直接把购物者重定向回这件商品自己的页面,并已应用好折扣码——而不是你商店的首页或某个通用购物车。

  6. 6

    归因方式与其他任何商店点击相同

    兑换链接仍会带上与你项目其他外部链接相同的 utm_campaign,因此用该折扣码下的订单会像其他任何 Shopify 点击一样,归因回这次发送。

常见问题

这和项目级的折扣优惠有什么不同?

发送页面上的折扣优惠面向整个匹配的受众——通常与购买历史分群搭配使用——用一个折扣范围(全店或单一商品,从下拉菜单中选择)覆盖每个人。商品模块自身的单品折扣只限定于该模块导入的那一件商品,完全不需要任何受众筛选条件或发送页面上的设置;它会自动为收到那封邮件的任何人铸造折扣码。一个项目可以使用其中之一、两者都用,或都不用——它们各自独立运行,冷却期也各不相同。

这需要购买历史分群才能生效吗?

不需要。购买历史分群是与项目级折扣优惠搭配的,不是与这个功能搭配。商品模块的单品折扣会为收到该邮件的每一位收件人铸造折扣码,不管他们此前是否购买过这件商品——或任何商品。

如果某位收件人还没有 Shopify 客户记录会怎样?

铸造过程会按邮箱在你的 Shopify 客户中查找收件人。如果没有匹配,该收件人的折扣码就不会铸造,他们的邮件仍会照常发送——只是立即购买会改用普通的、未打折的商品链接,而不是一个损坏的链接。

购物者能在点击进入结账之前就看到折扣吗?

在工作室中,打开开关的那一刻画布就会自动显示同样的徽章和划线原价。在你真正的 Shopify 店铺上,这是一个可选的额外步骤:从你主题的主题编辑器中,为商品页模板一次性安装免费的 MailInApp 折扣徽章应用模块(仅限 Online Store 2.0 主题)。从邮件点击进入的购物者随后会在实时商品页面上看到同样的徽章,先于结账——这只是一个预览,依据商品自身的价格计算得出;真正的折扣无论如何都会通过一次性折扣码在结账时生效。

为什么我的商品模块上没有出现折扣开关?

只有当模块通过从商店导入携带一件真实的已导入商品时,它才会出现——铸造折扣码需要你商店自己的数字商品 ID,才能把折扣码限定到该商品,而手动输入的外部商品页面 URL 不带有这个 ID。它在 MailInApp 结账模式下也完全隐藏,因为该模式根本不会触碰你的 Shopify 商店。

我能在同一封邮件里对多件商品都这样做吗?

可以——每个商品模块都会独立铸造和追踪自己的折扣码与冷却期,按模块本身计,因此为一件商品设置折扣绝不会阻塞或影响另一件商品的折扣,也不会影响项目级的折扣优惠。

如果收件人转发邮件,折扣链接还能用吗?

折扣码本身仍然是一次性使用,并限定到原始收件人自己的 Shopify 客户记录,因此转发邮件不会把一个可用的折扣交到陌生人手中——只有那位原始购物者才能真正在结账时兑换它。

在工作室中构建它

从免费套餐开始——每个套餐都包含全部互动模块和完整的降级引擎。