> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add-ons untuk Langganan

> Tingkatkan produk langganan Anda dengan add-ons fleksibel untuk penagihan berbasis kursi, peningkatan fitur, dan model harga kreatif

<Info>
  Add-on adalah produk tambahan yang dapat dilampirkan ke produk langganan utama Anda, memungkinkan model harga fleksibel dan pengalaman pelanggan yang ditingkatkan. Baik Anda membutuhkan penagihan berbasis kursi, peningkatan fitur, atau struktur harga khusus, add-on memberi Anda kekuatan untuk membuat penawaran langganan yang canggih.
</Info>

<CardGroup cols={2}>
  <Card title="Seat-Based Billing" icon="users" href="/developer-resources/seat-based-pricing">
    Buat add-on untuk kursi tim tambahan, lisensi pengguna, atau peningkatan kapasitas dengan penetapan harga per kursi.
  </Card>

  <Card title="Usage Extensions" icon="bolt" href="/features/usage-based-billing/introduction">
    Perluas batas penggunaan, panggilan API, atau kuota data dengan harga tambahan yang fleksibel.
  </Card>
</CardGroup>

## Apa itu Add-ons?

Add-ons adalah produk tambahan yang dapat dibeli pelanggan bersamaan dengan langganan utama mereka. Cocok untuk:

* **Seat-based billing**: Anggota tim tambahan, lisensi pengguna, atau pengguna bersamaan
* **Feature upgrades**: Fitur premium, analitik lanjutan, atau dukungan prioritas
* **Usage extensions**: Penyimpanan ekstra, panggilan API, atau kuota bandwidth
* **Service add-ons**: Layanan profesional, pelatihan, atau jam konsultasi

<Frame>
  <img src="https://mintcdn.com/dodopayments/ajOhO6Du1yNsg0hy/images/cookbooks/seat-based/seat-based-addons.png?fit=max&auto=format&n=ajOhO6Du1yNsg0hy&q=85&s=ea4ce0d437201c92590eea6c31a14e80" alt="Add-ons terlampir pada produk langganan di dasbor" style={{ maxHeight: '500px', width: 'auto' }} width="2338" height="1196" data-path="images/cookbooks/seat-based/seat-based-addons.png" />
</Frame>

## Manfaat Utama

* **Flexible Pricing Models**: Tawarkan paket dasar dengan add-on opsional untuk menciptakan struktur harga yang kompleks. Anda dapat menjangkau berbagai segmen pelanggan dengan peningkatan yang tumbuh seiring kebutuhan mereka berubah.
* **Revenue Optimization**: Tingkatkan pendapatan rata-rata per pengguna (ARPU) dengan menyajikan add-on yang relevan. Ini memungkinkan peluang upsell alami saat pelanggan menambahkan fitur dari waktu ke waktu.
* **Simplified Management**: Kelola semua komponen harga dari satu dasbor. Add-on secara otomatis disertakan baik dalam sesi checkout maupun manajemen langganan.
* **Customer Choice**: Izinkan pelanggan menyesuaikan langganan mereka dengan memilih hanya add-on yang mereka perlukan, yang meningkatkan kepuasan dan mengurangi churn.

## Membuat Add-ons

Add-ons dibuat sebagai produk terpisah di dasbor Dodo Payments Anda dan kemudian dilampirkan ke produk langganan utama. Pemisahan ini memungkinkan Anda untuk:

* Menggunakan kembali add-on di beberapa produk langganan
* Mengelola harga secara independen
* Melacak performa add-on secara terpisah
* Memperbarui add-on tanpa memengaruhi langganan dasar

<Frame>
  <img src="https://mintcdn.com/dodopayments/ajOhO6Du1yNsg0hy/images/cookbooks/seat-based/seat-based-addons-creation.png?fit=max&auto=format&n=ajOhO6Du1yNsg0hy&q=85&s=d2c17b4a9f2f9a1b19f537f0507656a4" alt="Membuat add-ons di interface dasbor" style={{ maxHeight: '500px', width: 'auto' }} width="2348" height="1606" data-path="images/cookbooks/seat-based/seat-based-addons-creation.png" />
</Frame>

### Konfigurasi Add-on

Saat membuat add-ons, Anda dapat mengkonfigurasi:

* **Pricing**: Tetapkan harga sekali atau berulang untuk add-on
* **Billing cycle**: Harus sesuai dengan siklus penagihan langganan Anda
* **Quantity limits**: Tentukan jumlah minimum dan maksimum per pelanggan
* **Availability**: Kendalikan produk langganan mana yang dapat menggunakan add-on
* **Tax settings**: Atur kategori pajak yang sesuai

### Memulai

Siap menerapkan add-ons dalam bisnis langganan Anda? Berikut cara memulai:

<Steps>
  <Step title="Plan Your Add-ons">
    Identifikasi fitur tambahan, layanan, atau kapasitas yang akan bermanfaat bagi pelanggan Anda sebagai add-ons.

    Pertimbangkan:

    * Apa yang sering diminta pelanggan?
    * Fitur mana yang bisa dimonetisasi secara terpisah?
    * Apa yang menciptakan jalur peningkatan alami?
  </Step>

  <Step title="Create Your First Add-on">
    Gunakan dasbor atau API Dodo Payments untuk membuat produk add-on pertama Anda.

    <Card title="Dashboard Guide" icon="box" href="/developer-resources/seat-based-pricing">
      Ikuti panduan langkah demi langkah kami untuk membuat add-ons di dasbor.
    </Card>
  </Step>

  <Step title="Attach to Subscriptions">
    Hubungkan add-on Anda ke produk langganan yang sesuai di mana mereka harus tersedia.
  </Step>

  <Step title="Test Integration">
    Buat sesi checkout uji dengan kombinasi add-on yang berbeda untuk memastikan semuanya berfungsi dengan benar.
  </Step>

  <Step title="Monitor Performance">
    Lacak tingkat adopsi add-on dan dampak pendapatan untuk mengoptimalkan strategi harga Anda.
  </Step>
</Steps>

## Manajemen API

Dodo Payments menyediakan API lengkap untuk mengelola add-ons secara programatis:

<AccordionGroup>
  <Accordion title="Create Add-ons">
    Gunakan endpoint `POST /addons` untuk membuat add-ons baru dengan harga, deskripsi, dan opsi konfigurasi kustom.

    <Card title="API Reference" icon="code" href="/api-reference/addons/create-addon">
      Lihat dokumentasi API lengkap untuk membuat add-ons.
    </Card>
  </Accordion>

  <Accordion title="Update Add-ons">
    Ubah add-on yang ada menggunakan endpoint `PATCH /addons/{id}` untuk memperbarui harga, deskripsi, atau ketersediaannya.

    <Card title="API Reference" icon="code" href="/api-reference/addons/update-addon">
      Pelajari cara memperbarui detail add-on secara programatis.
    </Card>
  </Accordion>

  <Accordion title="List and Retrieve">
    Gunakan `GET /addons` untuk mencantumkan semua add-on atau `GET /addons/{id}` untuk mengambil detail add-on tertentu.

    <Card title="API Reference" icon="code" href="/api-reference/addons/list-addons">
      Akses dokumentasi lengkap listing dan pengambilan API.
    </Card>
  </Accordion>

  <Accordion title="Image Management">
    Perbarui gambar add-on menggunakan endpoint `PUT /addons/{id}/images` untuk presentasi produk yang lebih baik.

    <Card title="API Reference" icon="code" href="/api-reference/addons/update-addon-images">
      Pelajari cara mengelola gambar add-on melalui API.
    </Card>
  </Accordion>
</AccordionGroup>

## Kasus Penggunaan Umum

* **Seat-Based Billing**: Anggota tim tambahan, lisensi pengguna, atau pengguna bersamaan
* **Feature Upgrades**: Fitur premium, analitik lanjutan, atau dukungan prioritas
* **Usage Extensions**: Penyimpanan ekstra, panggilan API, atau kuota bandwidth
* **Service Add-ons**: Layanan profesional, pelatihan, atau jam konsultasi

## Contoh Integrasi

### Sesi Checkout dengan Add-ons

Saat membuat sesi checkout, Anda dapat menyertakan add-on dengan kuantitas khusus:

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'your_subscription_id',
      quantity: 1,
      addons: [
        {
          addon_id: 'your_addon_id',
          quantity: 3 // 3 additional seats
        }
      ]
    }
  ],
  // ... other checkout options
});
```

<Tip>
  Untuk membiarkan pelanggan menambah atau menghapus add-on sendiri pada halaman checkout, atur fitur flag [`allow_editing_addons`](/developer-resources/checkout-session#optional-fields) ke `true` saat membuat sesi. Defaultnya adalah `false` dan ini hanya berlaku untuk produk berlangganan.

  ```typescript theme={null}
  const session = await client.checkoutSessions.create({
    product_cart: [{ product_id: 'your_subscription_id', quantity: 1 }],
    feature_flags: {
      allow_editing_addons: true // customers can edit add-ons at checkout
    },
  });
  ```
</Tip>

### Perubahan Paket dengan Add-on

Modifikasi langganan yang ada untuk menambah, menghapus, atau memperbarui add-on:

```typescript theme={null}
// Add add-ons to existing subscription
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_new',
  quantity: 1,
  proration_billing_mode: 'difference_immediately',
  addons: [
    { addon_id: 'addon_123', quantity: 2 }
  ]
});

// Remove all existing add-ons
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_new',
  quantity: 1,
  proration_billing_mode: 'difference_immediately',
  addons: [] // Empty array removes all existing add-ons
});
```

### Harga Dinamis

Hitung total biaya secara dinamis berdasarkan pilihan add-on:

```typescript theme={null}
function calculateTotalCost(basePrice: number, addons: AddonSelection[]) {
  const addonTotal = addons.reduce((sum, addon) => 
    sum + (addon.price * addon.quantity), 0
  );
  return basePrice + addonTotal;
}
```

## Praktik Terbaik

* **Mulai sederhana**: Luncurkan dengan 2-3 add-on inti dan perluas opsi berdasarkan umpan balik dan penggunaan pelanggan.
* **Pertahankan kejelasan harga**: Komunikasikan harga dan nilai add-on dengan jelas, agar pelanggan memahami apa yang mereka dapatkan dengan biaya tambahan.
* **Uji secara menyeluruh**: Validasi kombinasi add-on untuk memastikan perhitungan harga tetap akurat dan alur checkout berfungsi dengan lancar.

### Pertimbangan Desain

* **Proposisi Nilai Jelas**: Setiap add-on harus memiliki manfaat yang jelas yang mudah dipahami pelanggan.
* **Pengelompokan Logis**: Kelompokkan add-on terkait bersama dalam alur checkout Anda.
* **Kuantitas Fleksibel**: Izinkan pelanggan menyesuaikan jumlah add-on sesuai kebutuhan.
* **Harga Transparan**: Tampilkan total biaya dengan jelas sepanjang proses checkout.

<Info>
  Add-on adalah cara yang kuat untuk membuat model harga yang fleksibel dan dapat diskalakan yang tumbuh bersama pelanggan Anda. Mulailah dengan kasus penggunaan sederhana dan kembangkan saat Anda mempelajari apa yang paling cocok untuk bisnis dan pelanggan Anda.
</Info>
