Skip to main content
업셀과 다운셀을 통해 고객이 저장한 결제 수단을 사용하여 추가 상품이나 요금제 변경을 제안할 수 있습니다. 이는 결제 수집을 생략한 원클릭 구매를 가능하게 하여 전환율을 극적으로 향상시킵니다.

Post-Purchase Upsells

체크아웃 직후 보완 상품을 원클릭으로 제공하세요.

Subscription Upgrades

자동 비례 배분과 즉각적인 청구로 고객을 상위 요금제로 이동시키세요.

Cross-Sells

기존 고객에게 결제 정보를 다시 입력받지 않고 관련 상품을 추가하세요.

개요

업셀과 다운셀은 강력한 수익 최적화 전략입니다:
  • 업셀: 더 높은 가치의 제품 또는 업그레이드 제안 (예: 기본 대신 프로 플랜)
  • 다운셀: 고객이 거절하거나 다운그레이드할 때 낮은 가격의 대안 제안
  • 교차 판매: 보완 제품 제안 (예: 추가 기능, 관련 항목)
Dodo Payments는 payment_method_id 매개변수를 통해 이러한 흐름을 가능하게 하며, 고객이 카드 정보를 다시 입력하지 않아도 저장된 결제 수단을 청구할 수 있게 해줍니다.

주요 이점

작동 방식

필수 조건

업셀과 다운셀을 구현하기 전에 다음을 확인하세요:
  • 저장된 payment methods가 있는 고객(첫 구매 후 자동으로 저장됨)
  • 대시보드에서 구성한 upsell 상품(one-time payments, subscriptions 또는 add-ons)
  • payment.succeeded, payment.failed 및 subscription.plan_changed 이벤트를 처리하도록 구성된 webhook endpoint

고객 payment methods 가져오기

upsell을 제공하기 전에 고객의 저장된 payment methods를 가져옵니다:
고객이 checkout을 완료하면 payment methods가 자동으로 저장됩니다. 명시적으로 저장할 필요가 없습니다.

구매 후 원클릭 upsell

구매가 성공적으로 완료된 직후 추가 상품을 제공합니다. payment method가 이미 저장되어 있으므로 고객은 한 번의 클릭으로 수락할 수 있습니다.

구현

checkout session에 payment_method_id를 전달할 때는 confirm: true도 설정하고 기존 customer_id를 제공해야 합니다. payment method는 해당 고객에게 속해야 합니다. POST /payments에는 confirm 필드가 없습니다.

Subscription 업그레이드

자동 proration 처리와 함께 고객을 더 높은 등급의 subscription plan으로 이동합니다.

확정 전 미리 보기

고객에게 실제 청구 금액을 정확히 보여주려면 항상 plan 변경을 미리 확인합니다:

업그레이드 실행

Proration 모드

업그레이드 시 고객에게 청구할 방식을 선택합니다:

difference_immediately

가격 차액을 즉시 청구합니다($30→$80 = $50). 간단한 업그레이드에 적합합니다.

prorated_immediately

기존 plan의 사용하지 않은 기간을 credit으로 처리한 후 새 plan의 전체 cycle 요금을 청구합니다. 사용하지 않은 기간을 credit으로 제공할 때 적합합니다.

full_immediately

새 plan의 전체 가격을 청구하고 남은 기간은 무시합니다. billing cycle을 재설정할 때 적합합니다.

do_not_bill

즉시 청구 없이 plan을 변경합니다. 다음 renewal 시 새 plan이 청구되며 기존 billing date는 유지됩니다. courtesy 업그레이드와 무료 migration에 적합합니다.
간단한 업그레이드 흐름에는 difference_immediately를 사용하세요. 청구 금액은 단순한 가격 차액입니다. 현재 plan에서 사용하지 않은 기간을 고객에게 credit으로 제공하고 새 plan의 전체 cycle 요금을 청구하려면 prorated_immediately를 사용하세요.

Cross-sell

고객이 결제 정보를 다시 입력하지 않아도 기존 고객에게 보완 상품을 추가합니다.

구현

Subscription 다운그레이드

고객이 더 낮은 등급의 plan으로 이동하려는 경우 자동 credit을 사용해 전환을 원활하게 처리합니다.

다운그레이드 작동 방식

  1. 고객이 다운그레이드를 요청합니다(Pro → Basic)
  2. 시스템이 현재 plan의 남은 가치를 계산합니다
  3. 향후 renewal을 위해 subscription에 credit이 추가됩니다
  4. 고객이 즉시 새 plan으로 이동합니다
difference_immediately를 사용한 다운그레이드 credit은 subscription 범위에 적용되며 향후 renewal에 자동으로 적용됩니다. 이는 Credit-Based Billing entitlement와는 별개입니다.

전체 예시: 구매 후 upsell 흐름

다음은 구매 성공 후 upsell을 제공하는 전체 구현 예시입니다:

모범 사례

  • 전략적으로 시점 선택: 고객이 구매 의사가 있는 성공적인 구매 직후에 upsell을 제안하세요. 그 외 효과적인 시점으로는 기능 사용 milestone 이후, plan 한도에 가까워졌을 때, onboarding 완료 시점이 있습니다.
  • payment methods 검증: 원클릭 결제를 시도하기 전에 payment method가 상품의 currency와 호환되는지, 만료되지 않았는지, 고객에게 속하는지 확인하세요.
  • 실패를 원활하게 처리: 원클릭 결제가 실패하면 standard checkout 흐름으로 전환하고, 명확한 메시지로 고객에게 알리며, payment method 업데이트를 안내하세요.
  • 명확한 가치 제공: 고객이 현재 plan과 비교해 무엇을 얻는지 보여주고, 전체 가격이 아닌 가격 차이를 강조하며, social proof를 활용하세요.
  • 고객의 선택 존중: 항상 쉽게 거절할 방법을 제공하고, 거절한 후 동일한 upsell을 반복해서 표시하지 않으며, 어떤 upsell이 전환되는지 추적해 제안을 최적화하세요.

모니터링할 Webhooks

upsell 및 downgrade 흐름에서 다음 webhook 이벤트를 추적하세요:

Webhook Integration Guide

webhook endpoint를 설정하고 확인하는 방법을 알아보세요.

관련 리소스

Subscription Upgrade Guide

plan 변경, proration 모드 및 실패 처리에 대한 자세한 가이드입니다.

Checkout Sessions

모든 옵션을 사용해 checkout session을 생성하는 전체 reference입니다.

Customer Payment Methods API

고객 payment methods를 나열하는 API reference입니다.

Add-ons

추가 수익을 위해 유연한 add-ons로 subscriptions를 강화하세요.
마지막 수정일 2026년 9월 26일