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

# Charm Pricing

> 모든 통화에서 시장별 가격을 일일이 설정하지 않아도, 변환된 가격을 49.99처럼 깔끔하고 심리적으로 조정된 끝자리로 자동 반올림합니다.

<Info>
  Charm Pricing은 모든 checkout에서 변환된 가격을 **49.99**와 같이 깔끔한 끝자리로 반올림합니다. 규칙은 한 번만 설정하면 됩니다. Dodo Payments가 각 고객의 통화에 적용합니다.
</Info>

## Charm Pricing이란?

[Adaptive Currency](/features/adaptive-currency)는 실시간 환율로 기본 가격을 변환합니다. 결과는 정확한 숫자지만 매력적인 경우는 드뭅니다. 예를 들어 \$47.00 상품이 오늘은 **€43.12**, 내일은 **€43.47**로 표시될 수 있습니다.

Charm Pricing은 변환된 금액을 가장 가까운 깔끔한 끝자리로 조정합니다. 고객에게는 43.12가 아닌 **49.99**가 표시됩니다. 환율이 변해도 끝자리는 안정적으로 유지됩니다.

시장별로 가격을 설정할 필요가 없습니다. 하나의 반올림 규칙을 선택하면 모든 통화에 적용됩니다.

<Note>
  Charm Pricing을 사용하려면 [Adaptive Currency](/features/adaptive-currency)가 필요합니다. 먼저 Adaptive Currency를 켜세요.
</Note>

## 주요 이점

* **모든 통화에서 깔끔한 가격**: 하나의 규칙으로 모든 시장에 적용됩니다. 가격 목록을 관리할 필요가 없습니다.
* **안정적인 끝자리**: 환율이 몇 퍼센트 변해도 끝자리가 바뀌지 않습니다.
* **환율 변환으로 인한 어색한 가격 방지**: 고객에게 43.12 또는 1043.87 같은 가격이 표시되지 않습니다.
* **신규 시장에 자동 적용**: 아직 가격을 설정하지 않은 통화에도 깔끔한 가격이 적용됩니다.

<Info>
  한 시장의 정확한 가격을 직접 설정하려면 대신 [Localized Pricing](/features/localized-pricing)을 사용하세요. 해당 상품에서는 localized price가 항상 Charm Pricing보다 우선합니다.
</Info>

## Charm Pricing 활성화

<Steps>
  <Step title="Enable Adaptive Currency">
    **Settings → Business**로 이동합니다. **Business Settings**에서 **Adaptive Currency**를 켭니다. Adaptive Currency 없이는 Charm Pricing이 작동하지 않습니다.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/Ovz6j1aDoP1Nl_kB/images/charm-pricing/adaptive-currency-toggle.png?fit=max&auto=format&n=Ovz6j1aDoP1Nl_kB&q=85&s=a9d847b5ee912ddf416bba76f7f75994" alt="Business Settings의 Adaptive Currency 토글" style={{ maxHeight: '360px', width: 'auto' }} width="927" height="581" data-path="images/charm-pricing/adaptive-currency-toggle.png" />
    </Frame>
  </Step>

  <Step title="Turn on Charm Pricing">
    같은 **Business Settings** 섹션에서 **Charm Pricing**을 켭니다 — *가격을 더 깔끔하고 매력적인 숫자로 반올림*. 현재 반올림 유형은 토글 아래에 표시됩니다.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/Ovz6j1aDoP1Nl_kB/images/charm-pricing/charm-toggle.png?fit=max&auto=format&n=Ovz6j1aDoP1Nl_kB&q=85&s=e8038d1b4c0df6a0ed246af73e83011c" alt="Business Settings에서 활성화된 Charm Pricing" style={{ maxHeight: '400px', width: 'auto' }} width="895" height="392" data-path="images/charm-pricing/charm-toggle.png" />
    </Frame>

    <Warning>
      변경 사항은 향후 거래에만 적용됩니다. 기존 구독에는 구독 시작 시 사용된 반올림 규칙이 유지됩니다. [Subscriptions](#subscriptions)을 참조하세요.
    </Warning>
  </Step>

  <Step title="Set the rounding type and steps">
    **Edit**를 클릭하여 **Set up Charm Pricing**을 엽니다. **Rounding type**을 선택한 다음 각 가격 범위의 **Rounding step**을 조정합니다. **Save Changes**를 클릭합니다.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/Ovz6j1aDoP1Nl_kB/images/charm-pricing/rounding-type.png?fit=max&auto=format&n=Ovz6j1aDoP1Nl_kB&q=85&s=52b3cac8b3644aa2e129019cc989b617" alt="반올림 유형 선택기와 Try it 미리보기가 있는 Set up Charm Pricing 대화 상자" style={{ maxHeight: '620px', width: 'auto' }} width="1122" height="404" data-path="images/charm-pricing/rounding-type.png" />
    </Frame>

    저장하기 전에 **Try it**을 사용하여 값을 확인하세요. 금액과 통화를 입력하면 대화 상자에 결과와 사용된 step이 표시됩니다.

    Dodo Payments는 각 범위에 기본 step을 제공합니다. [Rounding types](#rounding-types) 및 [Rounding steps](#rounding-steps)을 참조하세요.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/Ovz6j1aDoP1Nl_kB/images/charm-pricing/bands.png?fit=max&auto=format&n=Ovz6j1aDoP1Nl_kB&q=85&s=49814c0af4e7d120d4ae64c868943a84" alt="각 가격 범위에 하나의 step이 적용된 반올림 step 표" style={{ maxHeight: '440px', width: 'auto' }} width="527" height="485" data-path="images/charm-pricing/bands.png" />
    </Frame>
  </Step>

  <Step title="Confirm at checkout">
    <Check>
      다른 통화를 사용하는 청구 국가로 테스트 checkout을 엽니다. 가격에 예상한 끝자리가 표시되는지 확인합니다.
    </Check>
  </Step>
</Steps>

## 가격 계산 방식

Dodo Payments는 통화 변환 및 할인 적용 후, 세금 적용 전에 **개당** 가격에 Charm Pricing을 적용합니다.

1. **step을 찾습니다.** 금액에 따라 rounding-step 표에서 step이 선택됩니다. \$47 가격은 10–99 범위에 속하므로 step은 **10**입니다.
2. **목표값을 선택합니다.** step에 따라 **40**과 **50**이라는 두 후보가 정해집니다. 반올림 유형에 따라 하나를 선택합니다. **Nearest**에서는 47이 50에 더 가깝습니다.
3. **끝자리를 줄입니다.** Dodo Payments는 step의 1/1000을 빼므로 50이 **49.99**가 됩니다. 줄어드는 값은 항상 최소 단위 하나 이상입니다. **Whole**은 이 단계를 건너뜁니다.

### 반올림 유형

| 유형          | 선택하는 값                        | \$47의 결과 |
| :---------- | :---------------------------- | :------- |
| **Nearest** | 두 후보 중 더 가까운 값. 같은 거리면 올림합니다. | \$49.99  |
| **Floor**   | 항상 가격보다 낮은 후보값.               | \$39.99  |
| **Ceiling** | 항상 가격보다 높은 후보값.               | \$49.99  |
| **Whole**   | 끝자리를 줄이지 않고 가장 가까운 후보값.       | \$50.00  |

<Warning>
  **Floor**는 가격을 거의 한 full step만큼 낮출 수 있습니다. \$47 가격은 \$39.99가 되어 15% 인하됩니다. 선택하기 전에 가격 범위에 미치는 영향을 확인하세요.
</Warning>

### 반올림 step

step은 통화의 주 단위 기준 가격 크기에 따라 달라집니다. 다음은 기본값입니다. 모든 범위의 **Rounding step**을 변경할 수 있지만, 범위 자체는 변경할 수 없습니다.

| 가격 범위                 | Step   |
| :-------------------- | :----- |
| 1 – 9                 | 1      |
| 10 – 99               | 10     |
| 100 – 999             | 100    |
| 1,000 – 9,999         | 1,000  |
| 10,000 – 99,999       | 10,000 |
| 100,000 – 999,999     | 10,000 |
| 1,000,000 – 9,999,999 | 10,000 |
| 10,000,000 이상         | 10,000 |

step은 10,000에서 더 이상 증가하지 않습니다. 따라서 큰 금액에서도 변경 폭이 작게 유지됩니다. 이는 IDR 및 VND처럼 1달러당 단위 수가 많은 통화에서 중요합니다.

<Note>
  큰 step은 가격을 크게 이동시킵니다. 기본 step이 1,000이면 변환된 가격 **\$1,234**가 **\$999.00**이 됩니다. 변경 폭이 catalogue에 비해 너무 크다면 해당 범위의 step을 낮추세요.
</Note>

### 계산 예시

| 변환된 가격  | 통화  | Step  | 반올림 유형  | 고객 결제 금액    |
| :------ | :-- | :---- | :------ | :---------- |
| \$47.00 | USD | 10    | Nearest | **\$49.99** |
| \$47.00 | USD | 10    | Whole   | **\$50.00** |
| \$47.00 | USD | 10    | Floor   | **\$39.99** |
| \$5.00  | USD | 1     | Nearest | **\$4.99**  |
| ¥4,700  | JPY | 1,000 | Nearest | **¥4,999**  |
| ¥5      | JPY | 1     | Nearest | **¥4**      |

<Info>
  JPY처럼 소수점이 없는 통화는 1 whole unit만큼 줄어듭니다. 끝자리는 ¥4,999이며 ¥4,999.99가 아닙니다.
</Info>

### Charm Pricing이 적용되지 않는 경우

다음과 같은 경우 Dodo Payments는 변환된 가격을 그대로 유지합니다:

* step이 가격보다 큰 경우. 가격은 한 full step보다 적게 이동할 수 없습니다.
* 결과가 0 이하가 되는 경우.
* 금액에 일치하는 step이 없는 경우.

## Checkout에서의 적용 방식

Charm Pricing은 가격 계산의 마지막 단계입니다. localized price가 없는 상품의 순서는 다음과 같습니다:

1. **기본 가격** — 상품에 설정한 가격입니다.
2. **[Purchasing Power Parity](/features/purchasing-power-parity)** — 상품이 사용하도록 설정된 경우 국가별 비율이 적용됩니다.
3. **할인** — 모든 상품 할인 및 [discount code](/features/discount-codes)가 적용됩니다.
4. **[통화 변환](/features/adaptive-currency)** — 할인된 금액이 실시간 환율로 고객의 통화로 변환됩니다.
5. **Charm 반올림** — 결과가 깔끔한 끝자리로 조정됩니다.
6. **세금** — Charm이 적용된 금액을 기준으로 계산됩니다. [Tax-Inclusive Pricing](/features/tax-inclusive-pricing)을 참조하세요.

각 cart line은 개별적으로 계산됩니다. 취소선으로 표시되는 "할인 전" 가격에는 결제 금액과 동일한 반올림 step이 사용되므로, Charm이 제공하지 않은 할인을 표시하는 일은 없습니다.

<Warning>
  **Charm이 적용된 line은 전체 거래를 수수료 포함 방식으로 만듭니다.** 고객은 표시된 끝자리와 정확히 같은 금액을 결제하므로 Adaptive Currency 변환 수수료를 추가로 부과할 수 없습니다. 해당 수수료는 판매자가 부담합니다. [수수료 부담 주체 선택](/features/adaptive-currency#choose-who-bears-the-fee)을 참조하세요.
</Warning>

## 구독

구독은 고객이 구독할 때 반올림 step과 반올림 유형을 기록합니다. Dodo Payments는 갱신할 때마다 동일한 결정을 반복 적용합니다.

**고정되는 항목:** 반올림 step과 반올림 유형입니다. step을 수정하거나 반올림 유형을 변경해도 기존 구독의 가격은 다시 계산되지 않습니다. 고객에게는 동의한 규칙이 유지됩니다.

**변경될 수 있는 항목:** 금액입니다. 갱신할 때마다 현재 환율로 가격을 변환한 후 고정된 규칙을 적용합니다. 규칙이 변경되지 않아도 환율이 크게 변하면 갱신 금액이 달라질 수 있습니다.

<Warning>
  **플랜 변경 시 해당 구독에서 Charm이 제거됩니다.** 구독자가 [플랜을 변경하면](/features/subscription#subscription-plan-changes) 새 플랜은 플랜 변경 견적에 표시된 금액을 청구합니다. Dodo Payments는 해당 금액이나 이후 해당 구독의 갱신 금액에 Charm을 적용하지 않습니다.
</Warning>

## 주요 동작

| 동작                              | 세부 정보                                                                                                  |
| :------------------------------ | :----------------------------------------------------------------------------------------------------- |
| **Adaptive Currency 필요**        | Adaptive Currency가 꺼져 있으면 Charm Pricing은 작동하지 않습니다.                                                    |
| **Localized prices 우선**         | 일치하는 [Localized Pricing](/features/localized-pricing) 규칙이 있는 상품에는 Charm이 적용되지 않습니다. 설정한 정확한 금액이 적용됩니다. |
| **개당 적용**                       | 개당 가격에 Charm을 적용한 후 수량을 곱합니다.                                                                          |
| **할인 후 적용**                     | 먼저 기본 통화로 할인이 적용됩니다. 그 후 변환된 결과를 Charm으로 반올림합니다.                                                       |
| **세금 전 적용**                     | 세금은 Charm이 적용된 금액을 기준으로 계산되므로 합계가 일치합니다.                                                               |
| **수수료 포함 방식 강제**                | Charm이 적용된 거래의 통화 변환 수수료는 판매자가 부담합니다.                                                                  |
| **Pay What You Want에는 적용되지 않음** | 고객이 금액을 선택하므로 Charm이 적용되지 않습니다. [Pay What You Want](/features/pay-what-you-want)을 참조하세요.               |
| **사용량 기반 요금에는 고정 수수료만 적용**      | Metered usage charges에는 Charm이 적용되지 않습니다.                                                              |
| **별도의 webhook 없음**              | Charm이 적용된 금액은 다른 가격과 마찬가지로 payment 또는 subscription에 표시됩니다.                                            |

## 모범 사례

* **Nearest로 시작하세요.** 가격을 가장 적게 이동시킵니다. Floor는 적용되는 할인 폭을 감수할 수 있을 때만 사용하세요.
* **가장 큰 상품과 가장 작은 상품을 확인하세요.** 가격 범위에 따라 step이 달라지므로 \$5 상품과 \$1,200 상품은 다르게 작동합니다.
* **단위 수가 많은 통화의 step을 검토하세요.** IDR, VND 및 KRW 가격은 step이 10,000으로 고정되는 상위 범위에 들어갑니다.
* **출시 전에 구독 가격을 점검하세요.** 나중에 step을 수정해도 기존 구독자의 가격은 다시 계산되지 않습니다.
* **변환 수수료를 고려하세요.** Charm이 적용된 line은 수수료 포함 방식이므로 수수료가 매출에서 차감됩니다.

## 관련 항목

<CardGroup cols={2}>
  <Card title="Adaptive Currency" icon="money-bill-transfer" href="/features/adaptive-currency">
    변환된 가격에 Charm Pricing을 적용합니다. Charm Pricing에 필요합니다.
  </Card>

  <Card title="Purchasing Power Parity" icon="money-bill-trend-up" href="/features/purchasing-power-parity">
    가격에 민감한 국가에서 더 낮은 금액을 청구합니다. Charm 반올림 전에 실행됩니다.
  </Card>

  <Card title="Localized Pricing" icon="earth-americas" href="/features/localized-pricing">
    국가 또는 통화별로 정확한 가격을 설정합니다. Charm Pricing보다 우선합니다.
  </Card>

  <Card title="Tax-Inclusive Pricing" icon="receipt" href="/features/tax-inclusive-pricing">
    가격에 세금이 포함되는지 여부를 제어합니다.
  </Card>
</CardGroup>
