> ## 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.

# 구독을 위한 추가 기능

> 좌석 기반 청구, 기능 업그레이드 및 창의적인 가격 모델을 위한 유연한 추가 기능으로 구독 제품을 향상시키세요.

<Info>
  애드온은 주요 구독 상품에 첨부할 수 있는 추가 상품으로, 유연한 가격 모델과 향상된 고객 경험을 제공합니다. 사용자 수 기반 요금제, 기능 업그레이드 또는 맞춤 가격 구조가 필요하든, 애드온을 통해 정교한 구독 제안을 만들 수 있습니다.
</Info>

<CardGroup cols={2}>
  <Card title="Seat-Based Billing" icon="users" href="/developer-resources/seat-based-pricing">
    좌석당 요금으로 추가 팀 좌석, 사용자 라이선스 또는 용량 업그레이드용 애드온을 만드세요.
  </Card>

  <Card title="Usage Extensions" icon="bolt" href="/features/usage-based-billing/introduction">
    유연한 애드온 가격을 통해 사용 한도, API 호출, 또는 데이터 할당량을 확장하세요.
  </Card>
</CardGroup>

## 애드온이란 무엇인가요?

애드온은 고객이 기본 구독과 함께 구매할 수 있는 보조 상품입니다. 다음과 같은 경우에 적합합니다:

* **좌석 기반 청구**: 추가 팀원, 사용자 라이선스 또는 동시 사용자 수
* **기능 업그레이드**: 프리미엄 기능, 고급 분석 또는 우선 지원
* **사용량 확장**: 추가 저장공간, API 호출 또는 대역폭 허용량
* **서비스 애드온**: 전문 서비스, 교육 또는 상담 시간

<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="대시보드에서 구독 제품에 부착된 애드온" style={{ maxHeight: '500px', width: 'auto' }} width="2338" height="1196" data-path="images/cookbooks/seat-based/seat-based-addons.png" />
</Frame>

## 주요 이점

* **유연한 가격 모델**: 선택형 애드온이 포함된 기본 요금제를 제공하여 정교한 가격 구조를 설계하세요. 고객의 니즈 변화에 따라 확장할 수 있는 업그레이드를 통해 다양한 고객군을 타깃팅할 수 있습니다.
* **수익 최적화**: 관련성 높은 애드온을 제안하여 사용자당 평균 수익(ARPU)을 향상시키세요. 시간이 지남에 따라 고객이 기능을 추가하면서 자연스러운 업셀 기회를 만들 수 있습니다.
* **간편한 관리**: 모든 가격 구성 요소를 하나의 대시보드에서 관리하세요. 애드온은 체크아웃 세션과 구독 관리에 자동으로 포함됩니다.
* **고객 선택권**: 고객이 필요한 애드온만 선택하여 구독을 맞춤화할 수 있도록 하여 만족도를 높이고 이탈률을 줄이세요.

## 애드온 만들기

애드온은 Dodo Payments 대시보드에서 별도의 상품으로 생성한 다음 주요 구독 상품에 연결됩니다. 이러한 분리는 다음과 같은 장점을 제공합니다:

* 여러 구독 상품에서 애드온을 재사용할 수 있음
* 가격을 독립적으로 관리할 수 있음
* 애드온 성과를 별도로 추적할 수 있음
* 기본 구독에 영향을 주지 않고 애드온을 업데이트할 수 있음

<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="대시보드 인터페이스에서 애드온 생성하기" style={{ maxHeight: '500px', width: 'auto' }} width="2348" height="1606" data-path="images/cookbooks/seat-based/seat-based-addons-creation.png" />
</Frame>

### 애드온 구성

애드온을 생성할 때 다음을 구성할 수 있습니다:

* **가격**: 애드온에 대한 일회성 또는 반복 가격 설정
* **청구 주기**: 구독의 청구 주기와 일치해야 함
* **수량 제한**: 고객당 최소 및 최대 수량 설정
* **사용 가능 구독**: 애드온을 사용할 수 있는 구독 상품 제어
* **세금 설정**: 적절한 세금 범주 구성

### 시작하기

구독 비즈니스에 애드온을 구현할 준비가 되었나요? 시작 방법은 다음과 같습니다:

<Steps>
  <Step title="Plan Your Add-ons">
    고객에게 유용한 추가 기능, 서비스 또는 용량을 애드온으로 식별하세요.

    다음 사항을 고려하세요:

    * 고객이 자주 요청하는 기능은 무엇인가요?
    * 개별적으로 수익화할 수 있는 기능은 무엇인가요?
    * 자연스러운 업그레이드 경로를 만드는 것은 무엇인가요?
  </Step>

  <Step title="Create Your First Add-on">
    Dodo Payments 대시보드 또는 API를 사용하여 첫 번째 애드온 상품을 만드세요.

    <Card title="Dashboard Guide" icon="box" href="/developer-resources/seat-based-pricing">
      대시보드에서 애드온을 만드는 단계별 가이드를 따르세요.
    </Card>
  </Step>

  <Step title="Attach to Subscriptions">
    애드온을 사용 가능해야 하는 적절한 구독 상품에 연결하세요.
  </Step>

  <Step title="Test Integration">
    다양한 애드온 조합으로 테스트 체크아웃 세션을 생성하여 모든 것이 올바르게 작동하는지 확인하세요.
  </Step>

  <Step title="Monitor Performance">
    애드온 채택률과 수익 영향을 추적하여 가격 전략을 최적화하세요.
  </Step>
</Steps>

## API 관리

Dodo Payments는 애드온을 프로그래밍 방식으로 관리할 수 있는 포괄적인 API를 제공합니다:

<AccordionGroup>
  <Accordion title="Create Add-ons">
    `POST /addons` 엔드포인트를 사용하여 맞춤 가격, 설명 및 구성 옵션과 함께 새 애드온을 생성하세요.

    <Card title="API Reference" icon="code" href="/api-reference/addons/create-addon">
      애드온 생성에 대한 전체 API 문서를 확인하세요.
    </Card>
  </Accordion>

  <Accordion title="Update Add-ons">
    `PATCH /addons/{id}` 엔드포인트를 사용하여 기존 애드온의 가격, 설명 또는 사용 가능 여부를 수정하세요.

    <Card title="API Reference" icon="code" href="/api-reference/addons/update-addon">
      애드온 세부 정보를 프로그래밍 방식으로 업데이트하는 방법을 알아보세요.
    </Card>
  </Accordion>

  <Accordion title="List and Retrieve">
    `GET /addons`를 사용하여 모든 애드온을 나열하거나 `GET /addons/{id}`를 사용하여 특정 애드온 세부 정보를 가져오세요.

    <Card title="API Reference" icon="code" href="/api-reference/addons/list-addons">
      전체 목록 및 검색 API 문서를 확인하세요.
    </Card>
  </Accordion>

  <Accordion title="Image Management">
    `PUT /addons/{id}/images` 엔드포인트를 사용하여 더 나은 상품 표현을 위해 애드온 이미지를 업데이트하세요.

    <Card title="API Reference" icon="code" href="/api-reference/addons/update-addon-images">
      API를 통해 애드온 이미지를 관리하는 방법을 알아보세요.
    </Card>
  </Accordion>
</AccordionGroup>

## 일반적인 사용 사례

* **좌석 기반 청구**: 추가 팀원, 사용자 라이선스 또는 동시 사용자 수
* **기능 업그레이드**: 프리미엄 기능, 고급 분석 또는 우선 지원
* **사용량 확장**: 추가 저장공간, API 호출 또는 대역폭 허용량
* **서비스 애드온**: 전문 서비스, 교육 또는 상담 시간

## 통합 예시

### 애드온이 포함된 체크아웃 세션

체크아웃 세션을 생성할 때 맞춤 수량의 애드온을 포함할 수 있습니다:

```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>
  고객이 체크아웃 페이지에서 애드온을 직접 추가하거나 제거할 수 있도록 하려면, 세션을 생성할 때 [`allow_editing_addons`](/developer-resources/checkout-session#optional-fields) 기능 플래그를 `true`로 설정합니다. 기본값은 `false`이며, 구독 상품에만 적용됩니다.

  ```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>

### 애드온과 함께하는 플랜 변경

기존 구독을 수정하여 애드온을 추가, 제거 또는 업데이트합니다:

```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
});
```

### 동적 가격 설정

애드온 선택에 따라 총 비용을 동적으로 계산합니다:

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

## 모범 사례

* **간단하게 시작하기**: 2-3개의 핵심 애드온으로 시작하고 고객 피드백과 사용법에 따라 옵션을 확장합니다.
* **가격 명확성 유지**: 애드온 가격과 가치를 명확히 전달하여 고객이 추가 비용에 대한 이해를 갖도록 합니다.
* **철저하게 테스트하기**: 애드온 조합을 검증하여 가격 계산이 정확하게 유지되고 체크아웃 흐름이 원활하게 작동하도록 합니다.

### 디자인 고려 사항

* **명확한 가치 제안**: 각 애드온은 고객이 쉽게 이해할 수 있는 명확한 이점을 가져야 합니다.
* **논리적 그룹화**: 관련 애드온을 체크아웃 흐름에서 함께 그룹화합니다.
* **유연한 수량**: 고객이 필요에 따라 애드온의 수량을 조절할 수 있도록 허용합니다.
* **투명한 가격**: 체크아웃 과정에서 총 비용을 명확하게 보여줍니다.

<Info>
  애드온은 고객과 함께 성장할 수 있는 유연하고 확장 가능한 가격 모델을 만드는 강력한 방법입니다. 간단한 사용 사례로 시작하여 비즈니스와 고객에게 가장 잘 맞는 방식을 배우면서 확장해나가세요.
</Info>
