Products are the foundation of Dodo Payments. Whether you sell a one‑time download, a recurring subscription, or usage‑based access, you start by creating a product. Each product defines how it’s priced, presented at checkout, and fulfilled after purchase.
One‑Time
Charge once for lifetime access or a single deliverable.
Subscriptions
Bill on a schedule with trials, proration, and add‑ons.
Usage‑Based
実際の使用量で消費と請求を計測します。
Create a product
You can create products from the dashboard or via API. Choose the pricing model up‑front, One‑Time, Subscription, or Usage‑Based and then configure details. The pricing model can’t be changed later; create a new product if you need a different model.1
Name & description
Provide a clear title and a concise value‑oriented description. Markdown is supported in descriptions.

2
Pricing model & price
Select the pricing model:
- One‑Time: Fixed price paid once.
- Subscription: Recurring price with interval and optional trial.
- Usage‑Based: Price derived from metered events.
- Price: 基本金額と通貨。基本価格は USD に限らず、Dodo Payments が請求できる任意の通貨で設定できます。検索可能な通貨セレクターを使用して通貨を検索してください。USD、GBP、EUR、INRはリストの上部に固定されています。
- Discount (%): checkout と請求書に表示される任意のインライン割引。
- サブスクリプションの場合は、Repeat every(例: 1 か月ごと、1 年ごと)、Trial days、および任意の paid trial 用の Trial amount を設定します。サブスクリプション価格は少なくとも $1(または選択した通貨での相当額)である必要があります。この最低額を下回る金額はサポートされず、サブスクリプションは機能しません。
基本通貨以外の通貨を使用する顧客にも、Adaptive Currency を通じて請求されます。そのため、購入者への請求方法を変更せずに、市場に最適な通貨で価格を作成できます。
3
Product media
checkout と請求書で商品を紹介する画像をアップロードします。PNG/JPG/WebP に対応しており、最大サイズは 3 MB です。いつでも並べ替えや置き換えができます。
4
Automated entitlements (Under Advanced Settings)
支払い後に自動的に有効になる fulfillment を追加します:
- License Keys: 一意のキーを発行して検証する
- File Downloads: 安全なファイルアクセスを付与する
- Custom: webhooks を介して独自の entitlement ロジックをトリガーする
バリアントと価格オプション
1 つの商品内にバリアントを作成する代わりに、価格オプションごとに個別の商品を作成します(例: Monthly と Yearly)。次に、それらを Product Collection にまとめると、すべてのオプションを 1 つの checkout に表示し、Customer Portal でプランの切り替えを有効にできます。
このアプローチを採用する理由
- 明確な価格モデル: 各商品に、明確に定義された単一の価格モデル(one-time、subscription、usage-based)が設定される
- 予測可能な API: ネストされたバリアントロジックが不要になり、統合がシンプルになる
- 容易なレポート作成: バリアントの集計を行わず、商品ごとに収益と指標を追跡できる
- 柔軟な checkout: 複数の商品を横並びで表示し、顧客が比較して選択できる
Product Collections の仕組み
- 商品を作成: 各プラン用に個別の商品を設定します(例: Starter Monthly、Starter Annual、Pro Monthly、Pro Annual)
- コレクションにまとめる: 関連する商品を Product Collection に追加します
- 統合された checkout: 顧客は 1 つの checkout ですべてのオプションを確認し、希望するプランを選択できます
- プランの切り替え: 顧客は Customer Portal を介して、同じコレクション内の商品間でアップグレードまたはダウングレードできます
Product Collections
関連商品をまとめて、統合された checkout 体験とスムーズなアップグレード/ダウングレードのフローを実現します。
商品の管理
商品はダッシュボードから、または API を介してプログラムで管理できます。API では、商品の作成、更新、取得、画像のアップロード、アーカイブを完全に制御できます。ダッシュボードでの管理
- Update: 名前、説明、画像、価格、フィールド、benefits はいつでも編集できます(価格モデルは変更できません)。
- Archive: 既存の顧客に影響を与えずに、新規購入で商品を非表示にします。後からアーカイブを解除できます。
- Drafts: 作成途中の商品は draft として保存されるため、後で作業を再開できます。Drafts は test mode と live mode で別々に保持されるため、一方の mode で未完成の商品がもう一方に影響することはありません。破棄して最初からやり直すには Clear Draft を使用します。
API による管理
以下の手順では、画像のアップロードを含め、商品の作成、更新、管理、取得を行う方法を説明します。Creating a Product
Creating a Product
商品は one-time アイテムまたはサブスクリプションベースのサービスにできます。新しい商品を作成するには、名前、説明、価格、通貨、recurring product かどうかなどの詳細を指定して、
POST リクエストを /products エンドポイントに送信します。recurring product の場合は、price オブジェクトを recurring price(type: recurring_price)に設定し、payment_frequency_interval と subscription_period_interval(Day、Week、Month、または Year)を、それぞれ対応する回数とともに指定します。Create Product API
Create Product API のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
Updating a Product
Updating a Product
既存の商品を変更するには、
PATCH リクエストを /products/{product_id} エンドポイントに送信します。他の詳細を変更せずに、名前、価格、説明などのプロパティを更新できます。エンドポイントの product_id が既存の商品と一致していることを確認してください。Update Product API
Update Product API のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
Retrieving Products
Retrieving Products
GET リクエストを /products エンドポイントに送信すると、アカウントに保存されている商品のリストを取得できます。これにより、アクティブな商品やアーカイブ済みの商品を含む商品詳細を取得できます。Retrieve Products API
Retrieve Products API のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
Uploading Product Images
Uploading Product Images
API から提供された pre-signed URL を使用して AWS S3 に画像をアップロードすると、商品に画像を関連付けることができます。まず
/products/{product_id}/images エンドポイントから画像アップロード URL をリクエストし、次に提供された URL を使用して 60 秒以内に画像をアップロードします。API から pre-signed URL を受け取ったら、PUT メソッドを使用して画像をアップロードします。これにより、画像のアップロード時に AWS S3 への安全で一時的なアクセスが可能になります。S3 へのアップロードに対応しているライブラリ:- Node.js:
axios、node-fetch - Python:
requests、boto3 - Go:
net/http - PHP:
GuzzleHttp - Ruby:
rest-client
200 OK status を返し、画像が正常に保存されたことを示します。Upload Product Image API
Upload Product Image API のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
Archiving a Product
Archiving a Product
商品を表示または使用する必要がなくなった場合は、
DELETE リクエストを /products/{id} エンドポイントに送信してアーカイブできます。この操作で商品は非表示になりますが、完全に削除されることはありません。Archive Product API
Archive Product API のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
Unarchiving a Product
Unarchiving a Product
アーカイブ済みの商品を復元する必要がある場合は、
POST リクエストを /products/{product_id}/unarchive エンドポイントに送信します。これにより商品が再び有効化され、使用できるようになります。Unarchive Product API
Unarchive Product API のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
Checkout & fulfillment
Checkout & fulfillment
商品から payment または subscription フローを作成し、benefits と webhooks を介して自動的に fulfillment を行います。
Checkout Sessions
one-time または subscription 購入用の checkout sessions を作成します。
Payment Webhooks
payment lifecycle events に反応します。
Subscription Webhooks
subscription の作成、更新、キャンセルの events を処理します。
ベストプラクティス
- 明確さから始める: 価格オプションごとに商品を分ける(Monthly と Yearly)
- trial を適切に活用する: activation を促進するため、trial と onboarding を組み合わせる
- fulfillment を自動化する: benefits と webhooks を使用して即座に提供する
- metadata でタグ付けする: 照合用にシステム ID を保存する
これで商品を作成し、販売を開始できます。one-time、recurring、または usage-based に対応しています。
関連情報
Product Analytics
個々の商品について、収益、顧客、retention、サブスクライバー、MRR を追跡します。
Localized Pricing
リアルタイムの為替レートに依存せず、商品に通貨別または国別の固定価格を設定します。