跳转到主要内容
Discount codes overview cover
折扣代码让您可以进行有针对性的促销和激励。创建百分比或固定金额的折扣,设置限制和到期时间,限制适用产品,并在结账时无缝应用。

Checkout Sessions

在托管结账时,使用 discount_code 及 UI 控件应用代码。

Validate Discount

通过 ID 检查折扣是否有效。

Get Discount by Code

使用代码名称(例如 “SAVE20”)查找并验证折扣。

Create Discount (API)

以编程方式创建新的折扣码。

List & Update Discounts

浏览和管理现有折扣;根据需要更新或删除。

Plan Change Discounts

在升级或降级订阅计划时应用折扣码。

什么是折扣码?

折扣码是结账时减少订单总额的促销代币。它们非常适合:
  • 季节性活动:黑色星期五、产品发布或周年庆
  • 获取优惠:首次购买奖励或推荐奖励
  • 客户留存:为现有客户提供的赢回或忠诚奖励
  • B2B 交易:通过私有代码进行的合同或协商定价

主要优点

  • 灵活折扣:百分比或固定金额折扣
  • 目标控制:按产品和订阅周期限制
  • 活动管理:过期日期和使用限制
  • 无缝结账:在结账会话中通过 UI 字段和 API 支持

创建折扣码

在您的 Dodo Payments 仪表板中创建折扣码,然后在托管结账或通过 API 应用它们。

仪表板设置

  • 折扣名称(必需):内部和仪表板显示名称
  • 代码(必需):客户在结账时输入的字符串
  • 类型和金额(必需):设定百分比或固定金额值,或使用提供的按钮生成随机代码
  • 过期日期(可选):代码失效的日期
  • 使用限制(可选):所有客户的最大总赎回次数
  • 产品限制(可选):限制适用于选择的产品
  • 订阅周期限制(可选):折扣适用的计费周期数
使用循环限制用于订阅的入门定价(例如,“3个月内50%折扣”)。

结账体验

  1. 顾客在结账字段中输入代码。
  2. 合格的折扣被应用,并立即更新总额。
在结账会话中,传递 discount_code 预先应用代码,并设置 feature_flags.allow_discount_code 以显示输入字段。

API 管理

使用类型和金额以编程方式创建折扣码。

API Reference

查看创建折扣 API。
列出所有折扣或检索管理和审核的详细信息。

API Reference

浏览列表和检索 API。
使用可读代码(例如,“SAVE20”)而不是内部 ID 查找折扣。

API Reference

通过代码名称检索折扣。
修改折扣配置,例如金额、过期或限制。

API Reference

了解如何更新折扣详细信息。
在应用之前检查折扣是否有效和适用。

API Reference

验证折扣使用情况。
停用或删除不再需要的折扣。

API Reference

删除折扣。

常见用例

  • 入门优惠:新产品的限时发布促销
  • 批量或 B2B:针对特定产品集的合同折扣
  • 留存策略:在防止流失的工作流程中赢回代码
  • 季节性活动:基于节日或活动的促销

集成示例

在结账会话中应用折扣

预先应用折扣并显示代码输入 UI。
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_code: 'BLACKFRIDAY2024',
  customer: { email: 'user@example.com', name: 'Jane Doe' },
  return_url: 'https://yoursite.com/return'
});

在计划更改期间应用折扣

在客户升级或降级订阅时提供促销价格。
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately',
  discount_code: 'UPGRADE20'
});
如果订阅已经有了折扣,使用 preserve_on_plan_change=true,并且您没有传递新的代码,当适用于新产品时,现有折扣会自动保留。

启用折扣输入而不预先应用

允许客户在结账时输入代码,而不需要提前传递代码。
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return'
});

最佳实践

  • 清晰命名:使用与活动名称匹配的可识别代码
  • 时间限制:添加过期日期以推动紧迫感并防止滥用
  • 明智范围:限制为特定产品以避免利润损失
  • 提前验证:在确认结账前检查代码适用性
  • 监控影响:通过活动跟踪使用和转换
折扣代码是获取和留存的强大杠杆。以简单且名称恰当的优惠开始,进行充分验证,并根据性能进行迭代。
Last modified on March 24, 2026