每日整理真实提问 356 个问题 · 726 个回答 需要系统性的技术文档?看 Shopify 技术百科 1000 篇 → 400-873-8117
已解决 提问于 2 个月前

价格用 money 过滤器后小数点后位数不对

2 个回答 3,183 次浏览 主题与 Liquid 最后活跃 2 个月前
58

日本站商品价格 12800 日元,前台显示成 ¥128.00,小数点和货币符号都不对。

陈
陈工提问者
Shopify 认证开发者 · 专注主题与 Liquid
2 个月前提问 · 已收到 2 个回答

2 个回答

已采纳 · 提问者确认解决
47

先把判断放在前面:money 过滤器按店铺的货币格式设置格式化并除以 100,跨市场时会套用展示货币的格式;日元本身没有小数位。

1处理顺序

  1. 改用 money_with_currency 或 money_without_trailing_zeros,按展示需求选。
  2. 在后台「设置 → 商店详情 → 货币格式」里确认目标市场的格式设置,日元应设为无小数位。
  3. 涉及 Markets 多币种时,确认页面上下文的市场正确,cart.currency.iso_code 是否符合预期。
  4. 价格计算统一用「分」为单位的整型处理,输出时才套过滤器,避免在 Liquid 里做除法。
  5. 检查是否有应用改写了价格格式,有些汇率应用会注入自己的格式化脚本。
验收:日本市场显示为 ¥12,800,美国市场显示 $128.00,两者切换后格式都正确。
风 风格技术团队 回答于 2 个月前
21

如果只需要数字不要符号,用 money_without_currency,但它仍然会除以 100 并按格式补小数位,日元场景下需要自己判断 cart.currency.iso_code 再决定是否 round。

镇 小镇 · Shopify Plus 架构顾问 · 2 个月前

你的处理方式是什么?

写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。

描述你遇到的现象、店铺环境(主题 / 套餐 / 应用)、已经试过哪些操作……
我要单独提问 工作日 10 分钟内回复,可直接加微信 fenggejishu