Shopify 市场与本地化

localization 国家与语言两个字段怎么区分

现象#

货币切换器用 localization.language.iso_code 判断国家,选加拿大后价格仍是 USD;另一个站点改了 country 但界面语言没跟着变。

原因#

  • country 决定币种、税费与运费,language 只决定界面文案,两者相互独立
  • country 是市场里的具体国家,不是市场本身,多国市场内国家共用一种币种
  • 切换国家时若当前语言不被该国支持,会自动回退到该国默认语言
  • localization 表单只认 country_code 与 language_code 两个 input name

处理步骤#

  1. 临时输出 {{ localization.country.iso_code }} 与语言字段对比
  2. 国家下拉用 localization.available_countries 循环,不要写死国家清单
  3. 表单里 input 的 name 必须是 country_code,写成 country 不会生效
  4. 语言下拉同理用 language_code 与 localization.available_languages
  5. 提交时走 {% form 'localization' %} 外层表单,检查 URL 前缀变化

验收标准#

选加拿大后 URL 变为 /en-ca,localization.country.currency.iso_code 为 CAD,语言仍为 en。

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