Tutorial ini menggunakan Node.js dan Express. Anda dapat menyesuaikan kode untuk framework Anda (Next.js, React, Vue, dll.) serta menyesuaikan UI agar sesuai dengan aplikasi Anda.
- Membuat produk langganan dengan penetapan harga berdasarkan kursi
- Mengatur add-on untuk kursi tambahan
- Menghasilkan tautan pembayaran dengan jumlah add-on kustom
- Menangani sesi checkout dengan jumlah kursi dinamis
Apa yang Kita Bangun
Mari kita buat model penetapan harga berdasarkan kursi:- Paket Dasar: $49/bulan untuk hingga 5 anggota tim
- Add-on Seat: $2/bulan per seat tambahan
- Payment Link: checkout dinamis dengan jumlah seat khusus
Sebelum kita mulai, pastikan Anda sudah memiliki:
- Akun Dodo Payments
- Pemahaman dasar tentang TypeScript/Node.js
Langkah 1: Buat Add-On Kursi Anda
Buat add-on yang merepresentasikan seat tambahan. Add-on ini akan dilampirkan ke langganan dasar dan memungkinkan pelanggan membeli seat tambahan.
1
Navigate to Add-Ons
- Di dashboard Dodo Payments Anda, tetaplah di bagian Products
- Klik tab Add-Ons
- Klik Create Add-On
2
Enter add-on details
Isi nilai-nilai berikut untuk add-on kursi kami:Nama Add-On:
Additional Team SeatDeskripsi: Add extra team members to your workspace with full access to all featuresHarga: Masukkan → 2.00Mata Uang: Harus sesuai dengan mata uang langganan dasar AndaKategori Pajak: Pilih kategori yang sesuai untuk produk Anda.3
Save your add-on
- Tinjau semua pengaturan Anda:
- Nama: Additional Team Seat
- Harga: $2.00/bulan
- Klik Create Add-On
Add-on dibuat! Add-on kursi Anda sekarang tersedia untuk dilampirkan ke langganan.
Langkah 2: Buat Produk Langganan Dasar Anda
Buat produk langganan dasar yang mencakup 5 anggota tim. Produk ini akan menjadi dasar model penetapan harga berbasis seat Anda.
1
Navigate to Products
- Masuk ke dashboard Dodo Payments Anda
- Klik Products di bilah sisi kiri
- Klik tombol Create Product
- Pilih Subscription sebagai tipe produk
2
Fill in the subscription details
Sekarang kita akan memasukkan detail spesifik untuk paket dasar kita:Nama Produk:
MotionDeskripsi: Where your team's documentation lives.Harga Berulang: Masukkan → 49.00Siklus Penagihan: Pilih → MonthlyMata Uang: Pilih mata uang pilihan Anda (misalnya, USD)Langkah 3: Hubungkan Add-On ke Langganan
Hubungkan add-on seat Anda dengan langganan dasar agar pelanggan dapat membeli seat tambahan selama checkout.1
Attach the seat add-on

- Gulir ke bawah ke bagian Add-Ons
- Klik Tambahkan Add-Ons
- Dari dropdown, pilih add-on kursi Anda
- Konfirmasi bahwa itu muncul dalam konfigurasi langganan Anda
2
Save subscription changes
- Tinjau penyiapan langganan lengkap Anda:
- Paket dasar: $49/bulan untuk 5 kursi
- Add-on: $2/bulan untuk setiap kursi tambahan
- Klik Simpan Perubahan
Penetapan harga berbasis seat telah dikonfigurasi! Pelanggan kini dapat membeli paket dasar Anda dan menambahkan seat ekstra sesuai kebutuhan.
Langkah 4: Buat Payment Link dengan Jumlah Add-on Khusus
Buat aplikasi Express.js yang menghasilkan payment link dengan jumlah add-on khusus. Dengan demikian, Anda dapat membuat sesi checkout secara dinamis dengan jumlah seat tambahan berapa pun.1
Set up your project
Buat proyek Node.js baru dan instal dependensi yang diperlukan:Buat file
tsconfig.json:2
Create your environment file
Buat file
.env dengan API key Dodo Payments Anda:3
Implement the checkout session creation
Buat file
src/server.ts dengan kode berikut:4
Add a simple web interface
Buat file
public/index.html untuk pengujian dengan mudah:Antarmuka web telah dibuat! Kini Anda memiliki UI sederhana untuk menguji berbagai jumlah seat.
5
Serve static files
Tambahkan ini ke
src/server.ts Anda untuk menyajikan file HTML:File statis telah dikonfigurasi! Kunjungi
http://localhost:3000 untuk melihat antarmuka demo Anda.Langkah 5: Uji Implementasi Anda
Mari uji implementasi penetapan harga berbasis seat untuk memastikan semuanya berfungsi dengan benar.1
Start your server
- Pastikan Anda memiliki file
.envdengan API key yang benar - Perbarui ID produk dan add-on dalam kode Anda dengan nilai aktual dari dashboard Dodo Payments
- Jalankan server Anda:
Server Anda seharusnya berhasil dimulai dan menampilkan “Server is running on port 3000”
2
Test the web interface

- Buka browser Anda dan buka
http://localhost:3000 - Anda seharusnya melihat antarmuka demo penetapan harga berbasis seat
- Coba berbagai jumlah seat (0, 3, 10, dll.)
- Klik “Generate Checkout Link” untuk setiap jumlah
- Verifikasi bahwa URL checkout dibuat dengan benar
3
Test a checkout session
- Buat payment link dengan 3 seat tambahan
- Klik URL checkout untuk membuka checkout Dodo Payments
- Verifikasi bahwa checkout menampilkan:
- Paket dasar: $49/bulan
- Seat tambahan: 3 × 2 dolar = $6/bulan
- Selesaikan pembelian pengujian
Checkout seharusnya menampilkan rincian harga yang benar dan memungkinkan Anda menyelesaikan pembelian.
4
Listen for webhooks and update your database
Jaga database Anda tetap sinkron dengan perubahan langganan dan seat dengan mendengarkan event webhook dari Dodo Payments. Webhook memberi tahu backend Anda saat pelanggan menyelesaikan checkout, memperbarui langganan, atau mengubah jumlah seat.Ikuti panduan webhook resmi Dodo Payments untuk mendapatkan instruksi langkah demi langkah tentang penyiapan endpoint webhook dan penanganan event:
Dodo Payments Webhooks Documentation
Pelajari cara menerima dan memproses event webhook dengan aman untuk mengelola langganan dan seat.
Pemecahan Masalah
Masalah umum dan solusinya:Checkout creation failing
Checkout creation failing
Kemungkinan penyebab:
- ID produk atau ID add-on tidak valid
- API key tidak memiliki izin yang memadai
- Add-on tidak dikaitkan dengan langganan dengan benar
- Masalah konektivitas jaringan
- Verifikasi bahwa ID produk dan add-on tersedia di dashboard Dodo Payments Anda
- Periksa bahwa add-on telah dilampirkan dengan benar ke langganan
- Pastikan API key memiliki izin untuk membuat sesi checkout
- Uji konektivitas API dengan request GET sederhana
Selamat! Anda Telah Menerapkan Penetapan Harga Berbasis Seat
Anda telah berhasil membuat sistem penetapan harga berbasis seat dengan Dodo Payments. Berikut hal-hal yang telah Anda capai:Base Subscription
Membuat produk langganan dengan 5 seat yang disertakan seharga $49/bulan
Seat Add-ons
Mengonfigurasi add-on untuk seat tambahan seharga $2/bulan per seat
Checkout
Membangun API yang menghasilkan sesi checkout dengan jumlah seat khusus
Web Interface
Membuat antarmuka web sederhana untuk menguji berbagai jumlah seat
Contoh ini menunjukkan implementasi minimal penetapan harga berbasis seat. Untuk penggunaan production, tambahkan error handling, authentication, validasi data, langkah-langkah keamanan, dan sesuaikan logikanya dengan kebutuhan aplikasi Anda.