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

# 魅力定价

> 在每种货币中自动将换算后的价格四舍五入为 49.99 等简洁、经过心理学优化的尾数，无需手动为每个市场设置价格。

Charm Pricing 会在每次结账时将转换后的价格取整为简洁的结尾，例如 **49.99**。您只需设置一次规则。Dodo Payments 会将其应用于每位客户使用的货币。

## 什么是魅力定价？

[Adaptive Currency](/features/adaptive-currency) 会按照实时汇率换算你的基础价格。结果虽然准确，却很少具有吸引力：一款售价为 \$47.00 的产品今天可能显示为 **€43.12**，明天则显示为 **€43.47**。

Charm Pricing 会将转换后的金额调整为最接近的简洁结尾。客户看到的是 **€49.99**，而不是 €43.12。即使汇率发生变化，结尾也会保持稳定。

你无需为每个市场分别设置价格。选择一条舍入规则，它就会应用于每种货币。

<Note>
  Charm Pricing 需要 [Adaptive Currency](/features/adaptive-currency)。请先开启 Adaptive Currency。
</Note>

## 主要优势

* **每种货币都采用简洁价格** — 一条规则覆盖所有市场。您无需维护价格列表。
* **稳定的价格结尾** — 汇率变动几个百分点时，价格结尾不会改变。
* **无转换误差** — 客户不会看到 43.12 或 1043.87。
* **新市场自动应用** — 即使您从未为某种货币定价，也会获得一个简洁的价格。

<Info>
  如果要手动为某个市场设置确切价格，请改用 [Localized Pricing](/features/localized-pricing)。对于该产品，Localized Pricing 始终优先于魅力定价。
</Info>

## 启用魅力定价

<Steps>
  <Step title="Enable Adaptive Currency">
    前往 **Settings → Business**。在 **Business Settings** 中启用 **Adaptive Currency**。未启用该功能时，魅力定价不会生效。

    <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="Set up Charm Pricing 对话框，其中包含舍入类型选择器和 Try it 预览" style={{ maxHeight: '620px', width: 'auto' }} width="1122" height="404" data-path="images/charm-pricing/rounding-type.png" />
    </Frame>

    使用 **Try it** 在保存前检查数值。输入金额和货币后，对话框会显示结果及所使用的步长。

    Dodo Payments 会为每个范围提供默认步长。请参阅 [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="舍入步长表，每个价格范围对应一个步长" style={{ maxHeight: '440px', width: 'auto' }} width="527" height="485" data-path="images/charm-pricing/bands.png" />
    </Frame>
  </Step>

  <Step title="Confirm at checkout">
    <Check>
      打开测试结账，并将账单国家/地区设置为使用另一种货币的国家/地区。确认价格显示了你期望的尾数。
    </Check>
  </Step>
</Steps>

## 价格如何计算

Dodo Payments 会在货币转换后、任何折扣和税费之前，对**每单位标价**应用 Charm Pricing，然后从经过 Charm Pricing 处理的标价中扣除折扣 — 请参阅 [折扣与 Charm Pricing](#discounts-and-charm-pricing)。

1. **找到区间。** 标价会从舍入步长表中选择一个区间。\$47 的价格落在 10–99 区间，因此步长为 **10**。步长由标价决定，因此无论客户持有什么折扣代码，产品都会落在同一档位。
2. **选择目标值。** 步长会给出两个候选值：**40** 和 **50**。舍入类型决定选择哪一个。使用 **Nearest** 时，47 更接近 50。
3. **削去末位。** Dodo Payments 会减去步长的千分之一，因此 50 会变成 **49.99**。削减后的金额绝不会小于一个最小货币单位。**Whole** 会跳过此步骤。

### 取整类型

| 类型 | 选择规则 | \$47 变为 |
| :- | :- | :- |
| **Nearest** | 选择两个候选值中更接近价格的一个。相等时向上取整。 | \$49.99 |
| **Floor** | 始终选择低于价格的候选值。 | \$39.99 |
| **Ceiling** | 始终选择高于价格的候选值。 | \$49.99 |
| **Whole** | 选择最近的候选值，但不削减尾数。 | \$50.00 |

<Warning>
  **Floor** 可能会将价格降低接近一个完整步长。\$47 的价格会变为 \$39.99，降幅达 15%。选择前，请检查它对价格范围的影响。
</Warning>

### 取整步长

步长取决于价格的大小，单位为该货币的主要单位。以下是默认值。你可以为任意范围更改 **Rounding 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 |

步长增长会在 10,000 处停止。这样可以减少大额价格的变化；对于每美元对应许多货币单位的货币（例如 IDR 和 VND），这一点尤为重要。

<Note>
  较大的步长会使价格移动较远。使用默认的 1,000 步长时，换算价格 **\$1,234** 会变为 **\$999.00**。如果变化幅度对你的产品目录来说过大，请降低该范围的步长。
</Note>

### 示例

| 换算价格 | 货币 | 步长 | 舍入类型 | 客户支付 |
| :- | :- | :- | :- | :- |
| \$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,000 后四舍五入为整数，且最小为一个单位。结尾为 ¥4,999，而不是 ¥4,999.99。
</Info>

### Charm 不适用的情况

在以下情况下，Dodo Payments 会保持换算后的价格不变：

* 步长大于价格。价格无法移动小于一个完整步长的距离。
* 结果将为零或负数。
* 没有步长与该金额匹配。

## 结账时的应用方式

Charm Pricing 设置的是扣除任何折扣之前客户看到的价格。对于没有本地化价格的产品，顺序如下：

1. **基础价格** — 你在产品上设置的价格。
2. **[购买力平价](/features/purchasing-power-parity)** — 如果产品选择加入，则应用国家/地区百分比。
3. **[货币转换](/features/adaptive-currency)** — 按实时汇率将金额转换为客户的货币。
4. **Charm 舍入** — 转换后的标价调整为整洁的末位。这就是客户看到的小计价格。
5. **折扣** — 从经过 Charm Pricing 处理的标价中扣除产品折扣和[折扣代码](/features/discount-codes)。
6. **税费** — 根据折扣后的金额计算。请参阅[含税定价](/features/tax-inclusive-pricing)。

每个购物车行项目都会单独计算。Charm 舍入只对标价执行一次。折扣后的金额不会再次进行舍入。

### 折扣与 Charm Pricing

Charm Pricing 负责价格标签，而折扣则是从该价格标签中扣除的金额。以每月 \$199.00、步长为 100 且使用 **Nearest** 舍入的方案为例：

```text theme={null}
list  199.00 → charm → 199.90     (Subtotal)
10% of the charmed list  19.99    (Discount)
paid  199.90 − 19.99 = 179.91     (Total)
```

折扣如何应用到经过 Charm Pricing 处理的标价上，取决于折扣类型：

| 行项目上的折扣 | 延续的内容 | 原因 |
| :- | :- | :- |
| 仅百分比代码，且没有上限 | **比例** | 比例是价格的一部分，因此会随价格变化。 |
| 任何固定金额代码，或带上限的百分比代码 | **金额** | 固定金额代码指定的是一个金额，因此该金额不应随步长变化。 |

<Info>
  折扣后的行项目不会落在 Charm 末位上。经过 Charm Pricing 处理的标价会保留 `.99` 或 `.90` 末位；从中扣除百分比后没有理由继续保留该末位。在上面的示例中，客户支付的是 **\$179.91**，而不是一个经过 Charm Pricing 处理的数字。
</Info>

带有划线（对比价）价格的产品会显示真实的折扣行，因为划线价格会以相同方式作为扣减项体现。完全折扣的行项目仍为免费；如果固定金额代码大于经过 Charm Pricing 处理的标价，则会将价格限制为免费，而不会变成负数。

<Warning>
  **现有且带有折扣的 Charm 订阅可能会在下次续订时变更价格。** 续订会基于经过 Charm Pricing 处理的标价计算，而不是基于再次进行 Charm Pricing 处理后的折后价格计算。在 **Nearest** 或 **Ceiling** 下，经过 Charm Pricing 处理的标价会等于或高于原标价，因此百分比代码通常会比之前略高。在 **Floor** 下，该价格可能明显低于原标价，因此同一代码可能收取更低的费用。
</Warning>

<Warning>
  **应用 Charm 的订单行会使整个交易包含费用。** 客户支付的金额正好是他们看到的结尾价格，因此不能再额外收取 Adaptive Currency 转换费用。该费用由您承担。请参阅[启用费用包含](/features/adaptive-currency#enable-fees-inclusive)。
</Warning>

## 订阅

客户订阅时，订阅会记录其舍入步长和舍入类型。Dodo Payments 会在每次续订时重复使用相同的设置。

**固定不变的内容：** 舍入步长和舍入类型。如果你编辑步长或更改舍入类型，现有订阅不会重新定价。客户会继续使用他们同意的规则。

**可能变化的内容：** 金额。每次续订都会按当前汇率转换价格，然后应用固定规则。即使规则没有变化，汇率的大幅变动也可能改变续订金额。

<Warning>
  **更改方案会移除该订阅的 Charm Pricing。** 当订阅者[更改方案](/features/subscription#subscription-plan-changes)时，新方案会按方案变更报价中显示的金额计费。Dodo Payments 不会对该金额应用 Charm Pricing，也不会对该订阅之后的续订应用 Charm Pricing。
</Warning>

## 重要行为

| 行为 | 详情 |
| :- | :- |
| **需要 Adaptive Currency** | Adaptive Currency 关闭时，Charm Pricing 不执行任何操作。 |
| **本地化价格优先** | 具有匹配 [Localized Pricing](/features/localized-pricing) 规则的产品不会应用 Charm。您设置的确切金额会直接生效。 |
| **按单位应用** | 先对单位价格应用 Charm，然后再乘以数量。 |
| **折扣前应用** | Charm 会对转换后的列表价格进行取整。随后从应用 Charm 后的价格中扣除折扣。请参阅[折扣与 Charm Pricing](#discounts-and-charm-pricing)。 |
| **税费前应用** | 税费会在 Charm 取整以及任何折扣之后计算，从而确保总额一致。 |
| **强制包含费用** | 对于应用 Charm 的交易，您需要承担货币转换费用。 |
| **不适用于 Pay What You Want** | 客户自行选择金额，因此不会应用 Charm。请参阅 [Pay What You Want](/features/pay-what-you-want)。 |
| **基于用量时仅适用于固定费用** | 按计量用量收取的费用不会应用 Charm。 |
| **没有专属 webhook** | 应用 Charm 后的金额会像其他价格一样显示在支付或订阅中。 |

## 最佳实践

* **从 Nearest 开始。** 它对价格的调整幅度最小。只有在你接受其产生的折扣时，才使用 Floor。
* **检查价格最高和最低的产品。** 步长会随价格区间变化，因此 \$5 的产品和 \$1,200 的产品表现不同。
* **检查高最小货币单位货币的步长。** IDR、VND 和 KRW 价格会落在最高区间，其中步长固定为 10,000。
* **在发布前确定订阅价格。** 之后编辑步长不会为现有订阅者重新定价。
* **将转换费计入考虑范围。** 经过 Charm Pricing 处理的行项目包含费用，因此费用会从你的收入中扣除。

## 相关内容

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.