> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Products

> Create one-time, subscription, or usage-based products in minutes. Manage pricing, media, fields, and automated entitlements - all in one place.

<Info>
  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.
</Info>

<CardGroup cols={3}>
  <Card title="One‑Time" icon="credit-card" href="/features/one-time-payment-products">
    Charge once for lifetime access or a single deliverable.
  </Card>

  <Card title="Subscriptions" icon="repeat" href="/features/subscription">
    Bill on a schedule with trials, proration, and add‑ons.
  </Card>

  <Card title="Usage‑Based" icon="arrow-trend-up" href="/features/usage-based-billing/introduction">
    実際の使用量で消費と請求を計測します。
  </Card>
</CardGroup>

## 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.

<Steps>
  <Step title="Name & description">
    Provide a clear title and a concise value‑oriented description. Markdown is supported in descriptions.

    <Tip>
      Keep the first sentence customer‑facing and outcome‑oriented; it appears prominently in checkout.
    </Tip>

    <Frame>
      <img src="https://mintcdn.com/dodopayments/r-ndtvzx3WhKqwER/images/products.png?fit=max&auto=format&n=r-ndtvzx3WhKqwER&q=85&s=fb41221c4f2af4de0155e71de1ac6904" alt="製品" style={{ maxHeight: '500px', width: 'auto' }} width="1911" height="927" data-path="images/products.png" />
    </Frame>
  </Step>

  <Step title="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:

    * **価格**: 基本額と通貨。
    * **割引 (%)**: チェックアウトと請求書に表示されるオプションの割引。
    * サブスクリプションの場合、**繰り返し間隔**（例: 1か月または1年）と必要に応じて**試用日数**を設定します。サブスクリプションの価格は少なくとも\*\*\$1\*\*（または選択した通貨の同等額）以上でなければなりません。この最低額を下回るとサポートされず、サブスクリプションは機能しません。

    <Tip>
      リアルタイムの為替変換ではなく、通貨または国ごとに固定価格を設定したいですか？商品に`pricing_mode`を設定し、[Localized Pricing](/features/localized-pricing)ルールを適用してください。例えば、EURでは€9.99、インドでは₹999などです。
    </Tip>

    <Warning>
      価格の変更は新規購入にのみ影響します。既存のサブスクリプションはプラン変更ルールに従います。
    </Warning>
  </Step>

  <Step title="Product media">
    チェックアウトや請求書で商品を紹介するために画像をアップロードします。PNG/JPG/WebP形式がサポートされ、最大3MBまでです。いつでも並べ替えや置き換えが可能です。
  </Step>

  <Step title="Automated entitlements (Under Advanced Settings)">
    支払い後に自動的にアクティベートされるフルフィルメントをアタッチします：

    * **ライセンスキー**: ユニークなキーを発行し検証します
    * **ファイルダウンロード**: 安全なファイルアクセスを提供します
    * **カスタム**: Webhookを通じて独自のエンタイトルメントロジックをトリガーします

    オファーが進化するに合わせて、特典を追加または削除します。既存のサブスクライバーは、それに応じてアクセスを得たり失ったりします。
  </Step>
</Steps>

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

1つの製品のバリアントの代わりに、各価格オプション（例：月次と年次）のために別々の製品を作成します。次に、それらを**商品コレクション**にグループ化して、単一のチェックアウトで全てのオプションを提示し、顧客ポータルでのプラン変更を可能にします。

<Frame>
  <img src="https://mintcdn.com/dodopayments/2YrxTqbaYgAm54C_/images/product-collection/checkout-page.png?fit=max&auto=format&n=2YrxTqbaYgAm54C_&q=85&s=1890932384bc32c8126c7993f3581855" alt="商品コレクション" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/product-collection/checkout-page.png" />
</Frame>

### なぜこのアプローチなのか？

* **明確な価格モデル**: 各製品は、単一かつ明確に定義された価格モデルを持ちます（一回限り、サブスクリプション、または使用量ベース）
* **予測可能なAPI**: ネストされたバリアントロジックがないシンプルな統合
* **簡単なレポート**: バリアント集計なしで製品ごとに収益や指標を追跡します
* **柔軟なチェックアウト**: 複数の製品を並べて表示し、顧客が比較して選択できるようにします

### 商品コレクションの仕組み

1. **商品を作成**: 各プランの個々の商品を設定します（例：スタータープラン月次、スタータープラン年次、プロプラン月次、プロプラン年次）
2. **コレクションにグループ化**: 関連商品を商品コレクションに追加します
3. **統一チェックアウト**: 顧客はすべてのオプションを1つのチェックアウトで確認し、希望するプランを選択します
4. **プラン切替**: 顧客は同じコレクション内で製品をアップグレードまたはダウングレードできます

<Card title="Product Collections" icon="layer-group" href="/features/product-collections">
  統一されたチェックアウト体験およびシームレスなアップグレード/ダウングレード経路のために関連製品をグループ化します。
</Card>

## 商品管理

商品はダッシュボードを通して、またはAPIを介してプログラム的に管理できます。APIは商品作成、更新、取得、画像アップロード、およびアーカイブをフルコントロールします。

### ダッシュボード管理

* **更新**: 名前、説明、画像、価格、フィールド、特典をいつでも編集可能（価格モデルは不変です）。
* **アーカイブ**: 既存顧客に影響を与えずに新規購入から製品を非表示にします。後でアーカイブ解除が可能です。

### API管理

以下の指示により、商品を作成、更新、管理、取得し、画像をアップロードすることができます。

<AccordionGroup>
  <Accordion title="Creating a Product">
    商品は一回限りのアイテムかサブスクリプションベースのサービスです。新しい商品を作成するには、`POST`リクエストを`/products`エンドポイントに送信し、名前、説明、価格、通貨、およびそれが繰り返し商品であるかどうかの詳細を指定します。

    定期購入商品の場合、`price`オブジェクトを定期価格（`type: recurring_price`）に設定し、`payment_frequency_interval`および`subscription_period_interval`（`Day`、`Week`、`Month`、または`Year`）とその対応するカウントを指定します。

    <Card title="Create Product API" icon="code" href="/api-reference/products/post-products">
      詳細リクエストとレスポンス構造はCreate Product APIドキュメントで確認してください。
    </Card>
  </Accordion>

  <Accordion title="Updating a Product">
    既存の商品を変更するには、`PATCH`リクエストを`/products/{product_id}`エンドポイントに送信します。名前、価格、説明などのプロパティを更新し、他の詳細は変更せずにおくことができます。

    エンドポイントの`product_id`が既存の商品と一致していることを確認してください。

    <Card title="Update Product API" icon="code" href="/api-reference/products/patch-products">
      詳細リクエストとレスポンス構造はUpdate Product APIドキュメントで確認してください。
    </Card>
  </Accordion>

  <Accordion title="Retrieving Products">
    `GET`リクエストを`/products`エンドポイントに送信することで、アカウントに保存されている商品のリストを取得できます。これにより、アクティブおよびアーカイブされた商品を含む商品詳細を取得できます。

    <Card title="Retrieve Products API" icon="code" href="/api-reference/products/get-products">
      詳細リクエストとレスポンス構造はRetrieve Products APIドキュメントで確認してください。
    </Card>
  </Accordion>

  <Accordion title="Uploading Product Images">
    APIが提供する事前署名されたURLを使用して、商品に画像を関連付けてAWS S3にアップロードできます。まず、`/products/{product_id}/images`エンドポイントから画像アップロードURLをリクエストし、提供されたURLを使用して60秒以内に画像をアップロードします。

    <Warning>
      事前署名されたURLは60秒で期限切れになるため、その時間枠内に画像をアップロードする必要があります。
    </Warning>

    一度APIから事前署名された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`ステータスを返します。

    <Card title="Upload Product Image API" icon="code" href="/api-reference/products/put-products-images">
      詳細リクエストとレスポンス構造はUpload Product Image APIドキュメントで確認してください。
    </Card>
  </Accordion>

  <Accordion title="Archiving a Product">
    商品を表示または使用しなくなった場合は、`DELETE`リクエストを`/products/{id}`エンドポイントに送信してアーカイブできます。この操作は製品を非表示にしますが、完全に削除するわけではありません。

    <Card title="Archive Product API" icon="code" href="/api-reference/products/archive-product">
      詳細リクエストとレスポンス構造はArchive Product APIドキュメントで確認してください。
    </Card>
  </Accordion>

  <Accordion title="Unarchiving a Product">
    アーカイブされた商品を復元する必要がある場合は、`POST`リクエストを`/products/{product_id}/unarchive`エンドポイントに送信します。これにより商品が再アクティブ化され、再び使用できるようになります。

    <Card title="Unarchive Product API" icon="code" href="/api-reference/products/unarchive-product">
      詳細リクエストとレスポンス構造はUnarchive Product APIドキュメントで確認してください。
    </Card>
  </Accordion>

  <Accordion title="Checkout & fulfillment">
    商品から支払いまたはサブスクリプションフローを作成し、特典やWebhookを介して自動的にフルフィルします。

    <CardGroup cols={3}>
      <Card title="Checkout Sessions" icon="code" href="/developer-resources/checkout-session">
        一回限りまたはサブスクリプション購入のためのチェックアウトセッションを作成します。
      </Card>

      <Card title="Payment Webhooks" icon="code" href="/developer-resources/webhooks/intents/payment">
        支払いライフサイクルイベントに反応します。
      </Card>

      <Card title="Subscription Webhooks" icon="code" href="/developer-resources/webhooks/intents/subscription">
        サブスクリプションの作成、更新、キャンセルイベントを処理します。
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## ベストプラクティス

* **明確さから始める**: 各価格オプション（月次対年次）のための製品を分ける
* **トライアルを賢く活用する**: トライアルをオンボーディングと組み合わせてアクティベーションを促進する
* **フルフィルメントを自動化する**: 特典とWebhookを使用して即時にデリバリーする
* **メタデータでタグ付けする**: 調整のためにシステムIDを保存する

<Check>
  商品の作成と販売を開始する準備が整いました - 一回限り、定期的、または使用別。
</Check>

## 関連

<CardGroup cols={2}>
  <Card title="Product Analytics" icon="chart-mixed" href="/features/analytics-and-reporting#product-level-analytics">
    各商品の収益、顧客、リテンション、サブスクリプション、MRRを追跡します。
  </Card>

  <Card title="Localized Pricing" icon="earth-americas" href="/features/localized-pricing">
    ライブ為替レートに頼るのではなく、商品に通貨ごとまたは国ごとに固定価格を設定します。
  </Card>
</CardGroup>
