One-Time
Tính phí một lần cho quyền truy cập trọn đời hoặc một deliverable duy nhất.
Subscriptions
Tính phí theo lịch với trial, proration và add-on.
Usage-Based
Đo lường mức tiêu thụ và tính phí theo usage thực tế.
Tạo Product
Tạo products từ dashboard hoặc qua API. Chọn pricing model ngay từ đầu—One-Time, Subscription hoặc Usage-Based—sau đó cấu hình các thông tin chi tiết. Pricing model là immutable; hãy tạo product mới nếu bạn cần một model khác.1
Name and Description
Cung cấp tiêu đề rõ ràng và mô tả ngắn gọn, tập trung vào giá trị. Mô tả hỗ trợ Markdown.

2
Pricing Model and Price
Chọn pricing model:
- One-Time: Giá cố định được thanh toán một lần.
- Subscription: Giá định kỳ theo khoảng thời gian và trial tùy chọn.
- Usage-Based: Giá được tính dựa trên các event được đo lường.
- Price: Số tiền cơ bản và currency. Bạn có thể đặt base price bằng bất kỳ currency nào được Dodo Payments hỗ trợ, ngoại trừ các product Pay What You Want, có base currency phải là USD, GBP hoặc EUR. USD, GBP, EUR và INR được ghim ở đầu currency selector để truy cập nhanh.
- Discount (%): Phần trăm giảm giá tùy chọn được hiển thị tại checkout và trên invoice.
- Với subscription, hãy đặt Repeat every (ví dụ: 1 tháng hoặc 1 năm), Trial days và Trial amount tùy chọn cho paid trial. Subscription price khác 0 phải tối thiểu là $1 (hoặc giá trị tương đương theo currency bạn chọn). Giá chính xác là $0 cũng được hỗ trợ và bạn có thể cho phép khách hàng bắt đầu subscription $0 mà không cần card; xem Card-Optional at Zero Price. Không hỗ trợ số tiền âm.
Khi bật Adaptive Currency, khách hàng bên ngoài base currency của bạn sẽ được tính phí bằng local currency, vì vậy bạn có thể tạo giá bằng currency phù hợp nhất với thị trường của mình. Khi tắt, họ sẽ thanh toán bằng base currency của bạn.
3
Product Media
Upload hình ảnh để giới thiệu product tại checkout và trên invoice. Các format được hỗ trợ: PNG, JPG, WebP, tối đa 3 MB. Bạn có thể sắp xếp lại hoặc thay thế hình ảnh bất kỳ lúc nào.
4
Automated Entitlements
Trong phần Entitlements, hãy đính kèm fulfillment được kích hoạt tự động sau khi thanh toán:
- License Keys: Phát hành và xác thực các key duy nhất.
- File Downloads: Cấp quyền truy cập file an toàn.
- Custom: Kích hoạt logic entitlement của riêng bạn thông qua webhooks.
Variants và Pricing Options
Thay vì tạo variants trong một product, hãy tạo các product riêng cho từng pricing option (ví dụ: Monthly và Yearly). Sau đó nhóm chúng vào một Product Collection để hiển thị tất cả option trong cùng một checkout và bật khả năng chuyển plan trong Customer Portal.
Tại sao nên sử dụng phương pháp này?
- Pricing model rõ ràng: Mỗi product có một pricing model duy nhất, được xác định rõ (one-time, subscription hoặc usage-based).
- API dễ dự đoán: Tích hợp đơn giản hơn mà không cần logic variant lồng nhau.
- Báo cáo dễ dàng hơn: Theo dõi doanh thu và metrics theo từng product mà không cần tổng hợp variant.
- Checkout linh hoạt: Hiển thị nhiều product cạnh nhau để khách hàng so sánh và lựa chọn.
Product Collections hoạt động như thế nào
- Tạo products: Thiết lập các product riêng cho từng plan (ví dụ: Starter Monthly, Starter Annual, Pro Monthly, Pro Annual).
- Nhóm vào một collection: Thêm các product liên quan vào một Product Collection.
- Checkout hợp nhất: Khách hàng nhìn thấy tất cả option trong một checkout và chọn plan mong muốn.
- Chuyển plan: Khách hàng có thể upgrade hoặc downgrade giữa các product trong cùng collection thông qua Customer Portal.
Product Collections
Nhóm các product liên quan lại để tạo trải nghiệm checkout hợp nhất và các lộ trình upgrade/downgrade.
Quản lý Products
Bạn có thể quản lý product thông qua dashboard hoặc lập trình bằng API. API cung cấp toàn quyền kiểm soát việc tạo, cập nhật, truy xuất, tải hình ảnh lên và lưu trữ product.Quản lý trên Dashboard
- Update: Chỉnh sửa name, description, images, price, fields và benefits bất kỳ lúc nào (pricing model là immutable).
- Archive: Ẩn product khỏi các giao dịch mua mới mà không làm gián đoạn khách hàng hiện tại. Bạn có thể unarchive sau đó.
- Drafts: Product đang trong quá trình hoàn thiện sẽ được lưu dưới dạng draft để bạn có thể quay lại sau. Draft được lưu riêng cho test mode và live mode, vì vậy product chưa hoàn tất ở một mode sẽ không ảnh hưởng sang mode còn lại. Sử dụng Clear Draft để loại bỏ draft và bắt đầu lại.
Quản lý bằng API
Các hướng dẫn sau đây cho phép bạn tạo, cập nhật, quản lý và truy xuất product, bao gồm cả việc tải hình ảnh lên.Creating a Product
Creating a Product
Gửi request
POST đến endpoint /products với các thông tin như name, description, price, currency và liệu product có phải là recurring product hay không.Đối với recurring product, hãy đặt object price thành giá recurring (type: recurring_price) và chỉ định payment_frequency_interval và subscription_period_interval (Day, Week, Month hoặc Year) cùng với số lượng tương ứng.Create Product API
Xem cấu trúc request và response chi tiết trong tài liệu Create Product API.
Updating a Product
Updating a Product
Gửi request
PATCH đến endpoint /products/{product_id}. Bạn có thể cập nhật các thuộc tính như name, price và description trong khi giữ nguyên các thông tin chi tiết khác.Đảm bảo rằng product_id trong endpoint khớp với một product hiện có.Update Product API
Xem cấu trúc request và response chi tiết trong tài liệu Update Product API.
Retrieving Products
Retrieving Products
Lấy danh sách products được lưu trong account của bạn bằng request
GET đến endpoint /products. Điều này cho phép bạn lấy thông tin chi tiết của product, bao gồm cả product active và archived.Retrieve Products API
Xem cấu trúc request và response chi tiết trong tài liệu Retrieve Products API.
Uploading Product Images
Uploading Product Images
Liên kết một hình ảnh với product bằng cách upload hình ảnh lên AWS S3 thông qua pre-signed URL do API cung cấp. Trước tiên, yêu cầu image upload URL từ endpoint
/products/{product_id}/images, sau đó sử dụng URL được cung cấp để upload hình ảnh trong vòng 60 giây.Sau khi nhận được pre-signed URL từ API, hãy tải hình ảnh lên bằng method PUT. Điều này đảm bảo quyền truy cập an toàn và tạm thời vào AWS S3 để tải hình ảnh lên.Các thư viện được hỗ trợ để tải lên S3:- Node.js:
axios,node-fetch - Python:
requests,boto3 - Go:
net/http - PHP:
GuzzleHttp - Ruby:
rest-client
200 OK, cho biết hình ảnh đã được lưu trữ thành công.Upload Product Image API
Xem cấu trúc request và response chi tiết trong tài liệu Upload Product Image API.
Archiving a Product
Archiving a Product
Ẩn product khỏi các giao dịch mua mới mà không xóa vĩnh viễn bằng request
DELETE đến endpoint /products/{id}.Archive Product API
Xem cấu trúc request và response chi tiết trong tài liệu Archive Product API.
Unarchiving a Product
Unarchiving a Product
Khôi phục một product đã archive bằng cách gửi request
POST đến endpoint /products/{product_id}/unarchive. Thao tác này kích hoạt lại product và giúp product sẵn sàng được sử dụng.Unarchive Product API
Xem cấu trúc request và response chi tiết trong tài liệu Unarchive Product API.
Checkout and Fulfillment
Checkout and Fulfillment
Tạo các flow thanh toán hoặc subscription từ products và tự động fulfillment thông qua benefits và webhooks.
Checkout Sessions
Tạo checkout sessions cho các giao dịch mua one-time hoặc subscription.
Payment Webhooks
Phản hồi các event trong vòng đời thanh toán.
Subscription Webhooks
Xử lý các event subscription được tạo, gia hạn và hủy.
Best Practices
- Bắt đầu bằng sự rõ ràng: Tạo product riêng cho từng pricing option (Monthly và Yearly).
- Sử dụng trial hợp lý: Kết hợp trial với onboarding để thúc đẩy activation.
- Tự động hóa fulfillment: Sử dụng benefits và webhooks để cung cấp ngay lập tức.
- Gắn metadata: Lưu system ID để đối soát.
Liên quan
Product Analytics
Theo dõi doanh thu, khách hàng, retention, subscriber và MRR cho từng product riêng lẻ.
Localized Pricing
Đặt giá cố định theo currency hoặc quốc gia cho product thay vì phụ thuộc vào tỷ giá hối đoái trực tiếp.