Skip to main content
Discount codes overview cover
割引コードを使用すると、ターゲットを絞ったプロモーションやインセンティブを実施できます。割合ベースの割引を作成し、制限や有効期限を設定し、製品に限定し、チェックアウトでスムーズに適用します。

Checkout Sessions

ホストされたチェックアウト中に、discount_codesとUIコントロールを使用して、1つ以上のスタックコードを適用します。

Validate Discount

割引がその ID で有効かどうかを確認します。

Get Discount by Code

コード名(例: “SAVE20”)を使用して割引を検索し、検証します。

Create Discount (API)

プログラムで新しい割引コードを作成します。

List & Update Discounts

既存の割引を閲覧および管理し、必要に応じて更新または削除します。

Plan Change Discounts

サブスクリプションプランをアップグレードまたはダウングレードする際に、割引コードを適用します。

割引コードとは?

割引コードは、チェックアウト時に注文合計を減少させるプロモーショントークンです。次のような場面で理想的です:
  • 季節キャンペーン: ブラックフライデー、製品発売、または周年記念
  • 獲得オファー: 初回購入インセンティブや紹介報酬
  • 保持: 既存顧客に対する再獲得またはロイヤルティ報酬
  • B2Bディール: プライベートコードを通じた契約または交渉による価格設定

主な利点

  • 柔軟な割引: 割合ベースまたは定額の割引
  • スタック可能なコード: 1回のチェックアウト、支払い、またはサブスクリプションで最大20個のコードを適用 — 個別のコードを作成せずにキャンペーンを組み合わせられます(例: WELCOME10 + BLACKFRIDAY20
  • 対象を絞った制御: 商品、サブスクリプションサイクル、顧客の利用資格による制限
  • キャンペーン管理: 開始日の予約、終了日、全体および顧客ごとの利用上限
  • 通貨ごとの価格設定: 通貨ごとに定額控除額、金額上限、最低小計を設定
  • シームレスなチェックアウト: checkout sessions によるUIフィールドおよびAPIのサポート

割引コードの作成

Dodo Paymentsダッシュボードで割引コードを作成し、ホストされたチェックアウトまたはAPI経由で適用します。
既存の割引コードを表示している Dodo Payments ダッシュボードの割引一覧

ダッシュボードの設定

  • Discount Name(必須): 内部およびダッシュボードに表示する名前
  • Code(必須): 顧客がチェックアウト時に入力する文字列。表示されるボタンを使ってランダムなコードを生成することもできます
  • Type(必須): Percentage(割合による値引き)または Amount(定額控除)を選択
  • Amount(必須): 割合の値、または Amount 割引の定額
  • Start Date(任意): コードを後から有効にするよう予約。すぐに有効にする場合は空欄のままにします
  • Expiration Date(任意): コードが無効になる日付
  • Usage Limit(任意): すべての顧客を対象とした合計利用回数の上限
  • Per-Customer Usage Limit(任意): 1人の顧客が利用できる回数の上限。両方を設定する場合、全体の利用上限以下である必要があります
  • Customer Eligibility(任意): コードを利用できる顧客を制限 — すべての顧客、初回購入の顧客、既存の顧客、または指定した顧客リスト
  • Currency Options(任意): 通貨ごとの値 — Per-Currency Options を参照
  • Product Restriction(任意): 選択した商品にのみ適用を制限
  • Subscription Cycle Limit(任意): 割引を適用する請求サイクル数
  • Preserve on Plan Change(任意): サブスクリプションのプラン変更後も割引を有効なまま維持 (preserve_on_plan_change)
  • Metadata(任意): 内部追跡や統合のためにカスタムのキーと値のペアを付加
割引の詳細 — タイプ、割合または金額、名前、コード、通貨オプション:
タイプ、割合の金額、名前、コード、通貨オプションを表示する新しい割引コードフォーム
利用上限と有効期限を完全に設定した状態:
開始日、終了日、利用上限を設定した利用上限と有効期限のパネル
フォームのさらに下 — 利用資格、制限、詳細オプション:
割引コードの利用資格、制限、詳細オプション
サブスクリプションの導入価格(例: 「3か月間50%オフ」)にはサイクル上限を使用します。
割合 amount はAPI上では basis points で表現されます — 1500 は15%を意味します。定額の amount は金額であり、コードの通貨オプションによって通貨が決まります。

割引タイプ

両方のタイプを同じ discount_codes 配列に組み合わせることができ、配列の順序に従って適用されます。
Amount タイプを選択し、500 INR の定額控除を表示している割引コードエディター

顧客の利用資格

コードを利用できる顧客を制御するには customer_eligibility を設定します:
Any、First-time、Existing、Specific customer の各オプションを表示する顧客利用資格のドロップダウン
specific コードは、利用資格のある顧客が 0人 の状態で開始され、顧客を追加するまで、すべての利用を拒否します。ダッシュボードまたは discount customers API を使って顧客を追加します。
Per-Customer Usage Limit と利用資格を組み合わせることで、全体の利用上限とは別に、各顧客がコードを利用できる回数を制限できます。

通貨ごとのオプション

通貨オプションを使うと、販売する通貨ごとに1つのコードを正しく動作させられます。各エントリでは、1つの通貨について次を設定します:
  • Amount — Amount 割引では控除額そのもの、Percentage 割引ではコードによる値引き額の上限です。API上では max_amount_possible に対応します。
  • Minimum subtotal — カートの小計がこの金額に達した場合にのみコードが適用されます。0 は下限なしを意味します。
  • Default — 未設定の通貨が変換元として使用するデフォルトとして、1つのエントリを指定できます。
INR と USD の通貨ごとの金額および最低小計を表示する通貨オプションパネル
Amount 割引には、解決可能なデフォルトを持つ通貨オプションが少なくとも1つ必要です。通貨がなければ定額控除の意味を定義できないためです。Percentage 割引では通貨オプションは任意です。
最低小計は常にカートの元の価格に対して計測され、スタックの途中における累計額に対して計測されることはありません。そのため、スタックの順序によって最低額を満たすかどうかが変わることはありません。

チェックアウト体験

  1. 購入者がチェックアウトフィールドにコードを入力します。
  2. 利用可能な割引が適用され、合計額がすぐに更新されます。
注文合計に割引が適用されたチェックアウトページ
Checkout Sessions では、1つ以上のコードを事前に適用するために discount_codes(配列)を渡します。割引入力フィールドはデフォルトで表示されます — feature_flags.allow_discount_code のデフォルト値は true なので、非表示にしたい場合のみ false に設定してください。コードは配列の順序に従って適用され、最大20個まで指定できます。

割引コードのスタッキング

Checkout sessions、payments、subscriptions は、discount_codes 配列(最大20エントリ)を介して最大 20個のスタックコード を受け付けます。コードは 配列順 に適用されるため、最初に利用可能なコードが基準価格を引き下げ、次のコードが割引後の価格をさらに引き下げる、というように処理されます。適用された割引の全体は、レスポンスの discount_ids(payments/subscriptions)および discounts(位置や残りのサブスクリプションサイクルなど、割引ごとの詳細情報)に返されます。
単数形の discount_code フィールドは deprecated ですが、後方互換性のため引き続き完全にサポートされます — 既存の統合は変更せずに動作し続けます。同じリクエストで discount_codes と組み合わせることはできません。スタッキングとより詳細なレスポンス形式を利用できるため、1つのコードだけの場合でも、都合のよいタイミングで discount_codes(配列形式)へ移行することを推奨します。

API管理

タイプと金額を指定して、プログラムから割引コードを作成します。

API Reference

割引作成APIを表示します。
すべての割引を一覧表示するか、管理や監査のために詳細を取得します。

API Reference

一覧表示および取得APIを確認します。
内部IDの代わりに、人が読めるコード(例: “SAVE20”)を使って割引を検索します。

API Reference

コード名で割引を取得します。
金額、終了日、制限などの割引設定を変更します。

API Reference

割引の詳細を更新する方法を確認します。
適用する前に、割引が有効で適用可能かどうかを確認します。

API Reference

割引の利用を検証します。
不要になった割引を無効化または削除します。

API Reference

割引を削除します。
customer_eligibilityspecific が設定された割引について、利用できる顧客を管理します:
  • GET /discounts/{discount_id}/customers — 追加された顧客を一覧表示します(ページネーション対応、1ページあたり最大100件)。
  • POST /discounts/{discount_id}/customers — IDで顧客を追加します。この呼び出しは冪等で、最大1000個のIDを受け付けます。すべてのIDが、ビジネス内にすでに存在している必要があります。レスポンスには、そのリクエストで送信されたIDのみが返されるため、許可リスト全体を読み取るには一覧エンドポイントを使用します。
  • DELETE /discounts/{discount_id}/customers/{customer_id} — 1人の顧客を削除します。

一般的なユースケース

  • 導入キャンペーン: 新商品の期間限定ローンチプロモーション
  • 大量購入またはB2B: 特定の商品セット向けの契約割引
  • リテンション施策: 解約防止ワークフローでの離脱顧客向けコード
  • 季節キャンペーン: 祝日やイベントに基づくプロモーション

統合例

Metadata を使った割引の作成

内部追跡用にカスタムのキーと値のペアを付加します。
割引にキャンペーン、流入元、または内部参照IDの Metadata を付けることで、後から利用状況を照合し、ROIを測定できます。

Checkout Sessions での割引適用

1つ以上のスタック割引を事前適用し、コード入力UIを表示します。

プラン変更時の割引適用

顧客がサブスクリプションをアップグレードまたはダウングレードする際に、プロモーション価格を提供します。
サブスクリプションのレスポンスに含まれる新しい discounts 配列から、適用されたすべての割引を読み取れます。各エントリには discount_idpositioncycles_remaining(subscriptions の場合)、および元のコードが含まれます。

割引コードフィールドを非表示にする

割引入力はデフォルトで表示されるため、事前にコードを渡していなくても、顧客はいつでもコードを入力できます。フィールドを完全に非表示にするには、allow_discount_codefalse に設定してください。

ベストプラクティス

  • 明確な名前を付ける: キャンペーン名と一致する、認識しやすいコードを使用
  • 期間を限定する: 緊急性を高め、不正利用を防ぐために有効期限を設定
  • 適用範囲を適切にする: 利益率の漏出を避けるため、特定の商品に限定
  • 早期に検証する: チェックアウトを確定する前にコードの適用可否を確認
  • 効果を監視する: キャンペーンごとに利用状況とコンバージョンを追跡
割引コードは、顧客獲得とリテンションのための強力な手段です。まずはシンプルで分かりやすい名前のオファーから始め、十分に検証し、成果に基づいて改善を重ねてください。
最終更新日 2026年8月17日