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

Checkout Sessions

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

Get Discount

IDで割引を取得し、ステータスと制限を確認します。

Get Discount by Code

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

Create Discount (API)

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

List & Update Discounts

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

Plan Change Discounts

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

割引コードとは?

Discount codeは、チェックアウト時の注文合計を減額するプロモーション用トークンです。季節キャンペーン、初回購入インセンティブ、再購入促進オファー、または交渉済みのB2B価格設定に使用できます。 コードは割合ベース(例:15%割引)または定額(例:$5割引)です。1回のチェックアウト、支払い、またはサブスクリプションにつき最大20個のコードを組み合わせられるため、顧客は同じ取引でウェルカムオファーとキャンペーンコードの両方を利用できます。コードを特定の商品に限定したり、各顧客が使用できる回数を制限したり、有効期限を設定したり、利用対象者を管理したりできます。

主な利点

  • 柔軟な割引:割合ベースまたは定額の割引
  • 組み合わせ可能なコード:1回のチェックアウト、支払い、またはサブスクリプションに最大20個のコードを適用
  • 対象を絞った管理:商品、サブスクリプションのサイクル、顧客の利用資格による制限
  • キャンペーン管理:開始日の予約、有効期限、全体および顧客ごとの使用回数上限
  • 通貨ごとの価格設定:通貨ごとに定額の割引額、割引上限、最低小計を設定

割引コードの作成

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

Dashboardでの設定

  • Discount Name(必須):ダッシュボードで使用する内部ラベル。
  • Code(必須):チェックアウト時に顧客が入力する文字列。ランダムなコードを生成するか、自分で入力します(最小3文字。自動的に大文字に変換されます)。
  • Type(必須):Percentage(割合による割引)または Amount(定額の値引き)。
  • Amount(必須):Percentage の場合、ダッシュボードでの割引率(例:15(15%の場合))。API では、同じ値を basis points で指定します(1500)。Amount の場合、コードのデフォルト通貨での定額の値引き額。
  • Start Date(任意):コードを有効化する将来の日付を指定します。すぐに有効化する場合は空欄にします。
  • Expiration Date(任意):この日付を過ぎるとコードは利用できなくなります。
  • Usage Limit(任意、Advanced 内):すべての顧客を対象とした合計利用回数の上限。multi-subscription cart は1回の利用としてカウントされます。
  • Per-Customer Usage Limit(任意、Advanced 内):1人の顧客が利用できる回数の上限。両方を設定する場合、全体の利用回数の上限以下である必要があります。
  • Customer Eligibility(任意):利用できる顧客を制限します — すべての顧客、初回購入の顧客、既存の顧客、または選択した顧客リスト。
  • Currency Options(任意):販売する各通貨に対する割引額。Per-Currency Options を参照してください。
  • Product Restriction(任意):特定の商品のみにコードを制限します。
  • Subscription Cycle Limit(任意、Advanced 内):割引を適用する請求サイクル数。無期限にする場合は空欄にします。
  • Preserve on Plan Change(任意):サブスクリプションのプラン変更後も割引を有効に保ちます(preserve_on_plan_change)。
  • Metadata(任意):内部トラッキング用のカスタム key–value ペアを付加します。
  • Require a minimum order value(任意、Advanced 内):コードを適用するために必要な、通貨ごとのカート小計の最低額。
フォームのサイドパネルには、作成中のコードの Summary がリアルタイムで表示されます。Preview に切り替えると、チェックアウト時に割引がどのように表示されるかを確認できます。
割引の詳細の横にSummaryとPreviewのサイドパネルが表示されたNew Discount Codeフォーム
フォームの下部には、対象顧客、制限、Advancedオプションがあります:
割引コードの対象顧客、制限、Advancedオプション
サブスクリプションの導入価格にはサイクル上限を使用します(例:「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 と適用対象を組み合わせると、全体の利用上限とは独立して、各顧客がコードを利用できる回数を制限できます。

通貨ごとのオプション

複数の通貨で販売する場合は、各コードに通貨ごとの動作を設定します。Currency options では、各エントリに次の項目を指定します。
  • Amount — Amount割引の場合は、その通貨での定額の減額。Percentage割引の場合は、最大割引額の上限。APIでは max_amount_possible に対応します。
  • Default — 1つの通貨をデフォルトとして指定します。設定されていない通貨には、このデフォルト通貨から換算した値が使用されます。
通貨ごとの最低額は、Advanced 内の Require a minimum order value で個別に設定します。
  • Minimum subtotal — カートがその通貨でこの小計に達した場合にのみコードが適用されます。0 は最低額がないことを意味します。
INR と USD の通貨ごとの金額および最低小計を表示する通貨オプションパネル
Amount割引では、換算可能なデフォルト通貨を持つ通貨オプションを少なくとも1つ設定する必要があります。通貨がなければ定額の減額に意味がないためです。Percentage割引では、通貨オプションは必要ありません。
最低小計は、スタック内の先行する割引適用後の途中合計ではなく、常にカートの元の価格を基準に測定されます。スタックの適用順序によって、最低額を満たすかどうかが変わることはありません。サブスクリプションの場合、最低額は商品とその add-ons の合計に対して1回だけ確認されます。たとえば、$0 の商品に $5 の add-on がある場合、$4 の最低額を満たします。Amount(flat)コードは、add-ons ではなくサブスクリプション商品にのみ適用されます。

チェックアウト体験

顧客はチェックアウト画面のフィールドに割引コードを入力します。対象となるコードはすぐに適用され、合計額が更新されます。
割引が注文合計に適用されたチェックアウトページ
Checkout Sessions では、discount_codes(配列)を渡して、1つ以上のコードを事前に適用します。割引入力フィールドはデフォルトで表示されます。feature_flags.allow_discount_code を false に設定すると非表示にできます。コードは配列の順序で適用され、最大20個まで指定できます。

割引コードのスタック

Checkout sessions、payments、subscriptions では、discount_codes 配列を使用して最大20個のコードをスタックできます。コードは配列の順序で適用されます。最初の対象コードが開始価格を下げ、次のコードが割引適用後の価格をさらに下げるという流れです。Purchasing Power Parity が有効な場合、開始価格は PPP 調整後の金額です。レスポンスには discount_ids(payments/subscriptions の場合)と discounts(位置や残りのサブスクリプションサイクルなど、割引ごとの詳細情報を含む)が含まれます。
単数形の discount_code フィールドは非推奨ですが、後方互換性のため完全にサポートされています。同じリクエストで discount_codes と組み合わせることはできません。スタックと詳細なレスポンスを利用するには、discount_codes(配列形式)へ移行してください。
Card-Optional at Zero Price が有効なサブスクリプション価格で、支払額を本日分として 0 まで下げるコードのスタックを使用すると、カード要件もスキップされます。顧客は支払い方法を登録せずにチェックアウトできます。これはネイティブの 0 価格と同じ動作です。

API 管理

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

API Reference

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

API Reference

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

API Reference

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

API Reference

割引の詳細を更新する方法を確認します。
割引を適用する前に、ID を使用して割引を取得し、そのステータス、利用回数、制限を確認します。

API Reference

ID で割引を取得します。
不要になった割引を無効化または削除します。

API Reference

割引を削除します。
customer_eligibility が specific に設定されている割引について、利用できる顧客を管理します。
  • 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人の顧客の関連付けを解除します。

一般的なユースケース

  • Intro offers:新商品の期間限定ローンチプロモーション
  • Bulk or B2B:選択した商品セット向けの契約割引
  • Retention plays:解約防止ワークフローで使用する顧客呼び戻しコード
  • Seasonal campaigns:祝日やイベントに合わせたプロモーション

統合例

Metadata を使用して割引を作成する

内部トラッキング用のカスタム key–value ペアを付加します。
Metadata を使用して、キャンペーン、ソース、または内部参照 ID で割引にタグを付けます。これにより、後で利用状況を照合し、ROI を測定できます。

Checkout Sessions で割引を適用する

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

プラン変更中に割引を適用する

顧客がサブスクリプションをアップグレードまたはダウングレードする際に、プロモーション価格を提供します。
discount_codes パラメータは、割引の処理方法を制御します。
レスポンスのサブスクリプションの discounts 配列から、適用されたすべての割引を読み取ります。各エントリには discount_id、position、cycles_remaining、および元のコードが含まれます。

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

割引入力はデフォルトで表示されます。allow_discount_code を false に設定すると非表示にできます。

ベストプラクティス

  • 明確な名前を付ける:キャンペーン名に対応した、認識しやすいコードを使用します。
  • 期間を限定する:緊急性を高め、不正利用を防ぐために有効期限を設定します。
  • 適用範囲を適切に設定する:利益率の流出を避けるため、特定の商品に限定します。
  • 早期に検証する:チェックアウトを確定する前に、コードの適用可否を確認します。
  • 影響を監視する:キャンペーンごとに利用状況とコンバージョンを追跡します。
最終更新日 2026年10月8日