Skip to main content
Produk adalah fondasi Dodo Payments. Baik Anda menjual unduhan sekali bayar, langganan berulang, maupun akses berbasis penggunaan, semuanya dimulai dengan membuat produk. Setiap produk menentukan cara penetapan harganya, cara menampilkannya di checkout, dan cara pemenuhannya setelah pembelian.

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.
Pastikan kalimat pertama ditujukan kepada pelanggan dan berorientasi pada hasil; kalimat ini akan ditampilkan secara menonjol di checkout.
Dashboard produk yang menampilkan formulir pembuatan produk
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.
Kemudian atur harga:
  • 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.
Ingin menetapkan harga tetap per mata uang atau negara, bukan konversi FX langsung? Tetapkan pricing_mode pada produk dan lampirkan aturan Localized Pricing, seperti €9.99 dalam EUR atau ₹999 di India.
Mengedit harga mengubah jumlah yang dibayar pelanggan baru. Subscription yang sudah ada tidak akan pernah dihitung ulang harganya; masing-masing mempertahankan harga saat dibuat. Untuk memindahkan subscriber yang sudah ada ke harga lain, ubah plan mereka secara eksplisit menggunakan Change Plan API; pengaturan proration berlaku untuk perubahan plan tersebut, bukan untuk pengeditan harga.
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.
Tambahkan atau hapus benefit seiring perkembangan penawaran Anda. Subscriber yang sudah ada akan memperoleh atau kehilangan akses sesuai perubahan.

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.
Halaman checkout yang menampilkan beberapa opsi produk dalam sebuah koleksi

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

  1. Buat produk: Siapkan produk individual untuk setiap plan (misalnya, Starter Monthly, Starter Annual, Pro Monthly, Pro Annual).
  2. Kelompokkan ke dalam koleksi: Tambahkan produk terkait ke Product Collection.
  3. Checkout terpadu: Pelanggan melihat semua opsi dalam satu checkout dan memilih plan yang diinginkan.
  4. 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.
Halaman formulir produk dan collection menyertakan tombol action di header, sehingga Anda dapat menyimpan tanpa menggulir ke bagian bawah formulir yang panjang.

Pengelolaan melalui API

Petunjuk berikut memungkinkan Anda membuat, memperbarui, mengelola, dan mengambil produk, termasuk mengunggah gambar.
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.
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.
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.
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.
Pre-signed URL kedaluwarsa dalam 60 detik, jadi gambar harus diunggah dalam jangka waktu tersebut.
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
Jika pengunggahan berhasil, AWS S3 akan mengembalikan status 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.
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.
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.
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.
Terakhir diubah pada 26 September 2026