Skip to main content
이 튜토리얼에서는 Dodo Payments add-ons를 사용하여 좌석 기반 가격을 구현하는 방법을 보여줍니다. 추가 좌석용 add-ons가 포함된 구독 상품을 만들고, 사용자 지정 add-on 수량으로 결제 링크를 생성합니다.
이 튜토리얼에서는 Node.js와 Express를 사용합니다. 사용 중인 프레임워크(Next.js, React, Vue 등)에 맞게 코드를 조정하고 애플리케이션에 맞도록 UI를 사용자 지정할 수 있습니다.
이 튜토리얼이 끝나면 다음을 수행할 수 있습니다:
  • 좌석 기반 가격 책정으로 구독 제품 만들기
  • 추가 좌석을 위한 추가 기능 설정
  • 사용자 지정 추가 기능 수량으로 결제 링크 생성
  • 동적 좌석 수로 체크아웃 세션 처리

우리가 만들고 있는 것

좌석 기반 가격 모델을 만들어 보겠습니다:
  • 기본 플랜: 최대 팀원 5명까지 월 $49
  • 좌석 Add-on: 추가 좌석당 월 $2
  • Payment Links: 사용자 지정 좌석 수량을 지원하는 동적 checkout
시작하기 전에 다음이 준비되어 있는지 확인하세요:
  • Dodo Payments 계정
  • TypeScript/Node.js에 대한 기본적인 이해

1단계: 좌석 추가 기능 만들기

추가 좌석을 나타내는 add-on을 생성합니다. 이 add-on은 기본 구독에 연결되며 고객이 추가 좌석을 구매할 수 있도록 합니다.
대시보드에서 좌석 add-on 생성
빌드할 항목: 좌석당 월 $2가 부과되며 모든 기본 구독에 추가할 수 있는 add-on입니다.
1

Navigate to Add-Ons

  1. Dodo Payments 대시보드에서 Products 섹션에 머물러 있습니다.
  2. Add-Ons 탭을 클릭하세요.
  3. Create Add-On을 클릭하세요.
이제 추가 기능 생성 폼이 열립니다.
2

Enter add-on details

다음 값을 좌석 추가 기능에 입력하세요:Add-On Name: Additional Team SeatDescription: Add extra team members to your workspace with full access to all featuresPrice: → 2.00를 입력하세요통화: 기본 구독 통화와 일치해야 합니다.세금 카테고리: 제품에 적합한 카테고리를 선택하세요.
3

Save your add-on

  1. 모든 설정을 검토합니다.
    • 이름: Additional Team Seat
    • 가격: 월 $2.00
  2. Create Add-On을 클릭합니다.
추가 기능이 생성되었습니다! 좌석 추가 기능을 이제 구독에 연결할 수 있습니다.

2단계: 기본 구독 제품 만들기

팀원 5명이 포함된 기본 구독 상품을 생성합니다. 이 상품은 좌석 기반 가격 모델의 기반이 됩니다.
대시보드에서 기본 구독 상품 생성
1

Navigate to Products

  1. Dodo Payments 대시보드에 로그인하세요.
  2. 왼쪽 사이드바에서 Products를 클릭하세요.
  3. Create Product 버튼을 클릭하세요.
  4. 상품 유형으로 Subscription을 선택하세요.
기본 구독을 구성할 수 있는 폼이 표시됩니다.
2

Fill in the subscription details

이제 기본 요금제에 대한 구체적인 세부 정보를 입력합니다:Product Name: MotionDescription: Where your team's documentation lives.Recurring Price: → 49.00를 입력하세요Billing Cycle: → Monthly를 선택하세요Currency: 원하는 통화를 선택하세요(예: USD)

3단계: 추가 기능을 구독에 연결하기

고객이 checkout 중에 추가 좌석을 구매할 수 있도록 좌석 add-on을 기본 구독에 연결합니다.
1

Attach the seat add-on

대시보드에서 구독에 add-on 연결
  1. 추가 기능 섹션으로 스크롤하세요.
  2. 추가 기능 추가를 클릭하세요.
  3. 드롭다운에서 좌석 추가 기능을 선택하세요.
  4. 구독 구성에 추가 기능이 표시되는지 확인하세요.
2

Save subscription changes

  1. 전체 구독 설정을 검토합니다:
    • 기본 플랜: 5개 좌석에 $49/월
    • 추가 기능: 추가 좌석당 $2/월
  2. 변경 사항 저장을 클릭합니다
좌석 기반 가격이 구성되었습니다! 이제 고객은 기본 플랜을 구매하고 필요에 따라 좌석을 추가할 수 있습니다.
사용자 지정 add-on 수량으로 결제 링크를 생성하는 Express.js 애플리케이션을 만듭니다. 이를 통해 원하는 수의 추가 좌석으로 checkout 세션을 동적으로 생성할 수 있습니다.
1

Set up your project

새 Node.js 프로젝트를 만들고 필요한 dependencies를 설치합니다:
tsconfig.json 파일을 생성합니다:
2

Create your environment file

Dodo Payments API key가 포함된 .env 파일을 생성합니다:
API key를 version control에 절대 commit하지 마세요. .gitignore 파일에 .env를 추가합니다.
3

Implement the checkout session creation

다음 코드가 포함된 src/server.ts 파일을 생성합니다:
4

Add a simple web interface

간편한 테스트를 위해 public/index.html 파일을 생성합니다:
Web interface가 생성되었습니다! 이제 다양한 좌석 수량을 테스트할 수 있는 간단한 UI가 준비되었습니다.
5

Serve static files

HTML 파일을 제공하도록 src/server.ts에 다음을 추가합니다:
Static files가 구성되었습니다! http://localhost:3000를 방문하여 데모 interface를 확인합니다.

5단계: 구현 테스트

좌석 기반 가격 구현이 올바르게 작동하는지 테스트해 보겠습니다.
1

Start your server

  1. 올바른 API key가 포함된 .env 파일이 있는지 확인합니다.
  2. 코드의 product 및 add-on ID를 Dodo Payments 대시보드의 실제 값으로 업데이트합니다.
  3. 서버를 시작합니다:
서버가 성공적으로 시작되고 “Server is running on port 3000”이 표시되어야 합니다.
2

Test the web interface

좌석 기반 가격 데모 interface
  1. 브라우저를 열고 http://localhost:3000로 이동합니다.
  2. 좌석 기반 가격 데모 interface가 표시되어야 합니다.
  3. 다양한 좌석 수량(0, 3, 10 등)을 시도합니다.
  4. 각 수량에 대해 “Generate Checkout Link”를 클릭합니다.
  5. checkout URL이 올바르게 생성되는지 확인합니다.
3

Test a checkout session

  1. 추가 좌석 3개로 checkout link를 생성합니다.
  2. checkout URL을 클릭하여 Dodo Payments checkout을 엽니다.
  3. checkout에 다음 항목이 표시되는지 확인합니다.
    • 기본 플랜: 월 $49
    • 추가 좌석: 3 × 2 dollars = 월 $6
  4. 테스트 구매를 완료합니다.
checkout에는 올바른 가격 내역이 표시되고 구매를 완료할 수 있어야 합니다.
4

Listen for webhooks and update your database

Dodo Payments의 webhook event를 수신하여 구독 및 좌석 변경 사항과 database를 동기화된 상태로 유지합니다. Webhook은 고객이 checkout을 완료하거나 구독을 업데이트하거나 좌석 수를 변경할 때 backend에 알림을 보냅니다.webhook endpoint를 설정하고 event를 처리하는 단계별 지침은 공식 Dodo Payments webhooks 가이드를 따르세요:

Dodo Payments Webhooks Documentation

구독 및 좌석 관리를 위해 webhook event를 안전하게 수신하고 처리하는 방법을 알아보세요.

문제 해결

일반적인 문제와 해결 방법입니다:
가능한 원인:
  • 유효하지 않은 product ID 또는 add-on ID
  • API key에 충분한 permission이 없음
  • Add-on이 subscription에 올바르게 연결되지 않음
  • Network connectivity 문제
해결 방법:
  1. Dodo Payments 대시보드에 product 및 add-on ID가 존재하는지 확인합니다.
  2. add-on이 subscription에 올바르게 연결되어 있는지 확인합니다.
  3. API key에 checkout session 생성 permission이 있는지 확인합니다.
  4. 간단한 GET request로 API connectivity를 테스트합니다.

축하합니다! 좌석 기반 가격을 구현했습니다

Dodo Payments를 사용하여 좌석 기반 가격 시스템을 성공적으로 만들었습니다. 다음 작업을 완료했습니다:

Base Subscription

월 $49에 좌석 5개가 포함된 구독 상품 생성

Seat Add-ons

좌석당 월 $2의 추가 좌석용 add-on 구성

Checkout

사용자 지정 좌석 수량으로 checkout session을 생성하는 API 구축

Web Interface

다양한 좌석 수량을 테스트할 수 있는 간단한 web interface 생성
이 예제는 좌석 기반 가격의 최소 구현을 보여줍니다. Production 환경에서는 error handling, authentication, data validation, security measures를 추가하고 애플리케이션의 요구 사항에 맞게 로직을 조정하세요.
마지막 수정일 2026년 9월 28일