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 (%): checkout と請求書に表示する任意の割引率です。
- サブスクリプションの場合は、Repeat every(例: 1か月ごと、1年ごと)、Trial days、および paid trial 用の任意の Trial amount を設定します。0ではないサブスクリプション価格は、少なくとも $1(または選択した通貨での相当額)である必要があります。正確に $0 の価格にも対応しており、カードなしで顧客が $0 のサブスクリプションを開始できるようにすることもできます。詳しくは Card-Optional at Zero Price を参照してください。負の金額には対応していません。
Adaptive Currency を有効にすると、基本通貨以外の地域の顧客には現地通貨で請求されるため、市場に最適な通貨で価格を設定できます。無効にすると、基本通貨で支払われます。
3
Product Media
checkout と請求書で商品を紹介する画像をアップロードします。対応形式は PNG、JPG、WebP で、サイズは最大 3 MB です。画像はいつでも並べ替えたり置き換えたりできます。
4
Automated Entitlements
Entitlements セクションで、支払い後に自動的に有効化される fulfillment を追加します。
- License Keys: 一意のキーを発行し、検証します。
- File Downloads: 安全なファイルアクセスを付与します。
- Custom: webhook を介して独自の entitlement ロジックを実行します。
バリアントと料金オプション
1つの商品にバリアントを追加する代わりに、料金オプションごとに別の商品(例: Monthly と Yearly)を作成します。その後、それらを Product Collection にまとめることで、すべてのオプションを1つの checkout に表示し、Customer Portal でプランの切り替えを有効にできます。
このアプローチの理由
- 明確な料金モデル: 各商品が、ワンタイム、サブスクリプション、使用量ベースのいずれか1つの明確な料金モデルを持ちます。
- 予測しやすい 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: 名前、説明、画像、価格、フィールド、特典はいつでも編集できます(料金モデルは変更できません)。
- Archive: 既存の顧客に影響を与えずに、新規購入の対象から商品を非表示にします。後でアーカイブを解除できます。
- Drafts: 作成途中の商品は下書きとして保存され、後で再開できます。下書きはテストモードとライブモードで別々に保持されるため、一方のモードで未完成の商品がもう一方に影響することはありません。Clear Draft を使用すると破棄して最初からやり直せます。
API による管理
以下の手順では、画像のアップロードを含め、商品の作成、更新、管理、取得を行う方法を説明します。Creating a Product
Creating a 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 が提供する署名付き 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 and Fulfillment
Checkout and Fulfillment
商品から支払いまたはサブスクリプションのフローを作成し、benefits と webhook を介して自動的に fulfillment を実行します。
Checkout Sessions
ワンタイムまたはサブスクリプション購入用の checkout セッションを作成します。
Payment Webhooks
支払いライフサイクルイベントに対応します。
Subscription Webhooks
サブスクリプションの作成、更新、キャンセルのイベントを処理します。
ベストプラクティス
- 明確さから始める: 料金オプション(Monthly と Yearly)ごとに商品を分けます。
- トライアルを適切に活用する: オンボーディングとトライアルを組み合わせて、利用開始を促します。
- fulfillment を自動化する: benefits と webhook を使用して、すぐに提供します。
- metadata でタグ付けする: 照合のためにシステム ID を保存します。
関連
Product Analytics
個々の商品について、収益、顧客、継続率、購読者、MRR を追跡します。
Localized Pricing
ライブの為替レートに依存せず、商品に通貨ごとまたは国ごとの固定価格を設定します。