Skip to main content
产品是 Dodo Payments 的基础。无论您是销售一次性下载、定期订阅还是基于使用的访问,都可以通过创建产品开始。每个产品定义其定价、结账显示方式和购买后的履行方式。

One‑Time

一次性收费以获得终生访问或单个交付。

Subscriptions

通过试用、比例调整和附加组件进行定期账单。

Usage‑Based

根据实际使用量进行计量并收费。

创建产品

您可以通过仪表板或 API 创建产品。提前选择定价模型:一次性、订阅或基于使用,然后配置详细信息。定价模型不能在以后更改;如果需要不同的模型,请创建新产品。
1

Name & description

提供一个明确的标题和简洁的价值导向描述。描述中支持 Markdown。
将第一句话面向客户并以结果为导向;它在结账时显著显示。
产品
2

Pricing model & price

选择定价模型:
  • 一次性:一次性付款的固定价格。
  • 订阅:具有间隔和可选试用的定期价格。
  • 基于使用:价格来自计量事件。
然后设置定价:
  • 价格:基础金额和货币。您可以使用 Dodo Payments can charge任何货币设置基础价格,不仅限于 USD。使用可搜索的货币选择器查找货币;USD、GBP、EUR 和 INR 固定显示在列表顶部。
  • 折扣 (%):可选的内联折扣,会显示在结账页面和发票中。
  • 对于订阅,请设置 Repeat every(例如 1 个月或 1 年)、Trial days,以及可选的 paid trial Trial amount。订阅价格必须至少为 $1(或您所选货币的等值金额);不支持低于此最低金额的价格,订阅也将无法正常使用。
基础货币以外的客户仍会通过 Adaptive Currency 计费,因此您可以使用最适合您市场的货币创建价格,而无需更改买家被收取费用的方式。
想要为每种货币或国家设置固定价格,而不是使用实时 FX conversion?请在产品上设置一个 pricing_mode,并附加 Localized Pricing 规则——例如 EUR 中的 €9.99,或印度的 ₹999。
更改价格只会影响新购买。现有订阅将遵循计划变更规则。
3

Product media

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

Automated entitlements (Under Advanced Settings)

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

变体和定价选项

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

为什么采用这种方式?

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

Product Collections 的工作方式

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

Product Collections

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

管理产品

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

控制面板管理

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

API 管理

以下说明介绍如何创建、更新、管理和检索产品,包括上传图片。
产品可以是一次性商品,也可以是基于订阅的服务。要创建新产品,请向 /products endpoint 发送 POST 请求,并提供名称、描述、价格、货币以及是否为 recurring product 等详细信息。对于 recurring products,请将 price object 设置为 recurring price(type: recurring_price),并指定 payment_frequency_intervalsubscription_period_intervalDayWeekMonthYear)及其对应的次数。

Create Product API

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

Update Product API

在 Update Product API 文档中查看详细的请求和响应结构。
您可以向 /products endpoint 发送 GET 请求,获取账户中存储的产品列表。这可以检索产品详细信息,包括活跃产品和已归档产品。

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.jsaxiosnode-fetch
  • Pythonrequestsboto3
  • Gonet/http
  • PHPGuzzleHttp
  • Rubyrest-client
如果上传成功,AWS S3 将返回 200 OK status,表示图片已成功存储。

Upload Product Image API

在 Upload Product Image API 文档中查看详细的请求和响应结构。
如果您不再希望展示或使用某个产品,可以向 /products/{id} endpoint 发送 DELETE 请求将其归档。此操作会隐藏产品,但不会永久删除产品。

Archive Product API

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

Unarchive Product API

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

Checkout Sessions

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

Payment Webhooks

响应付款生命周期事件。

Subscription Webhooks

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

最佳实践

  • 从清晰开始:为每个定价选项分别创建产品(Monthly 与 Yearly)
  • 合理使用试用:将试用与引导流程结合,以推动用户激活
  • 自动化履约:使用权益和 webhooks 即时交付
  • 使用 metadata 添加标签:存储系统 ID 以便对账
您已经可以创建产品并开始销售——无论是一次性、经常性,还是按使用量计费。

相关内容

Product Analytics

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

Localized Pricing

为产品设置按货币或按国家固定的价格,而不是依赖实时汇率。
最后修改于 2026年7月31日