localization 国家与语言两个字段怎么区分
现象#
货币切换器用 localization.language.iso_code 判断国家,选加拿大后价格仍是 USD;另一个站点改了 country 但界面语言没跟着变。
原因#
- country 决定币种、税费与运费,language 只决定界面文案,两者相互独立
- country 是市场里的具体国家,不是市场本身,多国市场内国家共用一种币种
- 切换国家时若当前语言不被该国支持,会自动回退到该国默认语言
- localization 表单只认 country_code 与 language_code 两个 input name
处理步骤#
- 临时输出
{{ localization.country.iso_code }}与语言字段对比 - 国家下拉用
localization.available_countries循环,不要写死国家清单 - 表单里 input 的 name 必须是
country_code,写成 country 不会生效 - 语言下拉同理用
language_code与localization.available_languages - 提交时走
{% form 'localization' %}外层表单,检查 URL 前缀变化
验收标准#
选加拿大后 URL 变为 /en-ca,localization.country.currency.iso_code 为 CAD,语言仍为 en。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。