Stripe 优惠券和促销代码哪个是顾客填写的

顾客填写的是促销代码(Promotion Code),不是优惠券(Coupon)。在 Stripe 的设计里,优惠券是后台定义的折扣逻辑,由你决定谁在什么时候获得折扣;促销代码则是面向顾客的代码,它包裹在一个优惠券外面,增加了一层分发和控制。顾客在结账时输入的那串字符,是促销代码。

折扣规则、促销代码、适用资格
本文涉及的概念与核对环节。

两者的分工

按 Stripe 文档的定义:

  • Coupon(优惠券):定义折扣逻辑的 API 对象,属于后端驱动的折扣。你可以用它给订阅、订阅项或发票打折,折扣可以是百分比,也可以是固定金额;生效方式可以是只应用一次、持续指定月数,或无限期持续。
  • Promotion Code(促销代码):顾客自行决定何时应用的折扣。它是面向顾客的代码,包裹在一个优惠券之上。多个促销代码可以引用同一个优惠券。

所以顾客看到并输入的是促销代码,你配置在后端的是优惠券。顾客兑换优惠券时,Stripe 会创建一个 Discount 对象来记录这次兑换。

核对动作:确认你手里的是哪一种

如果你不确定某个折扣标识属于哪一类,可以按下面几步核对:

  1. 看它出现在哪里。如果它出现在面向顾客的结账页面、邮件或海报上,等着顾客输入,那它应当是促销代码。如果它只存在于你的后台配置或 API 调用里,那它是优惠券。
  2. 看它能否独立存在。促销代码必须引用一个父优惠券;优惠券可以单独存在,不依附于任何促销代码。
  3. 看限制是否继承。促销代码继承父优惠券的产品限制。如果优惠券只适用于某些产品,由它创建的促销代码具有同样的限制。
  4. 看数量上限是否共用。一个订阅、订阅项或发票最多可应用 20 个折扣,这个上限由优惠券和促销代码共用。

一个可复算的例子(含明确假设)

以下数字均为假设,仅用于演示机制,不代表任何真实费率或默认配置。

假设你配置了一个优惠券:折扣为 20%,只应用一次。然后基于它创建两个促销代码,分别发给两批顾客。

  • 顾客 A 输入第一个促销代码并成功兑换,Stripe 创建一个 Discount 对象,A 的对应订阅或发票按 20% 减免一次。
  • 顾客 B 输入第二个促销代码,同样引用这个优惠券,得到相同的 20% 一次减免。
  • 两个促销代码共享同一个父优惠券的产品限制;如果该优惠券限定某些产品,两个代码都只在这些产品上生效。

这个例子里,顾客填写的是两个不同的促销代码,背后是同一个优惠券。折扣力度和生效方式由优惠券决定,顾客能自己做的只是决定何时输入代码。把 20% 换成其他百分比或固定金额,把“只应用一次”换成指定月数或无限期,推理方式不变。

需要按配置确认、不要推断的部分

  • 资格与期限:促销代码何时生效、何时过期、是否限制兑换次数,以及优惠券持续多久,都要读你实际创建的配置,文档没有给出统一的默认值。
  • 能否叠加:文档只说明折扣数量上限为 20 且由两者共用,并没有说明任意折扣可以自由叠加。是否叠加、如何叠加,取决于你的具体配置,不要从“最多 20 个”推断出“可以随意叠加”。
  • 产品限制:促销代码继承父优惠券的限制,但具体限制内容取决于该优惠券的配置。

一句话记住:顾客填的是促销代码,你配的是优惠券;代码包着券,限制随券走,期限和资格看配置。

原始资料

docs.stripe.com

上一篇 Stripe 订阅立即取消与周期结束取消有什么区别