跳转到主要内容

在Shopify中买一送二半价:'不折扣前N件商品'技巧及其限制

By Stackable TeamPublished on August 2, 2026Shopify How-To#bogo#buy-x-get-y
在Shopify中买一送二半价:'不折扣前N件商品'技巧及其限制

您可以在Shopify中原生运行'买一件,第二件5折',最简洁的方式是使用Buy X Get Y折扣:顾客以全价购买一件商品,第二件符合条件的商品设置为5折。还有第二种原生方法,即'按商品折扣'加最小数量,但它折扣所有符合条件的单位而不仅仅是第二件,所以对于这个确切的优惠来说通常是错误的工具。原生方法适用于单对,但它有真实的限制:它不能在大购物车中的许多对中干净地重复,它对'第二件'商品的目标粗糙,并且它可能与您的其他折扣冲突,因为Shopify只允许每个购物车行一个商品折扣。

本指南涵盖这两种原生方法的逐步说明,解释了驱动该优惠的'不折扣前N件商品'机制,通过一个实际例子和表格确切地说明原生方法在哪里失效,并在您需要该优惠可靠地重复和叠加时列出Shopify Functions方法。

您能在Shopify中原生运行'买一件,第二件5折'吗?

能。Shopify给您两种原生折扣类型可以表达这个优惠的某个版本,精确了解每个折扣实际做什么很有帮助,因为它们不可互换。

第一个是Buy X Get Y(Shopify在管理后台称其为'Buy X get Y',在开发者API中称为BXGY)。这是'第二件半价'的正确原生工具,因为它将顾客购买的商品与他们获得折扣的商品分开。您告诉它顾客购买1件,获得1件5折,Shopify就这样做。

第二个是按商品折扣加上最小购买数量。这个很诱人,因为您可以说'买2件,5折',但要看清细则:它折扣所有符合条件的单位,而不仅仅是第二件。这里的'买2件,5折'意味着两件商品都是半价,这是对这对商品的25%有效折扣,而不是'一件全价,一件半价'。这是不同的优惠,将一个与另一个混淆是商家犯这个错误最常见的方式。

所以诚实的答案是:对真正的'第二件5折'使用Buy X Get Y,理解按商品折扣的行为不同,并知道两者一旦您的购物车增长到单对之外就会遇到限制。

图像占位符(图片1):第二件折扣的两种原生方案
建议视觉:白色背景上干净的16:9图表,两条标记的路径。左路径'Buy X Get Y'显示两张商品卡,第一张以全价和小的'您购买'标签,第二张盖印'5折'和'您获得'标签。右路径'按商品折扣,最小数量2'显示两张相同的卡都盖印'5折',带有说明文字'折扣每件单位'。中心标签读作'相同的词,不同的数学'。平面矢量风格,品牌色紫色和金色,无衬线标签,无摄影。

方法1:Buy X Get Y,可靠的原生方式

Buy X Get Y为这种形状的促销而构建。根据Shopify的开发者文档,BXGY折扣存储'顾客购买'集合(购物者必须购买的商品和数量)和'顾客获得'集合(接收折扣的商品和数量,以您选择的百分比)。将'获得'百分比设置为50%是使其变成'第二件半价'的原因。

在管理后台设置

  1. 在您的Shopify管理后台,转到折扣并点击创建折扣,然后选择Buy X get Y
  2. 顾客购买下,设置最少商品数量为1,并选择符合条件的商品或集合。如果您希望交易对某个组中的任何商品都有效,请将其作用域设置为一个集合。
  3. 顾客获得下,将数量设置为1,并选择相同的商品或集合,以便'获得'商品来自同一池。
  4. 对于折扣值,选择百分比并输入50%
  5. 最大使用次数下,决定该优惠是否可以在每单中应用多次。这单一的设置是'它是否重复'问题所在的地方,我们将在限制部分回到它,因为它是整篇文章的关键。
  6. 设置您的组合(这是否可以与商品、订单或运费折扣叠加),您的有效日期和保存。

结果:购物车中有两件符合条件商品的顾客为一件支付全价,为另一件支付半价。Shopify默认将折扣应用于'获得'集合中较便宜的符合条件商品,所以顾客保持较贵的商品全价。这是'第二件'交易的标准和公平行为,但这也是一个您无法原生微调的约束,如果您特别想要较便宜的商品全价,而更昂贵的商品折扣,这很重要。

为什么这是'不折扣前N件商品'技巧

这是该主题命名所基于的机制。在Buy X Get Y中,'顾客购买'数量是您拒绝折扣的数量。当您说'买1件,送1件5折'时,您是在告诉Shopify:不要折扣第一件单位,然后折扣下一件。设置'买2件,送1件5折',您是说'不要折扣前两个数量,然后将第三个打五折'。购买数量跳过前N控制,即使管理后台从不使用这些词。

这个框架很有用,因为它直接映射到第三方折扣应用如何描述同样的想法。像Regios或Checkout Boost这样的应用程序公开了显式的'跳过前N件商品'或'符合条件的数量高于阈值'切换。原生Shopify不会在按商品折扣上给您那个确切的滑块,但Buy X Get Y通过购买数量给您相同的结果。如果您在论坛线程中看到短语'不折扣前N件商品= 1',那就是对买1送1 BXGY优惠的一行描述。

方法2:按商品折扣加最小数量(为什么它不是相同的优惠)

第二种原生方案看起来接近但计算不同,值得理解,以便您不会发送错误的促销。

一个按商品折扣折扣可以要求最小数量。Shopify的API将其模型化为最小数量要求,文档给出了'买3件,享受10%折扣'促销的规范例子,其中最小数量设置为3。关键细节:一旦购物车满足最小值,百分比适用于所有符合条件的单位,而不仅仅是超过阈值的单位。

所以如果您构建'按商品折扣,最小数量2,50%折扣',购买两件商品的顾客获得50%折扣两件。这很慷慨,有时这是您想要的,但这不是'买一件送第二件半价'。这是'买两件,两件都半价'。在40美元的商品上,真正的第二件优惠收费40美元+ 20美元= 60美元,而按商品折扣最小2版本收费20美元+ 20美元= 40美元。那20美元的差额是您不打算放弃的。

按商品折扣上没有原生切换说'仅对超过最小值的单位应用折扣'。该功能,字面上的'不折扣前N',是应用程序添加的。原生,如果您想只有第二件单位被折扣,Buy X Get Y是工具,按商品折扣不是。

原生失效之处:您将遇到的限制

原生Buy X Get Y完美处理单个、简单的对。麻烦从您的购物车或促销变得更野心勃勃时开始。以下是商家遇到的四堵墙,都是真实的,值得在您启动前了解。

1. 它在许多对中不能干净地重复

这是大问题。想要您'第二件5折'交易的顾客很少只停在两件商品。他们添加六件。现在的问题是折扣是否适用于第2、4和6件商品(三件半价单位)或仅一次(一件半价单位,其余全价)。

原生Buy X Get Y通过单一的每单最大使用次数设置来控制这一点。如果您将其保留为无上限,Shopify将尝试随着数量增长重新应用购买获得集合,但这种行为是粗糙的,在混合商品、变体和集合中变得不可预测。如果您限制它,交易恰好触发一次,第4和6件商品按全价付款,这会让预期每对都符合条件的顾客感到沮丧。没有原生'为任何符合条件的商品混合组合干净地重新计算每对,永远'模式。Shopify论坛上的商家反复询问完全这种重复行为('买6件送2件,买9件送3件'),发现原生无法可靠地表达它。

2. 您无法精细目标哪个商品是'第二件'

原生BXGY折扣'获得'集合中较便宜的符合条件商品,这通常是明智的默认值。但如果您的促销需要不同的逻辑,例如始终折扣最昂贵的商品,或始终来自特定子组的商品,原生不会给您该控制。您获得Shopify的内置目标或什么都没有。

3. Buy X Get Y上的100件商品上限

原生Buy X Get Y限制了您可以附加到单一折扣的商品数量。一旦您的符合条件集合超过大约100件商品,管理后台停止让您添加更多,所以跨400 SKU目录的全店范围内'任何商品,第二件半价'不能作为一个原生折扣构建。通常的解决方案,作用域到一个集合,仅当您的整个符合条件目录符合您愿意手动维护的集合时才有帮助。我们在下面的链接文章中深入介绍了这个上限。

4. 它可能与您的其他折扣冲突

Buy X Get Y是一个商品类折扣。一个按体积折扣、一个集合百分比折扣和大多数'销售'定价也是如此。根据Shopify的开发者文档,默认情况下每条购物车行仅应用一个商品折扣。如果顾客的商品符合您的'第二件5折'交易和单独的'本集合20%折扣'销售,这两者都是商品折扣,所以它们不会在同一行叠加。Shopify保持价值更高的并默认丢弃另一个。

将第二个商品折扣叠加到同一行是可能的,但仅在Shopify Plus上,仅通过基于标签的双向匹配机制Shopify称为同行叠加。在任何非Plus套餐上,将'我的BOGO加同一商品上的另一个商品折扣'视为不可行,并围绕它设计。跨类叠加(您的BOGO加订单折扣加免运费)在每个套餐上都有效,只要每个优惠都设置为组合。

图像占位符(图片2):原生BOGO失效之处
建议视觉:一个16:9插图显示一个购物车中有六件相同的衬衫。在它上方,两个标记的结果。'原生,每单限制一次使用'仅突出显示第2件衬衫,有50%徽章,其他五件全价,标记有小红旗。'购物者期望'突出显示第2、4和6件衬衫,每件5折,标记有绿色复选标记。下面的说明文字读'原生一次应用对,而不是每对'。平面矢量风格,品牌色紫色和金色,无摄影。

实际例子:六件衬衫,一个'第二件5折'优惠

让我们使重复问题具体化。一家商店以40美元的价格销售衬衫,并运行'买一件,第二件5折'。顾客添加六件衬衫,任何折扣前240美元小计。以下是同一促销如何以三种不同方式支付。

仔细阅读这张表,因为每一行都是不同的承诺。受限的原生BXGY交付不足:顾客期望三件半价衬衫,但得到一件,所以他们感到被欺骗,可能会放弃。按商品折扣版本大幅度交付过度:它半价所有六件衬衫,当您打算放弃60美元时手掉120美元。只有重复感知版本支付'买一件,第二件半价'在规模上的真正含义:每对获得交易,商店放弃正好60美元,顾客获得横幅承诺的完全内容。

220美元、180美元和120美元之间在单一六件商品购物车上的差距是整个原因这个优惠比看起来更难。原生强制您在交付不足和交付过度之间选择,两者都不是您宣传的。

Functions方式:重复和叠加正确的BOGO

可靠的修复是在Shopify自己的结账管道内使用Shopify Function计算优惠,所以数学在服务器端运行,并在购物车页面、结账页面和加速结账(如Shop Pay)中应用相同方式。基于Functions的折扣可以表达原生无法做的逻辑:对购物车中的每对重新应用购买获得集合、目标最便宜或特定商品、覆盖无限符合条件目录,并精确遵守您的组合规则。

这是模型Stackable构建的,它对Shopify的真实规则保持诚实,而不是假装平台限制不存在。

使用Stackable可靠地运行此

  • 重复逻辑,为每对重新计算。打开重复,'买1件,送1件5折'随着购物车增长重新应用,所以六件商品购物车自动获得三件半价商品,而不是一件。相同的设置缩放'买6件,送2件'促销到'买12件,送4件'。
  • 没有100件商品上限。按标签或集合定义符合条件的商品,没有上界,所以全店范围内'第二件半价'覆盖400 SKU目录作为单一活动,新商品自动选择加入。
  • 您可以信任的最便宜商品目标。折扣将最低价符合条件商品标记为半价,并随购物车变化实时更新,所以顾客始终保持较贵商品全价。
  • 与Shopify一对一匹配的组合开关。每个优惠有三个组合切换,商品、订单和运费折扣各一个,所以您设置的是结账所做的。同行商品对商品叠加仍然仅限Plus,应用明确告诉您这一点,而不是隐藏它。
  • 一处总计到处。因为数学在Shopify Function中运行,购物车预览和最终费用不能漂移,包括在Shop Pay、Apple Pay和Google Pay上。Stackable从不重写您的商品价格,所以卸载使您的目录完全保持原样。

usestackable.com/pricing免费安装Stackable并查看您的'第二件5折'在每对上正确支付。

如何逐步设置'第二件5折'

无论您选择原生还是基于Functions,此序列会让您远离麻烦。

1. 写下确切的承诺

精确决定'买一件,第二件5折'对您的商店意味着什么。它在每对上重复,还是每单触发一次?它适用于任何商品,还是仅集合?哪个商品被折扣,较便宜还是较贵?首先回答这个告诉您原生BXGY是否足够或您是否需要重复逻辑。

2. 选择正确的原生类型

使用Buy X Get Y用于真正的第二件折扣,购买数量作为您的'不折扣前N'控制。避免按商品折扣最少数量除非您真的想要每个符合条件的单位被折扣,因为它会半价整个集合,而不仅仅是第二件。

3. 故意决定重复行为

故意设置最大每单使用次数值,而不是偶然。受限意味着每单一件半价商品。无上限的原生重复在混合购物车中是粗糙的。如果您需要在大或混合购物车中清洁的每对重复,这是移动到基于Functions应用的信号。

4. 设置组合,然后尊重每行规则

在组合部分,选择这个优惠与哪些类叠加。记住另一个商品折扣不会在同一购物车行上叠加,除非您在Shopify Plus上。如果您同时运行一个集合销售和这个BOGO,决定哪一个您想赢,因为原生将仅保持每行较高值的。

5. 测试两件商品购物车和六件商品购物车

用恰好两件符合条件商品构建真实测试购物车,并确认一件是全价,一件是半价。然后构建一个六件商品购物车并逐行阅读结账摘要:它是半价一件商品还是三件?这是您在顾客之前捕获重复行为的地方。默认失败是敌人,因为默认仅应用一次的折扣仍然从不抛出错误。

6. 验证Shop Pay

通过Shop Pay运行六件商品测试购物车。原生和基于Functions的折扣在那里应用相同;任何依赖主题JavaScript的东西是购物车总额和在加速结账上收费总额漂移分开的地方。

图像占位符(图片3):重复逻辑切换
建议视觉:一个16:9产品截图模拟显示带有字段'顾客购买数量:1,'、'顾客获得数量:1,'、'折扣:50%折扣'的活动编辑器的Buy X Get Y优惠,以及标记为'为每个符合条件的对重复此优惠'的突出切换打开,下面有简明英文总结阅读'6件商品购物车获得3件商品50%折扣'。干净Shopify Polaris管理样式,品牌重点为紫色。参考文档/screenshot-manifest.md槽位bogo-step-2以稍后捕获真实屏幕。

底线

  • Buy X Get Y是'第二件5折'的正确原生工具:设置顾客购买1件,顾客获得1件5折,购买数量是您的'不折扣前N'控制。
  • 按商品折扣最少数量是不同的优惠。它折扣每个符合条件的单位,所以'最少2件,50%'半价两件商品,而不仅仅是第二件。
  • 原生重复是弱点。单一的每单最大使用次数设置无法在大或混合购物车中为每对干净地重新应用交易,所以购物者获得交付不足或您交付过度。
  • 原生Buy X Get Y在大约100件商品处封顶合格产品,并默认折扣较便宜的商品,没有微粒度目标控制。
  • Buy X Get Y是商品类,所以它不会与同一购物车行上的另一个商品折扣叠加,除非您在Shopify Plus上。它在任何套餐上与订单和运费折扣组合。
  • 始终测试两件和六件商品购物车并逐行阅读结账摘要,然后验证Shop Pay,因为仅应用一次的折扣仍然从不错误。
  • 基于Shopify Functions的应用程序(如Stackable)添加了可靠的重复逻辑、无限符合条件资格和最便宜商品目标,将原生单对BOGO转变为真正的全店范围内优惠。

相关文章

常见问题

查找常见问题的答案

  • 在您的管理后台的"折扣"部分创建Buy X Get Y折扣。将"顾客购买"设置为最少数量1件,将"顾客获得"设置为1件商品,享受50%折扣,并为两者选择相同的商品或集合。Shopify随后将第一件商品收取全价,第二件合格商品收取半价。在保存前设置您的组合和每单最大使用次数。

  • 这个想法是Buy X Get Y优惠从不折扣'购买'数量。当您设置'买1件,送1件5折'时,第一件是您拒绝折扣的商品,第二件是您折扣一半的商品。购买数量实际上是一个'跳过前N件'控制。Shopify通过Buy X Get Y实现这一点;一些应用程序将其显示为显式的'跳过前N件商品'切换按钮。

  • 使用Buy X Get Y。这是唯一只折扣第二件商品的原生类型。按商品折扣加最小数量会对所有符合条件的商品应用百分比,所以'最小2件,5折'会对两件商品都打五折,这是对这对商品的25%有效折扣,而不是'一件全价,一件半价'。仅当您实际想要每件商品都打折时,才使用按商品折扣。

  • 不可靠。原生通过单一的每单最大使用次数设置来控制重复。如果受上限限制,它只触发一次,所以六件商品的购物车只获得一件半价商品。如果不受限制,它会尝试重新应用,但在混合商品和变体之间的行为不可预测。要在大购物车或混合购物车中实现干净的每对重复,基于Shopify Functions的应用是可靠的路线。

  • 原生Buy X Get Y默认折扣'获得'集合中较便宜的符合条件的商品,所以顾客保持较贵的商品全价。您无法原生微调此设置。如果您需要始终折扣特定商品或最昂贵的商品,您需要一个基于Functions的折扣,让您控制目标。

  • 原生Buy X Get Y将符合条件的商品限制在大约每个折扣100件,所以跨大型目录的全店范围内优惠不能是一个原生折扣。仅当您符合条件的商品符合您将维护的集合时,作用域才有帮助。基于Functions的应用通过标签或集合定义符合条件的商品,没有商品上限,所以400 SKU的全店范围内BOGO是单个活动。

  • Buy X Get Y是商品类折扣,默认情况下Shopify每个购物车行只应用一个商品折扣。所以它不会与另一个商品折扣(如集合销售)在同一商品上叠加,除非您使用Shopify Plus并使用基于标签的同行叠加。它可以与订单折扣和任何套餐上的免运费组合,只要每个优惠都设置为组合。

  • 是的,如果折扣是原生的或建立在Shopify Functions上,因为数学运算在服务器端运行,并在所有结账路径中应用相同。依赖主题JavaScript的折扣经常在加速结账中失败,因为这些流程跳过购物车页面。始终通过Shop Pay运行测试购物车,以确认第二件仍然是半价。

  • 可以。将'顾客购买'数量设置为2,'顾客获得'设置为1件商品,享受50%折扣。这告诉Shopify不要折扣前两件单位,而要将第三件打五折。同样的重复限制适用:原生触发一次设置,除非您配置重复,在大购物车中干净的每组重复是基于Functions的应用帮助的地方。

  • 几乎肯定是因为您的Buy X Get Y折扣在每单限制为一次使用,或其原生重复没有在混合购物车中重新应用。原生不保证干净的每对重复。要么提高使用次数限制并仔细测试,要么使用具有重复切换的基于Functions的折扣,该切换为每个符合条件的对重新计算。

  • 不会。原生折扣和基于Functions的应用作为结账调整应用减少,而不是通过编辑您的目录。您的商品在商品页面上仍然显示常规价格,第二件商品折扣在购物车和结账时出现。删除折扣或卸载构建良好的应用会让您的价格完全保持原样。

Stackable Team

The team building Stackable, the reliability-first bulk and volume discount app for Shopify. We write about discount stacking, Shopify Functions, and how to run promotions that hold up at checkout.

我们使用必要 Cookie 来运行本网站,并仅在获得你许可的情况下,使用分析 Cookie 来了解访问情况。详见我们的 Cookie 政策.