One-Time
Tagih satu kali untuk akses seumur hidup atau satu deliverable.
Subscriptions
Lakukan penagihan sesuai jadwal dengan trial, proration, dan add-on.
Usage-Based
Ukur konsumsi dan lakukan penagihan berdasarkan penggunaan aktual.
Buat Produk
Buat produk dari dashboard atau melalui API. Pilih model harga sejak awal—One-Time, Subscription, atau Usage-Based—lalu konfigurasikan detailnya. Model harga bersifat immutable; buat produk baru jika Anda memerlukan model yang berbeda.1
Name and Description
Berikan judul yang jelas dan deskripsi singkat yang berfokus pada nilai. Markdown didukung dalam deskripsi.

2
Pricing Model and Price
Pilih model harga:
- One-Time: Harga tetap yang dibayar satu kali.
- Subscription: Harga berulang dengan interval dan trial opsional.
- Usage-Based: Harga yang ditentukan berdasarkan event terukur.
- Price: Jumlah dasar dan mata uang. Anda dapat menetapkan harga dasar dalam mata uang apa pun yang didukung Dodo Payments, kecuali untuk produk Pay What You Want, yang mata uang dasarnya harus USD, GBP, atau EUR. USD, GBP, EUR, dan INR ditempatkan di bagian atas pemilih mata uang agar dapat diakses dengan cepat.
- Discount (%): Diskon persentase opsional yang ditampilkan di checkout dan invoice.
- Untuk subscription, atur Repeat every (misalnya, 1 bulan atau 1 tahun), Trial days, dan Trial amount opsional untuk paid trial. Harga subscription non-nol harus minimal $1 (atau nilai setara dalam mata uang yang dipilih). Harga tepat $0 juga didukung, dan Anda dapat mengizinkan pelanggan memulai subscription $0 tanpa kartu; lihat Card-Optional at Zero Price. Jumlah negatif tidak didukung.
Dengan Adaptive Currency diaktifkan, pelanggan di luar mata uang dasar Anda akan ditagih dalam mata uang lokal mereka, sehingga Anda dapat menetapkan harga dalam mata uang yang paling sesuai dengan pasar Anda. Jika dinonaktifkan, mereka membayar dalam mata uang dasar Anda.
3
Product Media
Unggah gambar untuk menampilkan produk di checkout dan invoice. Format yang didukung: PNG, JPG, WebP, hingga 3 MB. Susun ulang atau ganti gambar kapan saja.
4
Automated Entitlements
Di bagian Entitlements, lampirkan pemenuhan yang aktif secara otomatis setelah pembayaran:
- License Keys: Terbitkan dan validasi key unik.
- File Downloads: Berikan akses file yang aman.
- Custom: Picu logika entitlement Anda sendiri melalui webhook.
Varian dan Opsi Harga
Alih-alih membuat varian dalam satu produk, buat produk terpisah untuk setiap opsi harga (misalnya, Bulanan dan Tahunan). Kemudian kelompokkan produk tersebut ke dalam Product Collection untuk menampilkan semua opsi dalam satu checkout dan mengaktifkan pergantian plan di Customer Portal.
Mengapa Pendekatan Ini?
- Model harga yang jelas: Setiap produk memiliki satu model harga yang terdefinisi dengan baik (sekali bayar, subscription, atau berbasis penggunaan).
- API yang dapat diprediksi: Integrasi lebih sederhana tanpa logika varian bertingkat.
- Pelaporan lebih mudah: Lacak pendapatan dan metrik per produk tanpa agregasi varian.
- Checkout fleksibel: Tampilkan beberapa produk berdampingan agar pelanggan dapat membandingkan dan memilih.
Cara Kerja Product Collection
- Buat produk: Siapkan produk individual untuk setiap plan (misalnya, Starter Monthly, Starter Annual, Pro Monthly, Pro Annual).
- Kelompokkan ke dalam koleksi: Tambahkan produk terkait ke Product Collection.
- Checkout terpadu: Pelanggan melihat semua opsi dalam satu checkout dan memilih plan yang diinginkan.
- Pergantian plan: Pelanggan dapat melakukan upgrade atau downgrade antarproduk dalam koleksi yang sama melalui Customer Portal.
Product Collections
Kelompokkan produk terkait untuk pengalaman checkout terpadu serta alur upgrade/downgrade.
Mengelola Produk
Anda dapat mengelola produk melalui dashboard atau secara programatis melalui API. API menyediakan kontrol penuh atas pembuatan, pembaruan, pengambilan, pengunggahan gambar, dan pengarsipan produk.Pengelolaan melalui Dashboard
- Update: Edit nama, deskripsi, gambar, harga, field, dan benefit kapan saja (model harga bersifat immutable).
- Archive: Sembunyikan produk dari pembelian baru tanpa mengganggu pelanggan yang sudah ada. Anda dapat membatalkan pengarsipan nanti.
- Drafts: Produk yang sedang dikerjakan disimpan sebagai draft agar dapat dilanjutkan nanti. Draft disimpan secara terpisah untuk test mode dan live mode, sehingga produk yang belum selesai dalam satu mode tidak pernah tercampur ke mode lainnya. Gunakan Clear Draft untuk membuangnya dan memulai dari awal.
Pengelolaan melalui API
Petunjuk berikut memungkinkan Anda membuat, memperbarui, mengelola, dan mengambil produk, termasuk mengunggah gambar.Creating a Product
Creating a Product
Kirim request
POST ke endpoint /products dengan detail seperti nama, deskripsi, harga, mata uang, dan apakah produk tersebut berulang.Untuk produk recurring, tetapkan object price ke harga recurring (type: recurring_price) dan tentukan payment_frequency_interval serta subscription_period_interval (Day, Week, Month, atau Year) beserta jumlah masing-masing.Create Product API
Lihat struktur request dan response secara terperinci dalam dokumentasi Create Product API.
Updating a Product
Updating a Product
Kirim request
PATCH ke endpoint /products/{product_id}. Anda dapat memperbarui properti seperti nama, harga, dan deskripsi sambil mempertahankan detail lainnya.Pastikan product_id di endpoint cocok dengan produk yang sudah ada.Update Product API
Lihat struktur request dan response secara terperinci dalam dokumentasi Update Product API.
Retrieving Products
Retrieving Products
Ambil daftar produk yang tersimpan di akun Anda menggunakan request
GET ke endpoint /products. Ini memungkinkan Anda mengambil detail produk, termasuk produk aktif dan yang diarsipkan.Retrieve Products API
Lihat struktur request dan response secara terperinci dalam dokumentasi Retrieve Products API.
Uploading Product Images
Uploading Product Images
Hubungkan gambar dengan produk dengan mengunggahnya ke AWS S3 menggunakan URL yang telah ditandatangani sebelumnya yang disediakan oleh API. Pertama, minta URL unggah gambar dari endpoint
/products/{product_id}/images, lalu gunakan URL yang diberikan untuk mengunggah gambar dalam waktu 60 detik.Setelah pre-signed URL diterima dari API, unggah gambar menggunakan method PUT. Ini memastikan akses yang aman dan sementara ke AWS S3 untuk mengunggah gambar.Library yang didukung untuk mengunggah ke S3:- Node.js:
axios,node-fetch - Python:
requests,boto3 - Go:
net/http - PHP:
GuzzleHttp - Ruby:
rest-client
200 OK, yang menunjukkan bahwa gambar telah berhasil disimpan.Upload Product Image API
Lihat struktur request dan response secara terperinci dalam dokumentasi Upload Product Image API.
Archiving a Product
Archiving a Product
Sembunyikan produk dari pembelian baru tanpa menghapusnya secara permanen menggunakan request
DELETE ke endpoint /products/{id}.Archive Product API
Lihat struktur request dan response secara terperinci dalam dokumentasi Archive Product API.
Unarchiving a Product
Unarchiving a Product
Pulihkan produk yang diarsipkan dengan mengirim request
POST ke endpoint /products/{product_id}/unarchive. Tindakan ini mengaktifkan kembali produk dan membuatnya tersedia untuk digunakan lagi.Unarchive Product API
Lihat struktur request dan response secara terperinci dalam dokumentasi Unarchive Product API.
Checkout and Fulfillment
Checkout and Fulfillment
Buat alur pembayaran atau subscription dari produk, lalu lakukan pemenuhan secara otomatis melalui benefit dan webhook.
Checkout Sessions
Buat sesi checkout untuk pembelian sekali bayar atau subscription.
Payment Webhooks
Tanggapi event siklus hidup pembayaran.
Subscription Webhooks
Tangani event subscription yang dibuat, diperbarui, dan dibatalkan.
Praktik Terbaik
- Mulai dengan kejelasan: Pisahkan produk untuk setiap opsi harga (Bulanan vs Tahunan).
- Gunakan trial dengan bijak: Pasangkan trial dengan onboarding untuk mendorong aktivasi.
- Otomatiskan pemenuhan: Gunakan benefit dan webhook untuk melakukan delivery secara instan.
- Tambahkan tag dengan metadata: Simpan ID sistem Anda untuk rekonsiliasi.
Terkait
Product Analytics
Lacak pendapatan, pelanggan, retensi, subscriber, dan MRR untuk setiap produk individual.
Localized Pricing
Tetapkan harga tetap per mata uang atau negara pada produk, bukan mengandalkan nilai tukar langsung.