Skip to main content
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.
Keep the first sentence customer‑facing and outcome‑oriented; it appears prominently in checkout.
製品
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.
Then set pricing:
  • Price: 基本金額と通貨。基本価格は USD に限らず、Dodo Payments が請求できる任意の通貨で設定できます。検索可能な通貨セレクターを使用して通貨を検索してください。USD、GBP、EUR、INRはリストの上部に固定されています。
  • Discount (%): checkout と請求書に表示される任意のインライン割引。
  • サブスクリプションの場合は、Repeat every(例: 1 か月ごと、1 年ごと)、Trial days、および任意の paid trial 用の Trial amount を設定します。サブスクリプション価格は少なくとも $1(または選択した通貨での相当額)である必要があります。この最低額を下回る金額はサポートされず、サブスクリプションは機能しません。
基本通貨以外の通貨を使用する顧客にも、Adaptive Currency を通じて請求されます。そのため、購入者への請求方法を変更せずに、市場に最適な通貨で価格を作成できます。
リアルタイムの FX 換算ではなく、通貨または国ごとに固定価格を設定したい場合は、商品に pricing_mode を設定し、Localized Pricing ルールを適用します。たとえば、EUR では €9.99、インドでは ₹999 と設定できます。
価格の変更は新規購入にのみ影響します。既存のサブスクリプションにはプラン変更ルールが適用されます。
3

Product media

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

Automated entitlements (Under Advanced Settings)

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

バリアントと価格オプション

1 つの商品内にバリアントを作成する代わりに、価格オプションごとに個別の商品を作成します(例: Monthly と Yearly)。次に、それらを Product Collection にまとめると、すべてのオプションを 1 つの checkout に表示し、Customer Portal でプランの切り替えを有効にできます。
Product Collections

このアプローチを採用する理由

  • 明確な価格モデル: 各商品に、明確に定義された単一の価格モデル(one-time、subscription、usage-based)が設定される
  • 予測可能な 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: 名前、説明、画像、価格、フィールド、benefits はいつでも編集できます(価格モデルは変更できません)。
  • Archive: 既存の顧客に影響を与えずに、新規購入で商品を非表示にします。後からアーカイブを解除できます。
  • Drafts: 作成途中の商品は draft として保存されるため、後で作業を再開できます。Drafts は test mode と live mode で別々に保持されるため、一方の mode で未完成の商品がもう一方に影響することはありません。破棄して最初からやり直すには Clear Draft を使用します。
商品およびコレクションのフォームページにはヘッダーアクションボタンが含まれているため、長いフォームの下部までスクロールしなくても保存できます。

API による管理

以下の手順では、画像のアップロードを含め、商品の作成、更新、管理、取得を行う方法を説明します。
商品は one-time アイテムまたはサブスクリプションベースのサービスにできます。新しい商品を作成するには、名前、説明、価格、通貨、recurring product かどうかなどの詳細を指定して、POST リクエストを /products エンドポイントに送信します。recurring product の場合は、price オブジェクトを recurring price(type: recurring_price)に設定し、payment_frequency_intervalsubscription_period_intervalDayWeekMonth、または 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 から提供された pre-signed URL を使用して AWS S3 に画像をアップロードすると、商品に画像を関連付けることができます。まず /products/{product_id}/images エンドポイントから画像アップロード URL をリクエストし、次に提供された URL を使用して 60 秒以内に画像をアップロードします。
pre-signed URL は 60 秒で期限切れになるため、その時間内に画像をアップロードする必要があります。
API から pre-signed URL を受け取ったら、PUT メソッドを使用して画像をアップロードします。これにより、画像のアップロード時に AWS S3 への安全で一時的なアクセスが可能になります。S3 へのアップロードに対応しているライブラリ:
  • Node.js: axiosnode-fetch
  • Python: requestsboto3
  • 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 のドキュメントで、詳細なリクエストおよびレスポンスの構造を確認できます。
商品から 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

リアルタイムの為替レートに依存せず、商品に通貨別または国別の固定価格を設定します。
最終更新日 2026年7月31日