Skip to main content
제품은 Dodo Payments의 기반입니다. 일회성 다운로드, 반복 구독 또는 사용량 기반 액세스를 판매하든, 제품을 생성하는 것에서 시작합니다. 각 제품은 가격 책정 방식, checkout에서의 표시 방식, 구매 후 fulfillment 방식을 정의합니다.

One-Time

평생 액세스 또는 단일 제공 항목에 대해 한 번만 요금을 청구합니다.

Subscriptions

trial, proration 및 add-on을 포함하여 일정에 따라 요금을 청구합니다.

Usage-Based

사용량을 측정하고 실제 사용량에 따라 요금을 청구합니다.

제품 생성

dashboard 또는 API를 통해 제품을 생성하세요. 먼저 가격 모델(One-Time, Subscription 또는 Usage-Based)을 선택한 다음 세부 정보를 구성합니다. 가격 모델은 변경할 수 없으므로 다른 모델이 필요하면 새 제품을 생성하세요.
1

Name and Description

명확한 제목과 간결하고 가치 중심적인 설명을 입력하세요. 설명에는 Markdown이 지원됩니다.
첫 문장은 고객을 대상으로 결과를 중심으로 작성하세요. 이 문장은 checkout에 눈에 띄게 표시됩니다.
제품 생성 양식을 표시하는 제품 dashboard
2

Pricing Model and Price

가격 모델을 선택하세요:
  • One-Time: 한 번 지불하는 고정 가격입니다.
  • Subscription: 청구 주기와 선택적 trial이 포함된 반복 가격입니다.
  • Usage-Based: 측정된 이벤트에서 산출되는 가격입니다.
그런 다음 가격을 설정하세요:
  • Price: 기본 금액과 통화입니다. Pay What You Want 제품을 제외하고 Dodo Payments가 지원하는 모든 통화로 기본 가격을 설정할 수 있습니다. 해당 제품의 기본 통화는 USD, GBP 또는 EUR이어야 합니다. 빠르게 이용할 수 있도록 USD, GBP, EUR 및 INR은 통화 선택기의 상단에 고정되어 있습니다.
  • Discount (%): checkout 및 invoice에 표시되는 선택적 백분율 할인입니다.
  • Subscription의 경우 Repeat every(예: 1개월 또는 1년), Trial days, 그리고 paid trial을 위한 선택적 Trial amount를 설정하세요. 0이 아닌 subscription 가격은 최소 $1(또는 선택한 통화로 이에 상응하는 금액)이어야 합니다. 정확히 $0인 가격도 지원되며, 고객이 카드 없이 $0 subscription을 시작하도록 설정할 수 있습니다. Card-Optional at Zero Price를 참조하세요. 음수 금액은 지원되지 않습니다.
Adaptive Currency를 켜면 기본 통화가 아닌 지역의 고객에게 현지 통화로 요금이 청구되므로, 시장에 가장 적합한 통화로 가격을 작성할 수 있습니다. 끄면 고객은 기본 통화로 결제합니다.
실시간 FX conversion 대신 통화 또는 국가별 고정 가격을 사용하고 싶으신가요? 제품에 pricing_mode를 설정하고 €9.99(EUR) 또는 인도 ₹999와 같은 Localized Pricing 규칙을 연결하세요.
가격을 편집하면 신규 고객이 지불하는 금액이 변경됩니다. 기존 subscription에는 새 가격이 적용되지 않으며, 각 subscription은 생성 당시의 가격을 유지합니다. 기존 subscriber를 다른 가격으로 변경하려면 Change Plan API를 사용하여 해당 플랜을 명시적으로 변경하세요. proration 설정은 가격 편집이 아니라 해당 플랜 변경에 적용됩니다.
3

Product Media

checkout 및 invoice에서 제품을 보여줄 이미지를 업로드하세요. 지원 형식은 PNG, JPG, WebP이며 최대 3MB입니다. 언제든지 이미지 순서를 변경하거나 교체할 수 있습니다.
4

Automated Entitlements

Entitlements 섹션에서 결제 후 자동으로 활성화되는 fulfillment를 연결하세요:
  • License Keys: 고유 키를 발급하고 검증합니다.
  • File Downloads: 보안 파일 액세스 권한을 부여합니다.
  • Custom: webhook을 통해 자체 entitlement 로직을 트리거합니다.
오퍼가 발전함에 따라 혜택을 추가하거나 제거하세요. 기존 구독자는 그에 따라 액세스 권한을 얻거나 잃습니다.

Variants 및 Pricing Options

하나의 제품 아래에 variant를 두는 대신 각 가격 옵션(예: Monthly 및 Yearly)에 대해 별도의 제품을 생성하세요. 그런 다음 이를 Product Collection으로 그룹화하여 모든 옵션을 하나의 checkout에 표시하고 Customer Portal에서 플랜 전환을 활성화하세요.
컬렉션에서 여러 제품 옵션을 표시하는 checkout 페이지

이 방식을 사용하는 이유

  • 명확한 가격 모델: 각 제품에는 하나의 명확한 가격 모델(일회성, subscription 또는 usage-based)만 있습니다.
  • 예측 가능한 API: 중첩된 variant 로직 없이 더 간단하게 통합할 수 있습니다.
  • 간편한 reporting: variant를 집계하지 않고 제품별 revenue 및 metric을 추적할 수 있습니다.
  • 유연한 checkout: 여러 제품을 나란히 표시하여 고객이 비교하고 선택할 수 있습니다.

Product Collection 작동 방식

  1. 제품 생성: 각 플랜(예: Starter Monthly, Starter Annual, Pro Monthly, Pro Annual)에 대해 개별 제품을 설정합니다.
  2. 컬렉션으로 그룹화: 관련 제품을 Product Collection에 추가합니다.
  3. 통합 checkout: 고객은 하나의 checkout에서 모든 옵션을 확인하고 원하는 플랜을 선택합니다.
  4. 플랜 전환: 고객은 Customer Portal을 통해 동일한 컬렉션 내 제품 간에 업그레이드하거나 다운그레이드할 수 있습니다.

Product Collections

관련 제품을 함께 그룹화하여 통합 checkout 경험과 업그레이드/다운그레이드 경로를 제공하세요.

제품 관리

대시보드를 통해 또는 API를 사용해 프로그래밍 방식으로 제품을 관리할 수 있습니다. API는 제품 생성, 업데이트, 조회, 이미지 업로드 및 보관에 대한 모든 제어 기능을 제공합니다.

대시보드 관리

  • Update: 이름, 설명, 이미지, 가격, field 및 benefit을 언제든지 편집할 수 있습니다(가격 모델은 변경할 수 없음).
  • Archive: 기존 고객에게 영향을 주지 않고 신규 구매에서 제품을 숨깁니다. 나중에 보관을 해제할 수 있습니다.
  • Drafts: 진행 중인 제품은 draft로 저장되므로 나중에 다시 작업할 수 있습니다. draft는 test mode와 live mode에 각각 별도로 저장되므로 한 모드에서 완료되지 않은 제품이 다른 모드에 영향을 주지 않습니다. Clear Draft를 사용하여 삭제하고 새로 시작하세요.
제품 및 컬렉션 양식 페이지에는 헤더 작업 버튼이 포함되어 있으므로 긴 양식의 맨 아래로 스크롤하지 않고도 저장할 수 있습니다.

API 관리

다음 지침에 따라 이미지를 업로드하는 것을 포함하여 제품을 생성, 업데이트, 관리 및 조회할 수 있습니다.
이름, 설명, 가격, 통화 및 recurring 제품인지 여부와 같은 세부 정보를 포함하여 POST 요청을 /products endpoint로 전송하세요.반복 제품의 경우 price 객체를 반복 가격(type: recurring_price)으로 설정하고, 해당 count와 함께 payment_frequency_interval 및 subscription_period_interval(Day, Week, Month 또는 Year)을 지정하세요.

Create Product API

Create Product API 문서에서 자세한 request 및 response 구조를 확인하세요.
PATCH 요청을 /products/{product_id} endpoint로 전송하세요. 다른 세부 정보는 그대로 유지하면서 이름, 가격 및 설명과 같은 property를 업데이트할 수 있습니다.endpoint의 product_id가 기존 제품과 일치하는지 확인하세요.

Update Product API

Update Product API 문서에서 자세한 request 및 response 구조를 확인하세요.
GET 요청을 /products endpoint로 전송하여 account에 저장된 제품 목록을 가져옵니다. 이를 통해 active 및 archived 제품을 포함한 제품 세부 정보를 검색할 수 있습니다.

Retrieve Products API

Retrieve Products API 문서에서 자세한 request 및 response 구조를 확인하세요.
API에서 제공하는 pre-signed URL을 사용하여 AWS S3에 이미지를 업로드함으로써 제품에 이미지를 연결합니다. 먼저 /products/{product_id}/images endpoint에서 이미지 upload URL을 요청한 다음, 제공된 URL을 사용하여 60초 이내에 이미지를 업로드하세요.
사전 서명 URL은 60초 후 만료되므로 해당 시간 내에 이미지를 업로드해야 합니다.
API에서 사전 서명 URL을 받으면 PUT method를 사용해 이미지를 업로드하세요. 이를 통해 이미지 업로드를 위한 AWS S3에 대한 안전하고 일시적인 액세스를 보장합니다.S3 업로드에 지원되는 라이브러리:
  • Node.js: axios, node-fetch
  • Python: requests, boto3
  • Go: net/http
  • PHP: GuzzleHttp
  • Ruby: rest-client
업로드에 성공하면 AWS S3는 200 OK status를 반환하여 이미지가 성공적으로 저장되었음을 나타냅니다.

Upload Product Image API

Upload Product Image API 문서에서 자세한 request 및 response 구조를 확인하세요.
DELETE 요청을 /products/{id} endpoint로 전송하여 제품을 영구적으로 삭제하지 않고 신규 구매에서 숨깁니다.

Archive Product API

Archive Product API 문서에서 자세한 request 및 response 구조를 확인하세요.
POST 요청을 /products/{product_id}/unarchive endpoint로 전송하여 archived 제품을 복원합니다. 이렇게 하면 제품이 다시 활성화되어 사용할 수 있습니다.

Unarchive Product API

Unarchive Product API 문서에서 자세한 request 및 response 구조를 확인하세요.
제품에서 payment 또는 subscription flow를 생성하고, benefit 및 webhook을 통해 자동으로 fulfillment를 처리하세요.

Checkout Sessions

one-time 또는 subscription 구매를 위한 checkout session을 생성합니다.

Payment Webhooks

payment lifecycle event에 대응합니다.

Subscription Webhooks

subscription 생성, 갱신 및 취소 event를 처리합니다.

Best Practices

  • 명확하게 시작하기: 각 가격 옵션(Monthly와 Yearly)에 대해 별도의 제품을 사용하세요.
  • 신중하게 trial 사용하기: activation을 높일 수 있도록 trial을 onboarding과 함께 사용하세요.
  • fulfillment 자동화하기: benefit과 webhook을 사용하여 즉시 제공하세요.
  • metadata로 태그하기: reconciliation을 위해 시스템 ID를 저장하세요.

관련 항목

Product Analytics

각 개별 제품의 revenue, customer, retention, subscriber 및 MRR을 추적합니다.

Localized Pricing

실시간 환율에 의존하지 않고 제품에 통화별 또는 국가별 고정 가격을 설정합니다.
마지막 수정일 2026년 9월 26일