Skip to main content
产品是 Dodo Payments 的基础。无论您销售的是一次性下载内容、定期订阅还是按用量计费的访问权限,都需要先创建产品。每个产品都会定义其定价方式、在结账时的呈现方式以及购买后的履约方式。

One-Time

一次性收费,提供终身访问权限或单项交付内容。

Subscriptions

按计划计费,支持试用、按比例计费和附加项。

Usage-Based

统计用量,并根据实际用量计费。

创建产品

您可以从控制面板或通过 API 创建产品。请预先选择定价模式——One-Time、Subscription 或 Usage-Based——然后配置详细信息。定价模式不可变;如果需要使用其他模式,请创建新产品。
1

Name and Description

提供清晰的标题和简洁、突出价值的描述。描述支持 Markdown。
第一句话应面向客户并突出结果;它会在结账页面中显著显示。
显示产品创建表单的产品控制面板
2

Pricing Model and Price

选择定价模式:
  • One-Time:一次性支付固定价格。
  • Subscription:按周期重复收费,可设置间隔和可选试用期。
  • Usage-Based:根据计量事件得出的价格。
然后设置定价:
  • Price:基础金额和货币。您可以使用 Dodo Payments 支持的任意货币设置基础价格,但 Pay What You Want 产品除外;这类产品的基础货币必须为 USD、GBP 或 EUR。USD、GBP、EUR 和 INR 会固定显示在货币选择器顶部,方便快速访问。
  • Discount (%):可选的百分比折扣,会显示在结账页面和发票中。
  • 对于订阅,请设置 Repeat every(例如 1 个月或 1 年)、Trial days,以及用于 paid trial 的可选 Trial amount。非零订阅价格至少必须为 $1(或您所选货币的等值金额)。同时也支持价格正好为 $0 的情况,您可以允许客户在没有银行卡的情况下开始 $0 订阅;请参阅 Card-Optional at Zero Price。不支持负金额。
启用 Adaptive Currency 后,基础货币以外地区的客户会以当地货币付款,因此您可以使用最适合目标市场的货币编写价格。停用后,客户将使用您的基础货币付款。
希望为每种货币或每个国家/地区设置固定价格,而不是使用实时 FX 转换?在产品上设置 pricing_mode,并附加 Localized Pricing 规则,例如 EUR 9.99 或印度 ₹999。
编辑价格会改变新客户需要支付的金额。现有订阅不会重新定价;每个订阅都会保留其创建时使用的价格。若要将现有订阅者转移到其他价格,请通过 Change Plan API 明确更改其计划;按比例计费设置适用于计划变更,而不适用于价格编辑。
3

Product Media

上传图片,在结账页面和发票中展示产品。支持的格式:PNG、JPG、WebP,大小不超过 3 MB。您可以随时重新排序或替换图片。
4

Automated Entitlements

在 Entitlements 部分,附加付款后自动激活的履约方式:
  • License Keys:签发并验证唯一密钥。
  • File Downloads:授予安全的文件访问权限。
  • Custom:通过 webhooks 触发您自己的 entitlement 逻辑。
随着您的产品方案不断发展,您可以添加或移除权益。现有订阅者也会相应获得或失去访问权限。

变体和定价选项

不要在一个产品下创建变体,而是为每个定价选项创建单独的产品(例如 Monthly 和 Yearly)。然后将它们归入 Product Collection,在一个结账页面中展示所有选项,并在 Customer Portal 中启用计划切换。
显示集合中多个产品选项的结账页面

为什么采用这种方式?

  • 清晰的定价模式:每个产品都有单一且定义明确的定价模式(一次性、订阅或按用量计费)。
  • 可预测的 API:无需处理嵌套的变体逻辑,集成更加简单。
  • 更轻松的报告:无需汇总变体,即可按产品跟踪收入和指标。
  • 灵活的结账流程:并排展示多个产品,让客户进行比较和选择。

Product Collection 的工作方式

  1. 创建产品:为每个计划设置单独的产品(例如 Starter Monthly、Starter Annual、Pro Monthly、Pro Annual)。
  2. 归入集合:将相关产品添加到 Product Collection。
  3. 统一结账:客户可以在一个结账页面中看到所有选项,并选择首选计划。
  4. 计划切换:客户可以通过 Customer Portal 在同一集合中的产品之间升级或降级。

Product Collections

将相关产品归组,以实现统一的结账体验和升级/降级路径。

管理产品

您可以通过控制面板管理产品,也可以通过 API 以编程方式管理。API 提供对产品创建、更新、检索、图片上传和归档的完整控制。

控制面板管理

  • Update:随时编辑名称、描述、图片、价格、字段和权益(定价模式不可变)。
  • Archive:将产品从新购买中隐藏,同时不影响现有客户。之后可以取消归档。
  • Drafts:进行中的产品会保存为草稿,方便您稍后继续编辑。测试模式和实时模式分别保存草稿,因此一个模式中的未完成产品不会影响另一个模式。使用 Clear Draft 可丢弃草稿并重新开始。
产品和集合表单页面包含页眉操作按钮,因此您无需滚动到长表单底部即可保存。

API 管理

以下说明介绍如何创建、更新、管理和检索产品,包括上传图片。
向 /products endpoint 发送 POST request,并提供名称、描述、价格、货币以及产品是否为 recurring product 等详细信息。对于 recurring products,请将 price object 设置为 recurring price(type: recurring_price),并指定 payment_frequency_interval 和 subscription_period_interval(Day、Week、Month 或 Year)及其对应的次数。

Create Product API

请在 Create Product API 文档中查看详细的请求和响应结构。
向 /products/{product_id} endpoint 发送 PATCH request。您可以更新名称、价格和描述等属性,同时保留其他详细信息不变。请确保 endpoint 中的 product_id 与现有产品匹配。

Update Product API

请在 Update Product API 文档中查看详细的请求和响应结构。
使用 GET request 向 /products endpoint 获取账户中存储的产品列表。这样可以获取包括有效产品和已归档产品在内的产品详细信息。

Retrieve Products API

请在 Retrieve Products API 文档中查看详细的请求和响应结构。
通过使用 API 提供的预签名 URL 将图片上传到 AWS S3,即可将图片关联到产品。首先从 /products/{product_id}/images endpoint 请求图片上传 URL,然后使用提供的 URL 在 60 秒内上传图片。
预签名 URL 会在 60 秒后过期,因此必须在此时间范围内上传图片。
从 API 收到预签名 URL 后,使用 PUT method 上传图片。这可以确保以安全且临时的方式访问 AWS S3 以完成图片上传。支持用于上传到 S3 的库:
  • Node.js:axios、node-fetch
  • Python:requests、boto3
  • Go:net/http
  • PHP:GuzzleHttp
  • Ruby:rest-client
如果上传成功,AWS S3 将返回 200 OK status,表示图片已成功存储。

Upload Product Image API

请在 Upload Product Image API 文档中查看详细的请求和响应结构。
使用向 /products/{id} endpoint 发送的 DELETE request,将产品从新购买中隐藏,同时不永久删除该产品。

Archive Product API

请在 Archive Product API 文档中查看详细的请求和响应结构。
向 /products/{product_id}/unarchive endpoint 发送 POST request,即可恢复已归档的产品。这会重新激活产品,使其再次可用。

Unarchive Product API

请在 Unarchive Product API 文档中查看详细的请求和响应结构。
从产品创建支付或订阅流程,并通过权益和 webhooks 自动完成履约。

Checkout Sessions

为一次性购买或订阅购买创建结账会话。

Payment Webhooks

响应支付生命周期事件。

Subscription Webhooks

处理订阅创建、续订和取消事件。

最佳实践

  • 从清晰度入手:为每个定价选项分别创建产品(Monthly 和 Yearly)。
  • 合理使用试用期:将试用期与引导流程结合,促进用户激活。
  • 自动化履约:使用权益和 webhooks 即时交付。
  • 使用 metadata 添加标签:存储您的系统 ID,以便对账。

相关内容

Product Analytics

跟踪每个产品的收入、客户、留存、订阅者和 MRR。

Localized Pricing

在产品上设置按货币或国家/地区分别固定的价格,而不是依赖实时汇率。
最后修改于 2026年9月26日