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: 計測イベントに基づいて算出される価格です。
- 価格: 基本金額と通貨。Dodo Payments がサポートする任意の通貨で基本価格を設定できます。ただし、Pay What You Want 商品を除きます。これらの商品の基本通貨は USD、GBP、または EUR である必要があります。USD、GBP、EUR、および INR は、すぐにアクセスできるよう通貨セレクターの上部に固定されています。
- 割引適用率 (%): checkout と請求書に表示される任意のパーセント割引。小数点以下 2 桁まで入力できます(例:
10.5)。API では、discount_bpsを使用してベーシスポイント単位で割引を設定します。そのため、1050は 10.5% になります。従来のdiscountフィールドは非推奨で、整数パーセントに丸められます。 - サブスクリプションの場合は、繰り返し間隔(例: 1 か月または 1 年)、トライアル日数、および 有料トライアル の任意の トライアル金額を設定します。0 以外のサブスクリプション価格は、顧客が支払う通貨のサブスクリプション最低額を満たす必要があります。USD の場合は $1.00 です。USD、EUR、および GBP 以外の通貨でも、少なくとも $1.00 相当の金額が必要です。価格を正確に $0 に設定することもでき、カードなしで顧客が $0 のサブスクリプションを開始できるようにすることも可能です。詳しくは、価格がゼロの場合のカード不要を参照してください。負の金額はサポートされていません。
Adaptive Currency を有効にすると、基本通貨以外の地域の顧客には現地通貨で請求されるため、市場に最適な通貨で価格を設定できます。無効にすると、基本通貨で支払われます。
3
Product Media
checkout と請求書で商品を紹介する画像をアップロードします。対応形式は PNG、JPG、WebP で、サイズは最大 3 MB です。画像はいつでも並べ替えたり置き換えたりできます。
4
Automated Entitlements
Entitlements セクションで、支払い後に自動的に有効化される fulfillment を追加します。
- ライセンスキー: 一意のキーを発行して検証します。
- デジタルファイル: 安全なファイルアクセスを付与します。
- フィーチャーフラグ: アプリがチェックする機能を有効にします。
- プラットフォームアクセス: Discord、GitHub、Telegram、Figma、Framer、または Notion へのアクセスを付与します。
バリアントと料金オプション
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
商品を管理する
商品はダッシュボードから、または 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
Updating a Product
Updating a Product
PATCH リクエストを /products/{product_id} エンドポイントに送信します。その他の詳細を変更せずに、名前、価格、説明などのプロパティを更新できます。エンドポイントの product_id が既存の商品と一致していることを確認してください。Update Product API
Retrieving Products
Retrieving Products
GET リクエストを /products エンドポイントに送信して、アカウントに保存されている商品の一覧を取得します。これにより、アクティブな商品やアーカイブ済みの商品を含む商品詳細を取得できます。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
Archiving a Product
Archiving a Product
DELETE リクエストを /products/{id} エンドポイントに送信して、商品を完全に削除せずに新規購入の対象から非表示にします。Archive Product API
Unarchiving a Product
Unarchiving a Product
POST リクエストを /products/{product_id}/unarchive エンドポイントに送信して、アーカイブ済みの商品を復元します。これにより商品が再び有効になり、利用できるようになります。Unarchive Product API
Checkout and Fulfillment
Checkout and Fulfillment
商品から支払いまたはサブスクリプションのフローを作成し、benefits と webhook を介して自動的に fulfillment を実行します。
Checkout Sessions
Payment Webhooks
Subscription Webhooks
ベストプラクティス
- 明確さから始める: 料金オプション(Monthly と Yearly)ごとに商品を分けます。
- トライアルを適切に活用する: オンボーディングとトライアルを組み合わせて、利用開始を促します。
- fulfillment を自動化する: benefits と webhook を使用して、すぐに提供します。
- metadata でタグ付けする: 照合のためにシステム ID を保存します。