为一次性付款添加折扣
可以在 Checkout 中使用折扣,或降低对某个客户收取的一次性付款的收款金额。优惠券和促销码在定义及使用方式方面有很大的灵活性。它们可以:
- 向整个订单小计应用折扣
- 向特定产品应用折扣
- 将总收款额降低一个百分比或固定金额
- 在优惠券的基础上创建供客户使用的促销码,直接分享给客户。
要通过优惠券给 Checkout 和 Billing 订阅打折,请查看订阅折扣。
优惠券
优惠券指定的是一个固定值的折扣。您可以创建供客户使用的促销码,映射到相关的单个优惠券。
这意味着代码 FALLPROMO
和 SPRINGPROMO
两者都可指向一个 25% 折扣券。
创建优惠券
如果想创建一个包含适用折扣的会话,则传递 折扣数组中 coupon
参数内的 coupon ID。Checkout 目前最多支持一个优惠券或促销码。
配置优惠券
优惠券具有以下参数,可将它用于一次性付款:
id
,优惠券的唯一标识符currency
percent_off
或amount_off
max_redemptions
redeem_by
,可以使用优惠券的最晚日期applies_to
,限制优惠券可应用到哪些产品
备注
优惠券对象可向一次性付款和订阅添加折扣。某些优惠券参数,如 duration
,仅适用于订阅。
限制兑换方式
max_redemptions
和 redeem_by
值会应用到每个应用中的优惠券。例如,您可以将某个优惠券限制在前 50 次使用,也可以通过一个特定日期来限制它的有效期。
限制符合条件的产品
可以限制能够使用优惠券折扣的产品,方法是将产品 ID 添加到 Coupon 对象中的 applies_to
散列。映射到这个优惠券的任何促销码仅会引用到符合条件的产品列表。
删除优惠券
优惠券可通过管理平台或 API 删除。删除优惠券可避免它被应用到未来的交易或客户。
促销码
促销码是在优惠券的基础上创建的供客户使用的代码。还可以指定客户何时可应用该促销码的额外限制。您可以将这些代码分享给客户,他们输入 Checkout 中即可应用折扣。
创建促销码
要创建一个促销码,指定一个当前的 coupon
并加上限制(例如,限制到特定 customer
)。如果想把某个特定的促销码给客户(例如 FALL25OFF
),则设置 code
。如果这个字段留空,则会为您随机生成一个 code
。
这个 code
不区分大小写,任何客户的所有有效促销代码都必须唯一。例如:
- 可以用同一
code
创建多个有客户限制的促销码,但不能将这个code
复用于任何客户可兑换的促销码。 - 如果您创建的一个促销码任何客户都可兑换,则不能再用同一个
code
来创建另一个有效的促销码。 - 可以先用
code: NEWUSER
创建一个促销码,传递active: false
让它失效,然后再用code: NEWUSER
创建一个新的促销码。
促销码可在管理平台内的优惠券部分创建,也可通过 API 创建:
用 allow_promotion_codes 参数启用 Checkout Session 中用户可兑换的促销码。这将启用 Checkout 中的一个字段,让用户来输入促销码。
配置促销码
通过 Promotion Code 对象参数,您可以自定义合格客户、兑换及其他限制。
按客户限制
要将促销限制到特定客户,在创建促销码时指定 customer
。如果未指定客户,则促销码可被任何客户兑换。
按首次下单限制
通过 restrictions
属性的 first_time_transaction
参数,还可以将促销码限制为首次下单的客户。如果未定义 customer
或已定义的某个 customer
没有过付款记录或有效账单,则视为是首次交易。
设置最低金额
使用促销码时,可以为符合折扣条件的订单设置一个最低交易金额,方法是配置 minimum_amount
和 minimum_amount_currency
属性。由于促销码的限制是在兑换时来检查的,因此最低交易金额仅适用于订阅的初次付款。
自定义有效期
可以用 expires_at
设置促销码的有效期。如果相关的优惠券已设置了 redeem_by
,那么促销码的有效期不能大于优惠券的这个值。如果未指定 promotion_code[expires_at]
,则优惠券的 redeem_by
会自动生成 expires_at
。
例如,您可能计划一年中都支持某个优惠券,但又想把它针对具体客户的有效时间设置为收到之后的一个星期之内。那么可以将 coupon[redeem_by]
设置为一年以后的时间,然后将每个 promotion_code[expires_at]
设置为创建之后的一个星期。
限制兑换
可以用 max_redemptions
限制兑换次数,其原理与优惠券参数类似。如果相关的优惠券已设置了 max_redemptions
,那么促销码的 max_redemptions
不能大于优惠券的这个值。
例如,您可能想让前 50 位客户兑换季节促销优惠券,但冬季促销只能使用这其中的 20 次。该场景中,您可以设置 coupon[max_redemptions]: 50
和 promotion_code[max_redemptions]: 20
。
无效促销
利用 active
参数,可设置促销码目前是否可兑换。但是,如果某个促销码的相关优惠券无效,它的所有促销码都会永久失效。同样,如果某个促销码达到了它的 max_redemptions
或 expires_at
,则也会永久失效。您不能重新激活这些促销码。
删除促销码
您可以在管理平台或 API 中删除促销码。删除促销码可避免它被应用到未来的交易或客户。