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(必須):Dashboard内で使用する内部ラベル。
  • Code(必須):顧客がチェックアウト時に入力する文字列。ランダムなコードを生成するか、独自のコードを入力できます(3文字以上。自動的に大文字に変換されます)。
  • Type(必須):Percentage(割合による割引)または Amount(定額の減額)。
  • Amount(必須):Percentageの場合、Dashboardでの割引率(例:15(15%の場合))。APIでは、同じ値をベーシスポイントで指定します(1500)。Amountの場合、コードのデフォルト通貨での定額の減額。
  • Start Date(任意):将来の日付にコードを有効化するよう予約します。すぐに有効化する場合は空欄にします。
  • Expiration Date(任意):この日付を過ぎるとコードは利用できなくなります。
  • Usage Limit(任意、Advanced内):全顧客を通算した最大利用回数。
  • Per-Customer Usage Limit(任意、Advanced内):1人の顧客が利用できる最大回数。両方を設定する場合、全体の使用回数上限以下である必要があります。
  • Customer Eligibility(任意):利用できる顧客を限定します — すべての顧客、初回購入の顧客、既存顧客、または指定した顧客リストから選択できます。
  • Currency Options(任意):販売する各通貨での割引額。通貨ごとのオプションを参照してください。
  • Product Restriction(任意):コードを特定の商品に限定します。
  • Subscription Cycle Limit(任意、Advanced内):割引を適用する請求サイクル数。無期限にする場合は空欄にします。
  • Preserve on Plan Change(任意):サブスクリプションのプラン変更後も割引を有効にします(preserve_on_plan_change)。
  • Metadata(任意):内部トラッキング用のカスタムキーと値のペアを付加します。
  • 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割引では、通貨オプションは必要ありません。
最低小計は、スタック内の先行する割引適用後の現在の合計ではなく、常にカートの元の価格を基準に計算されます。スタックの順序によって、最低額の条件を満たすかどうかが変わることはありません。

チェックアウト体験

顧客はチェックアウトのフィールドにDiscount codeを入力します。利用資格のあるコードはすぐに適用され、合計が更新されます。
注文合計に割引が適用されたチェックアウトページ
Checkout Sessionsでは、1つ以上のコードを事前適用するために discount_codes(配列)を渡します。割引入力フィールドはデフォルトで表示されます。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人の顧客を削除します。

一般的なユースケース

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

統合例

Metadataを付けてDiscountを作成

内部トラッキング用のカスタムキーと値のペアを付加します。
Metadataを使ってキャンペーン、ソース、または内部参照IDごとに割引をタグ付けすると、後から利用状況を照合し、ROIを測定できます。

Checkout SessionsにDiscountを適用

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

プラン変更時にDiscountを適用

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

Discount Codeフィールドを非表示にする

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

ベストプラクティス

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