Shopify 主题与 Liquid

Shopify money 过滤器在多币种下金额不对怎么办

现象#

切换市场币种后,商品价格仍按本币显示;或者价格少了一位、小数位被吃掉,加购后购物车金额又正常。

原因#

  • money 按店铺本位币格式化,多币种要配合 money_with_currency 与 localization 才有符号
  • 模板里手动把 price 除以 100 再输出,遇到三位小数币种就丢精度
  • 前端脚本自己拼接价格,取的是 product.price 而不是当前市场的展示价
  • 主题没有引用 {{ content_for_header }},Markets 的币种脚本未加载

处理步骤#

  1. 前台价格统一改用过滤器:{{ product.price | money }},需要币种符号时用 money_with_currency
  2. 删除模板里所有手写的 / 100、parseInt、toFixed(2) 拼接
  3. 前端需要金额时,从商品 JSON 的 presentment_prices 取当前市场的价格,不要用本位币换算
  4. 确认 <head> 内有 {{ content_for_header }},并且 Markets 已启用对应市场与币种

验收标准#

逐个市场切换后,商品页、集合页、购物车三处金额一致;带三位小数的币种(如 KWD)不被截断。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。