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

# 在 Upcart 中自定义货币格式

> 使用 Shopify Markets 和自定义脚本设置控制购物车中的货币显示方式。

<div id="overview">
  # 概述
</div>

此自定义可以更改货币符号和货币代码在 Upcart cart drawer 中的显示方式。你可以控制是否显示货币符号（例如 `$`）、货币代码（例如 `USD`）、它们出现的位置以及间距。

此设置要求：

* 你的商店正在使用 **Shopify Markets**，或
* 你只使用**单一市场**

***

<div id="where-to-add-the-script">
  ## 在哪里添加脚本
</div>

1. 前往 **Upcart > Cart Editor > Settings > Custom HTML**
2. 在 **Select HTML Location** 下拉菜单中选择 **Scripts (Before load)**
3. 将下面的脚本粘贴到输入框中
4. 保存你的更改

***

<div id="currency-formatting-script">
  ## 货币格式化脚本
</div>

```html theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
<!-- Upcart Currency Formatting Script -->
<script>
// ~~~~~~START OF MERCHANT SETTINGS~~~~~~
let useCurrencySymbol = true;
let useCurrencyCode = true;
let currencySymbolPlacement = 'left';     // 'left' or 'right'
let currencyCodePlacement = 'right';      // 'left' or 'right'
let currencySymbolSpacing = false;
let currencyCodeSpacing = true;
let currencyFormat = "{{amount}}";        // Use Shopify's currency format
// ~~~~~~END OF MERCHANT SETTINGS~~~~~~

formatCurrency();

function formatCurrency() {
  let currencyMap = fillCurrencyMap(new Map());
  let currencyCode = Shopify.currency.active;
  let currencySymbol = currencyMap.get(currencyCode);

  if (currencySymbolPlacement == 'left' && currencyCodePlacement == 'left') {
    window.upcartMoneyFormat =
      (useCurrencyCode ? currencyCode : "") +
      (currencyCodeSpacing && useCurrencyCode ? " " : "") +
      (useCurrencySymbol ? currencySymbol : "") +
      (currencySymbolSpacing && useCurrencySymbol ? " " : "") +
      currencyFormat;

  } else if (currencySymbolPlacement == 'left' && currencyCodePlacement == 'right') {
    window.upcartMoneyFormat =
      (useCurrencySymbol ? currencySymbol : "") +
      (currencySymbolSpacing && useCurrencySymbol ? " " : "") +
      currencyFormat +
      (currencyCodeSpacing && useCurrencyCode ? " " : "") +
      (useCurrencyCode ? currencyCode : "");

  } else if (currencySymbolPlacement == 'right' && currencyCodePlacement == 'right') {
    window.upcartMoneyFormat =
      currencyFormat +
      (currencyCodeSpacing && useCurrencyCode ? " " : "") +
      (useCurrencyCode ? currencyCode : "") +
      (currencySymbolSpacing && useCurrencySymbol ? " " : "") +
      (useCurrencySymbol ? currencySymbol : "");

  } else if (currencySymbolPlacement == 'right' && currencyCodePlacement == 'left') {
    window.upcartMoneyFormat =
      (useCurrencyCode ? currencyCode : "") +
      (currencyCodeSpacing && useCurrencyCode ? " " : "") +
      currencyFormat +
      (currencySymbolSpacing && useCurrencySymbol ? " " : "") +
      (useCurrencySymbol ? currencySymbol : "");

  } else {
    console.warn("Unexpected placement configuration. Falling back to default.");
    window.upcartMoneyFormat =
      (useCurrencySymbol ? currencySymbol : "") +
      (currencySymbolSpacing && useCurrencySymbol ? " " : "") +
      currencyFormat +
      (currencyCodeSpacing && useCurrencyCode ? " " : "") +
      (useCurrencyCode ? currencyCode : "");
  }
}

function fillCurrencyMap(map) {
  map.set('EUR', '€');
  map.set('GBP', '£');
  map.set('JPY', '¥');
  map.set('AUD', '$');
  map.set('CAD', '$');
  map.set('CHF', 'CHF');
  map.set('CNY', '¥');
  map.set('INR', '₹');
  map.set('RUB', '₽');
  map.set('BRL', 'R$');
  map.set('ZAR', 'R');
  map.set('MXN', '$');
  map.set('SGD', '$');
  map.set('NZD', '$');
  map.set('HKD', 'HK$');
  return map;
}
</script>
```

***

<div id="settings-explained">
  ## 设置说明
</div>

在脚本中，找到以下部分：

```
// ~~~~~~START OF MERCHANT SETTINGS~~~~~~
```

你可以调整以下值来控制货币在购物车中的显示方式：

|                             |                            |                                                           |
| --------------------------- | -------------------------- | --------------------------------------------------------- |
| 设置                          | 说明                         | 选项                                                        |
| **useCurrencySymbol**       | 显示或隐藏货币符号（例如：`$`）          | `true` / `false`                                          |
| **useCurrencyCode**         | 显示或隐藏货币代码（例如：`USD`）        | `true` / `false`                                          |
| **currencySymbolPlacement** | 符号显示的位置                    | `'left'` / `'right'`                                      |
| **currencyCodePlacement**   | 代码显示的位置                    | `'left'` / `'right'`                                      |
| **currencySymbolSpacing**   | 在符号和金额之间添加空格（例如：`$ 10.00`） | `true` / `false`                                          |
| **currencyCodeSpacing**     | 在代码和金额之间添加空格（例如：`10 USD`）  | `true` / `false`                                          |
| **currencyFormat**          | 控制数字格式                     | `{{amount}}`、`{{amount_no_decimals}}` 等（参考 Shopify 的货币选项） |

***

<div id="final-result">
  ## 最终效果
</div>

添加并保存脚本后：

* 货币符号和代码会完全按照配置显示
* 在 Upcart 抽屉的所有部分生效，包括奖励和 upsell
* 如果启用了 **Shopify Markets**，会自动适配

***

<div id="need-help">
  ## 需要帮助？
</div>

如需高级自定义，我们建议与 **Shopify Expert** 合作。Upcart 支持团队不协助编写或排查自定义代码。

[查看 Shopify Experts](https://www.shopify.com/partners/directory)
