Penagihan berbasis kursi memungkinkan Anda mengenakan biaya kepada pelanggan berdasarkan jumlah pengguna, anggota tim, atau lisensi yang mereka butuhkan. Ini adalah model harga standar untuk alat kolaborasi tim, perangkat lunak perusahaan, dan produk B2B SaaS.
Tutorial Implementasi
Panduan langkah demi langkah dengan contoh kode.
Dokumentasi Add-ons
Pelajari tentang sistem add-on yang mendukung penagihan berbasis kursi.
Manajemen Langganan
Kelola langganan berbasis kursi dan perubahan rencana.
Webhooks
Lacak perubahan kursi dengan webhook langganan.
Apa itu Penagihan Berdasarkan Kursi?
Penagihan berbasis kursi (juga disebut harga per pengguna atau per kursi) mengenakan biaya kepada pelanggan berdasarkan jumlah pengguna yang mengakses produk Anda. Alih-alih biaya tetap, harga akan meningkat seiring dengan ukuran tim.Kasus Penggunaan Umum
| Industri | Contoh | Model Harga |
|---|---|---|
| Kolaborasi Tim | Slack, Notion, Asana | Per pengguna aktif/bulan |
| Alat Pengembang | GitHub, GitLab, Jira | Per kursi/bulan |
| Perangkat Lunak CRM | Salesforce, HubSpot | Per lisensi pengguna |
| Alat Desain | Figma, Canva | Per kursi editor |
| Perangkat Lunak Keamanan | 1Password, Okta | Per pengguna/bulan |
| Konferensi Video | Zoom, Teams | Per lisensi host |
Manfaat Harga Berdasarkan Kursi
Untuk Bisnis Anda:- Pendapatan berkembang secara alami seiring pertumbuhan pelanggan
- Harga yang dapat diprediksi yang dapat dianggarkan oleh pelanggan
- Jalur peningkatan yang jelas dari individu ke tim hingga perusahaan
- Nilai seumur hidup yang lebih tinggi seiring tim berkembang
- Bayar hanya untuk apa yang mereka gunakan
- Mudah dipahami dan memprediksi biaya
- Fleksibilitas untuk menambah/menghapus pengguna sesuai kebutuhan
- Harga yang adil yang sesuai dengan ukuran tim
Bagaimana Penagihan Berdasarkan Kursi Bekerja di Dodo Payments
Dodo Payments menerapkan penagihan berbasis kursi menggunakan sistem Add-ons. Berikut cara kerjanya:Ikhtisar Arsitektur
Langganan Tim Pro biaya $99/bulan dan mencakup 5 kursi. Jika Anda memiliki lebih dari 5 pengguna, Anda membayar tambahan $15/bulan untuk setiap kursi tambahan. Sebagai contoh, jika tim Anda membutuhkan 15 kursi:- Rencana Dasar: $99/bulan (mencakup 5 kursi)
- Add-ons: 10 kursi tambahan × $15/bulan = $150/bulan
- Total biaya bulanan: $99 + $150 = $249 untuk 15 kursi
Komponen Utama
| Komponen | Tujuan | Contoh |
|---|---|---|
| Produk Dasar | Langganan inti dengan kursi yang termasuk | ”Rencana Tim - $99/bulan (5 kursi termasuk)“ |
| Add-on Kursi | Biaya per kursi untuk pengguna tambahan | ”Kursi Tambahan - $15/bulan masing-masing” |
| Kuantitas | Jumlah kursi tambahan yang dibeli | 10 kursi tambahan |
Strategi Penetapan Harga
Pilih strategi penetapan harga berbasis kursi yang sesuai untuk bisnis Anda:Strategi 1: Dasar + Add-on Per-Kursi
Sertakan sejumlah kursi dalam rencana dasar, kenakan biaya untuk kursi tambahan. Contoh:Strategi 2: Harga Per-Kursi Murni
Kenakan tarif tetap per kursi tanpa biaya dasar. Contoh:Strategi 3: Penetapan Harga Kursi Bertingkat
Rencana dasar yang berbeda dengan tarif per-kursi yang berbeda. Contoh:Strategi 4: Paket Kursi
Jual kursi dalam paket daripada secara individu. Contoh:Menyiapkan Penagihan Berdasarkan Kursi
Langkah 1: Rencanakan Penetapan Harga Anda
Sebelum implementasi, tentukan struktur harga Anda:1
Tentukan Rencana Dasar
Tentukan apa yang termasuk dalam langganan dasar:
- Harga dasar (dapat $0 untuk per-kursi murni)
- Jumlah kursi yang termasuk
- Fitur yang tersedia di tingkat ini
2
Atur Harga Kursi
Tentukan biaya add-on per kursi:
- Harga per kursi tambahan
- Diskon volume (melalui beberapa add-on)
- Jumlah maksimum kursi yang diizinkan (jika berlaku)
3
Pertimbangkan Frekuensi Penagihan
Sesuaikan harga kursi dengan siklus penagihan Anda:
- Langganan bulanan → biaya kursi bulanan
- Langganan tahunan → biaya kursi tahunan (sering kali dengan diskon)
Langkah 2: Buat Add-on Kursi
Di dasbor Dodo Payments Anda:- Navigasi ke Produk → Add-Ons
- Klik Buat Add-On
- Konfigurasikan add-on:
| Field | Value | Notes |
|---|---|---|
| Nama | ”Kursi Tambahan” atau “Anggota Tim” | Nama yang jelas dan ramah pengguna |
| Deskripsi | ”Tambahkan anggota tim lain ke ruang kerja Anda” | Jelaskan apa yang didapat pelanggan |
| Harga | Harga per kursi Anda | misalnya, $10.00 |
| Mata Uang | Sesuaikan dengan produk dasar Anda | Harus sama dengan mata uang yang sama |
| Kategori Pajak | Sama dengan produk dasar | Memastikan penanganan pajak yang konsisten |
Langkah 3: Buat Produk Langganan Dasar
Buat produk langganan Anda:- Navigasi ke Produk → Buat Produk
- Pilih Langganan
- Konfigurasikan harga dan detail
- Di bagian Add-Ons, lampirkan add-on kursi Anda
Langkah 4: Lampirkan Add-on ke Produk
Tautkan add-on kursi ke langganan Anda:- Edit produk langganan Anda
- Gulir ke bagian Add-Ons
- Klik Tambahkan Add-Ons
- Pilih add-on kursi Anda
- Simpan perubahan
Produk langganan Anda sekarang mendukung penetapan harga berbasis kursi. Pelanggan dapat membeli jumlah kursi tambahan selama checkout.
Mengelola Kursi
Menambahkan Kursi ke Langganan Baru
Saat membuat sesi checkout, tentukan jumlah kursi:Mengubah Jumlah Kursi pada Langganan yang Ada
Gunakan API Ubah Rencana untuk menyesuaikan kursi:Menghapus Kursi
Untuk mengurangi jumlah kursi, tentukan kuantitas yang lebih rendah:Menghapus Semua Kursi Tambahan
Kirim array addons kosong untuk menghapus semua add-on:Prorasi untuk Perubahan Kursi
Ketika pelanggan menambah atau menghapus kursi di tengah siklus, prorasi menentukan bagaimana mereka ditagih.Mode Prorasi
| Mode | Menambah Kursi | Menghapus Kursi |
|---|---|---|
prorated_immediately | Kenakan biaya untuk sisa hari dalam siklus | Kredit untuk hari yang tidak terpakai |
difference_immediately | Kenakan harga kursi penuh | Kredit diterapkan pada pembaruan mendatang |
full_immediately | Kenakan harga kursi penuh, reset siklus penagihan | Tidak ada kredit |
Contoh Prorasi
Skenario: 15 hari siklus penagihan tersisa, menambah 5 kursi dengan harga $10/kursi- prorated_immediately
- difference_immediately
- full_immediately
Pratinjau Sebelum Mengubah
Selalu pratinjau prorasi sebelum melakukan perubahan:Melacak Kursi dengan Webhooks
Pantau perubahan kursi dengan mendengarkan webhook langganan:Peristiwa Terkait
| Peristiwa | Ketika Dipicu | Kasus Penggunaan |
|---|---|---|
subscription.active | Langganan baru diaktifkan | Menyediakan kursi awal |
subscription.plan_changed | Kursi ditambahkan/dihapus | Perbarui jumlah kursi di aplikasi Anda |
subscription.renewed | Langganan diperbarui | Konfirmasi jumlah kursi tidak berubah |
subscription.cancelled | Langganan dibatalkan | Hapus semua kursi |
Contoh Penangan Webhook
Menegakkan Batas Kursi
Aplikasi Anda harus menegakkan batas kursi. Dodo Payments melacak penagihan, tetapi Anda mengontrol akses.Strategi Penegakan
- Batas Keras
- Batas Lunak dengan Peringatan
- Peningkatan Otomatis
Secara ketat mencegah penambahan pengguna melebihi jumlah kursi.
Pola Lanjutan
Tipe Kursi yang Berbeda
Tawarkan tipe kursi yang berbeda dengan harga yang berbeda:Diskon Kursi Tahunan
Tawarkan harga kursi tahunan dengan diskon:Persyaratan Minimum Kursi
Mewajibkan jumlah minimum kursi untuk rencana tertentu:Praktik Terbaik
Praktik Terbaik Penetapan Harga
- Komunikasi yang Jelas: Tampilkan harga per kursi secara mencolok di halaman harga Anda
- Kursi yang Termasuk: Pertimbangkan untuk menyertakan beberapa kursi dalam harga dasar untuk mengurangi gesekan
- Diskon Volume: Tawarkan tarif per kursi yang lebih rendah untuk tim yang lebih besar untuk memenangkan kesepakatan perusahaan
- Insentif Tahunan: Diskon rencana tahunan untuk meningkatkan arus kas dan retensi
Praktik Terbaik Teknis
- Cache Jumlah Kursi: Cache jumlah kursi langganan secara lokal untuk menghindari panggilan API pada setiap permintaan
- Sinkronisasi Secara Berkala: Secara berkala sinkronkan jumlah kursi lokal Anda dengan Dodo Payments melalui API
- Tangani Kegagalan: Jika perubahan kursi gagal, tampilkan pesan kesalahan yang jelas dan opsi untuk mencoba lagi
- Jejak Audit: Catat semua perubahan kursi untuk sengketa penagihan dan kepatuhan
Praktik Terbaik Pengalaman Pengguna
- Umpan Balik Waktu Nyata: Tampilkan dampak biaya segera saat menyesuaikan kursi
- Langkah Konfirmasi: Minta konfirmasi sebelum perubahan penagihan
- Transparansi Prorasi: Jelaskan dengan jelas biaya prorata sebelum diterapkan
- Pengurangan yang Mudah: Jangan membuatnya sulit untuk mengurangi kursi (ini membangun kepercayaan)
Pemecahan Masalah
Jumlah kursi tidak cocok antara aplikasi dan penagihan
Jumlah kursi tidak cocok antara aplikasi dan penagihan
Gejala: Aplikasi Anda menunjukkan jumlah kursi yang berbeda dari langganan.Penyebab:
- Webhook tidak diterima atau diproses
- Kondisi balapan selama perubahan kursi
- Data yang di-cache tidak diperbarui
- Implementasikan penangan webhook untuk
subscription.plan_changed - Tambahkan tombol “Sinkronkan dengan penagihan” yang mengambil langganan saat ini
- Atur TTL cache untuk memastikan penyegaran secara teratur
Biaya prorasi tidak terduga
Biaya prorasi tidak terduga
Gejala: Pelanggan bingung dengan jumlah biaya di tengah siklus.Penyebab:
- Mode prorasi tidak dikomunikasikan dengan jelas
- Pelanggan tidak melihat pratinjau sebelum mengonfirmasi
- Selalu gunakan
previewChangePlansebelum melakukan perubahan - Tampilkan rincian yang jelas: “Menambahkan X kursi = $Y hari ini (prorata untuk Z hari)”
- Dokumentasikan kebijakan prorasi Anda di pusat bantuan
Add-on tidak muncul di checkout
Add-on tidak muncul di checkout
Gejala: Add-on kursi tidak tersedia selama checkout.Penyebab:
- Add-on tidak dilampirkan ke produk
- Add-on diarsipkan atau dihapus
- Ketidakcocokan mata uang antara produk dan add-on
- Verifikasi add-on terlampir dalam pengaturan produk
- Periksa status add-on di dasbor Add-Ons
- Pastikan mata uang cocok persis
Tidak dapat mengurangi kursi di bawah penggunaan saat ini
Tidak dapat mengurangi kursi di bawah penggunaan saat ini
Gejala: Pelanggan ingin mengurangi kursi tetapi memiliki pengguna yang ditugaskan.Solusi:
- Tampilkan pengguna mana yang harus dihapus sebelum mengurangi kursi
- Implementasikan alur kerja: Hapus pengguna → Kurangi kursi
- Pertimbangkan periode tenggang sebelum menegakkan pengurangan kursi