제품은 Dodo Payments의 기반입니다. 일회성 다운로드, 반복 구독, 사용량 기반 액세스 등을 판매하든, 제품을 생성하는 것부터 시작합니다. 각 제품은 가격 책정 방식, 체크아웃에서의 표시 방식, 구매 후 이행 방식 등을 정의합니다.
One‑Time
평생 이용 권한이나 단일 전달 품목에 대해 한 번만 비용을 부과합니다.
Subscriptions
시범판, 정산, 애드온이 포함된 일정에 따라 과금합니다.
Usage‑Based
실제 사용량에 따라 계량 소비 및 요금 청구.
제품 생성
대시보드 또는 API를 통해 제품을 생성할 수 있습니다. 가격 모델을 미리 선택하고, 일회성, 구독 또는 사용 기반으로 설정한 후 세부 정보를 구성하세요. 가격 모델은 나중에 변경할 수 없으므로, 다른 모델이 필요하면 새 제품을 생성하세요.1
Name & description
명확한 제목과 핵심 가치 중심의 간결한 설명을 제공합니다. 설명에는 Markdown을 사용할 수 있습니다.

2
Pricing model & price
가격 모델을 선택하세요:
- 일회성: 한 번 지불하는 고정 가격.
- 구독: 간격과 선택적 시험이 있는 반복 가격.
- 사용 기반: 측정된 이벤트에서 파생된 가격.
- Price: 기본 금액 및 통화입니다. USD뿐 아니라 Dodo Payments에서 청구할 수 있는 모든 통화로 기본 가격을 설정할 수 있습니다. 검색 가능한 통화 선택기를 사용해 통화를 찾으세요. USD, GBP, EUR, INR은 목록 상단에 고정되어 있습니다.
- Discount (%): checkout 및 인보이스에 표시되는 선택적 인라인 할인입니다.
- 구독의 경우 Repeat every(예: 1개월 또는 1년), Trial days, 선택적 유료 체험을 위한 Trial amount를 설정하세요. 구독 가격은 최소 $1(또는 선택한 통화로 이에 상응하는 금액)이어야 합니다. 이 최소 금액보다 낮은 금액은 지원되지 않으며 구독이 작동하지 않습니다.
기본 통화가 아닌 지역의 고객에게도 Adaptive Currency를 통해 계속 청구되므로, 구매자에게 청구되는 방식은 변경하지 않고 시장에 가장 적합한 통화로 가격을 설정할 수 있습니다.
3
Product media
checkout 및 인보이스에서 제품을 선보일 이미지를 업로드하세요. 최대 3MB의 PNG/JPG/WebP를 지원합니다. 언제든지 순서를 변경하거나 교체할 수 있습니다.
4
Automated entitlements (Under Advanced Settings)
결제 후 자동으로 활성화되는 fulfillment를 연결하세요:
- License Keys: 고유 키를 발급하고 검증합니다
- File Downloads: 안전한 파일 액세스 권한을 부여합니다
- Custom: 웹훅을 통해 자체 entitlement 로직을 트리거합니다
Variants 및 가격 옵션
하나의 제품 아래에 variants를 만드는 대신, 각 가격 옵션(예: Monthly 및 Yearly)에 대해 별도의 제품을 만드세요. 그런 다음 이를 Product Collection으로 그룹화하여 모든 옵션을 하나의 checkout에서 제공하고 Customer Portal에서 플랜 전환을 활성화할 수 있습니다.
이 접근 방식을 사용하는 이유
- 명확한 가격 모델: 각 제품은 하나의 명확한 가격 모델(일회성, 구독 또는 사용량 기반)을 가집니다.
- 예측 가능한 API: 중첩된 variant 로직 없이 더 간단하게 통합할 수 있습니다.
- 간편한 리포팅: variant 집계 없이 제품별 매출 및 지표를 추적할 수 있습니다.
- 유연한 checkout: 여러 제품을 나란히 표시하여 고객이 비교하고 선택할 수 있습니다.
Product Collections 작동 방식
- 제품 생성: 각 플랜에 대해 개별 제품을 설정합니다(예: Starter Monthly, Starter Annual, Pro Monthly, Pro Annual).
- 컬렉션으로 그룹화: 관련 제품을 Product Collection에 추가합니다.
- 통합 checkout: 고객은 하나의 checkout에서 모든 옵션을 확인하고 원하는 플랜을 선택합니다.
- 플랜 전환: 고객은 Customer Portal을 통해 동일한 컬렉션의 제품 간에 업그레이드하거나 다운그레이드할 수 있습니다.
Product Collections
통합 checkout 환경과 원활한 업그레이드/다운그레이드 경로를 위해 관련 제품을 함께 그룹화하세요.
제품 관리
대시보드를 통해 또는 API를 사용해 프로그래밍 방식으로 제품을 관리할 수 있습니다. API는 제품 생성, 업데이트, 조회, 이미지 업로드 및 보관에 대한 모든 제어 기능을 제공합니다.대시보드 관리
- 업데이트: 언제든지 이름, 설명, 이미지, 가격, 필드 및 혜택을 수정할 수 있습니다(가격 모델은 변경할 수 없음).
- 보관: 기존 고객에게 영향을 주지 않고 신규 구매에서 제품을 숨깁니다. 나중에 보관을 해제할 수 있습니다.
- 초안: 작성 중인 제품은 초안으로 저장되므로 나중에 다시 작업할 수 있습니다. 초안은 test mode와 live mode에 별도로 보관되므로 한 모드에서 완료되지 않은 제품이 다른 모드에 영향을 주지 않습니다. Clear Draft를 사용하면 초안을 삭제하고 새로 시작할 수 있습니다.
API 관리
다음 지침에 따라 이미지를 업로드하는 것을 포함하여 제품을 생성, 업데이트, 관리 및 조회할 수 있습니다.Creating a Product
Creating a Product
제품은 일회성 항목이거나 구독 기반 서비스일 수 있습니다. 새 제품을 생성하려면 이름, 설명, 가격, 통화 및 반복 제품인지 여부와 같은 세부 정보가 포함된
POST 요청을 /products endpoint로 전송하세요.반복 제품의 경우 price 객체를 반복 가격(type: recurring_price)으로 설정하고, 해당 count와 함께 payment_frequency_interval 및 subscription_period_interval(Day, Week, Month 또는 Year)을 지정하세요.Create Product API
자세한 요청 및 응답 구조는 Create Product API 문서에서 확인하세요.
Updating a Product
Updating a Product
기존 제품을 수정하려면
PATCH 요청을 /products/{product_id} endpoint로 전송하세요. 다른 세부 정보는 변경하지 않고 이름, 가격 및 설명과 같은 속성을 업데이트할 수 있습니다.endpoint의 product_id가 기존 제품과 일치하는지 확인하세요.Update Product API
자세한 요청 및 응답 구조는 Update Product API 문서에서 확인하세요.
Retrieving Products
Retrieving Products
GET 요청을 /products endpoint로 전송하여 계정에 저장된 제품 목록을 가져올 수 있습니다. 이를 통해 활성 제품 및 보관된 제품을 포함한 제품 세부 정보를 조회할 수 있습니다.Retrieve Products API
자세한 요청 및 응답 구조는 Retrieve Products API 문서에서 확인하세요.
Uploading Product Images
Uploading Product Images
API에서 제공하는 사전 서명 URL을 사용하여 AWS S3에 이미지를 업로드하면 제품에 이미지를 연결할 수 있습니다. 먼저
/products/{product_id}/images endpoint에서 이미지 업로드 URL을 요청한 다음, 제공된 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
200 OK status를 반환하여 이미지가 성공적으로 저장되었음을 나타냅니다.Upload Product Image API
자세한 요청 및 응답 구조는 Upload Product Image API 문서에서 확인하세요.
Archiving a Product
Archiving a Product
제품을 더 이상 표시하거나 사용하지 않으려면
DELETE 요청을 /products/{id} endpoint로 전송하여 보관할 수 있습니다. 이 작업은 제품을 숨기지만 영구적으로 삭제하지는 않습니다.Archive Product API
자세한 요청 및 응답 구조는 Archive Product API 문서에서 확인하세요.
Unarchiving a Product
Unarchiving a Product
보관된 제품을 복원해야 하는 경우
POST 요청을 /products/{product_id}/unarchive endpoint로 전송하세요. 그러면 제품이 다시 활성화되어 사용할 수 있게 됩니다.Unarchive Product API
자세한 요청 및 응답 구조는 Unarchive Product API 문서에서 확인하세요.
Checkout & fulfillment
Checkout & fulfillment
제품에서 결제 또는 구독 흐름을 생성하고, 혜택 및 웹훅을 통해 자동으로 fulfillment를 처리하세요.
Checkout Sessions
일회성 또는 구독 구매를 위한 checkout session을 생성합니다.
Payment Webhooks
결제 lifecycle event에 대응합니다.
Subscription Webhooks
구독 생성, 갱신 및 취소 event를 처리합니다.
모범 사례
- 명확하게 시작하기: 각 가격 옵션(Monthly와 Yearly)에 대해 별도의 제품을 사용합니다.
- 신중하게 체험판 사용하기: 활성화를 유도할 수 있도록 체험판을 온보딩과 함께 사용합니다.
- fulfillment 자동화: 혜택 및 웹훅을 사용해 즉시 제공합니다.
- 메타데이터로 태그하기: 대조를 위해 시스템 ID를 저장합니다.
이제 제품을 생성하고 일회성, 반복 또는 사용량 기반으로 판매를 시작할 수 있습니다.
관련 항목
Product Analytics
각 개별 제품의 매출, 고객, 유지율, 구독자 및 MRR을 추적합니다.
Localized Pricing
실시간 환율에 의존하는 대신 제품에 통화 또는 국가별 고정 가격을 설정합니다.