Shopify money 过滤器在多币种下金额不对怎么办
现象#
切换市场币种后,商品价格仍按本币显示;或者价格少了一位、小数位被吃掉,加购后购物车金额又正常。
原因#
money按店铺本位币格式化,多币种要配合money_with_currency与 localization 才有符号- 模板里手动把
price除以 100 再输出,遇到三位小数币种就丢精度 - 前端脚本自己拼接价格,取的是
product.price而不是当前市场的展示价 - 主题没有引用
{{ content_for_header }},Markets 的币种脚本未加载
处理步骤#
- 前台价格统一改用过滤器:
{{ product.price | money }},需要币种符号时用money_with_currency - 删除模板里所有手写的
/ 100、parseInt、toFixed(2)拼接 - 前端需要金额时,从商品 JSON 的
presentment_prices取当前市场的价格,不要用本位币换算 - 确认
<head>内有{{ content_for_header }},并且 Markets 已启用对应市场与币种
验收标准#
逐个市场切换后,商品页、集合页、购物车三处金额一致;带三位小数的币种(如 KWD)不被截断。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。