Skip to main content
商品は Dodo Payments の基盤です。ワンタイムのダウンロード商品、定期サブスクリプション、使用量ベースのアクセスのいずれを販売する場合でも、まず商品を作成します。各商品では、価格、checkout での表示方法、購入後の fulfillment 方法を定義します。

One-Time

生涯アクセスまたは単一の成果物に対して、一度だけ請求します。

Subscriptions

トライアル、日割り計算、アドオンに対応したスケジュールで請求します。

Usage-Based

使用量を計測し、実際の使用量に基づいて請求します。

商品を作成する

ダッシュボードまたは API から商品を作成します。最初に料金モデル(One-Time、Subscription、Usage-Based)を選択し、その後詳細を設定します。料金モデルは変更できません。別のモデルが必要な場合は、新しい商品を作成してください。
1

Name and Description

わかりやすいタイトルと、簡潔で価値を伝える説明を入力します。説明では Markdown を使用できます。
最初の文は顧客向けで、得られる成果を中心に記述します。この文は checkout に目立つ形で表示されます。
商品作成フォームを表示している商品ダッシュボード
2

Pricing Model and Price

料金モデルを選択します。
  • One-Time: 一度だけ支払う固定価格です。
  • Subscription: 期間と任意のトライアルを設定した定期価格です。
  • Usage-Based: 計測イベントに基づいて算出される価格です。
Then set pricing:
  • 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 を有効にすると、基本通貨以外の地域の顧客には現地通貨で請求されるため、市場に最適な通貨で価格を設定できます。無効にすると、基本通貨で支払われます。
ライブ FX 換算ではなく、通貨または国ごとに固定価格を設定しますか?商品に pricing_mode を設定し、€9.99(EUR)やインドでの ₹999 などの Localized Pricing ルールを適用します。
価格を編集すると、新規顧客が支払う金額が変わります。既存のサブスクリプションの価格が変更されることはありません。それぞれ、作成時の価格が維持されます。既存の購読者を別の価格に移行するには、Change Plan API でプランを明示的に変更します。日割り計算の設定は価格の編集ではなく、そのプラン変更に適用されます。
3

Product Media

checkout と請求書で商品を紹介する画像をアップロードします。対応形式は PNG、JPG、WebP で、サイズは最大 3 MB です。画像はいつでも並べ替えたり置き換えたりできます。
4

Automated Entitlements

Entitlements セクションで、支払い後に自動的に有効化される fulfillment を追加します。
  • License Keys: 一意のキーを発行し、検証します。
  • File Downloads: 安全なファイルアクセスを付与します。
  • Custom: webhook を介して独自の entitlement ロジックを実行します。
オファーの内容に応じて benefits を追加または削除します。既存のサブスクライバーのアクセス権も、それに応じて付与または失効します。

バリアントと料金オプション

1つの商品にバリアントを追加する代わりに、料金オプションごとに別の商品(例: Monthly と Yearly)を作成します。その後、それらを Product Collection にまとめることで、すべてのオプションを1つの checkout に表示し、Customer Portal でプランの切り替えを有効にできます。
コレクション内の複数の商品オプションを表示している checkout ページ

このアプローチの理由

  • 明確な料金モデル: 各商品が、ワンタイム、サブスクリプション、使用量ベースのいずれか1つの明確な料金モデルを持ちます。
  • 予測しやすい API: ネストされたバリアントロジックが不要になり、統合が簡単になります。
  • 容易なレポート作成: バリアントを集計せず、商品ごとに収益と指標を追跡できます。
  • 柔軟な checkout: 複数の商品を横並びで表示し、顧客が比較して選択できるようにします。

Product Collections の仕組み

  1. 商品を作成: 各プラン(例: Starter Monthly、Starter Annual、Pro Monthly、Pro Annual)用に個別の商品を設定します。
  2. コレクションにまとめる: 関連商品を Product Collection に追加します。
  3. 統合された checkout: 顧客は1つの checkout ですべてのオプションを確認し、希望するプランを選択できます。
  4. プランの切り替え: 顧客は Customer Portal を介して、同じコレクション内の商品間でアップグレードまたはダウングレードできます。

Product Collections

関連商品をまとめて、統合された checkout エクスペリエンスとアップグレード/ダウングレードの経路を提供します。

商品を管理する

商品はダッシュボードから、または API を介してプログラムで管理できます。API では、商品の作成、更新、取得、画像のアップロード、アーカイブを完全に制御できます。

ダッシュボードでの管理

  • Update: 名前、説明、画像、価格、フィールド、特典はいつでも編集できます(料金モデルは変更できません)。
  • Archive: 既存の顧客に影響を与えずに、新規購入の対象から商品を非表示にします。後でアーカイブを解除できます。
  • Drafts: 作成途中の商品は下書きとして保存され、後で再開できます。下書きはテストモードとライブモードで別々に保持されるため、一方のモードで未完成の商品がもう一方に影響することはありません。Clear Draft を使用すると破棄して最初からやり直せます。
商品およびコレクションのフォームページにはヘッダーアクションボタンが含まれているため、長いフォームの下部までスクロールしなくても保存できます。

API による管理

以下の手順では、画像のアップロードを含め、商品の作成、更新、管理、取得を行う方法を説明します。
名前、説明、価格、通貨、定期商品かどうかなどの詳細を指定して、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 のドキュメントを参照してください。
PATCH リクエストを /products/{product_id} エンドポイントに送信します。その他の詳細を変更せずに、名前、価格、説明などのプロパティを更新できます。エンドポイントの product_id が既存の商品と一致していることを確認してください。

Update Product API

詳細なリクエストとレスポンスの構造については、Update Product API のドキュメントを参照してください。
GET リクエストを /products エンドポイントに送信して、アカウントに保存されている商品の一覧を取得します。これにより、アクティブな商品やアーカイブ済みの商品を含む商品詳細を取得できます。

Retrieve Products API

詳細なリクエストとレスポンスの構造については、Retrieve Products API のドキュメントを参照してください。
API が提供する署名付き URL を使用して AWS S3 に画像をアップロードし、商品に関連付けます。まず /products/{product_id}/images エンドポイントから画像のアップロード URL をリクエストし、その後、提供された URL を使用して60秒以内に画像をアップロードします。
pre-signed 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
アップロードが成功すると、AWS S3 は 200 OK status を返し、画像が正常に保存されたことを示します。

Upload Product Image API

詳細なリクエストとレスポンスの構造については、Upload Product Image API のドキュメントを参照してください。
DELETE リクエストを /products/{id} エンドポイントに送信して、商品を完全に削除せずに新規購入の対象から非表示にします。

Archive Product API

詳細なリクエストとレスポンスの構造については、Archive Product API のドキュメントを参照してください。
POST リクエストを /products/{product_id}/unarchive エンドポイントに送信して、アーカイブ済みの商品を復元します。これにより商品が再び有効になり、利用できるようになります。

Unarchive Product API

詳細なリクエストとレスポンスの構造については、Unarchive Product API のドキュメントを参照してください。
商品から支払いまたはサブスクリプションのフローを作成し、benefits と webhook を介して自動的に fulfillment を実行します。

Checkout Sessions

ワンタイムまたはサブスクリプション購入用の checkout セッションを作成します。

Payment Webhooks

支払いライフサイクルイベントに対応します。

Subscription Webhooks

サブスクリプションの作成、更新、キャンセルのイベントを処理します。

ベストプラクティス

  • 明確さから始める: 料金オプション(Monthly と Yearly)ごとに商品を分けます。
  • トライアルを適切に活用する: オンボーディングとトライアルを組み合わせて、利用開始を促します。
  • fulfillment を自動化する: benefits と webhook を使用して、すぐに提供します。
  • metadata でタグ付けする: 照合のためにシステム ID を保存します。

関連

Product Analytics

個々の商品について、収益、顧客、継続率、購読者、MRR を追跡します。

Localized Pricing

ライブの為替レートに依存せず、商品に通貨ごとまたは国ごとの固定価格を設定します。
最終更新日 2026年9月26日