跳到主要内容

为 Vertex 主题配置 Shopify Markets 与多货币

Vertex 开箱即用,完全连接到 Shopify Markets — 无应用、无第三方货币转换器、无 FX 脚本。如果您向跨多国的采购团队、不同货币的经销商账户销售,或为不同地区运营贸易目录,本指南将带您从单一市场的起步店铺到精致的多市场 B2B + B2C 店铺前端,大约需要 30 分钟

B2B 优先

Shopify 中的 B2B 买家通过其公司分配固定到单一市场 — 他们无法自由切换货币。Vertex 仍然为他们渲染货币胶囊(信息性),以便他们始终一眼就能看到自己以何种货币付款。采购团队喜欢这一点 — 它减少了每个报价的一次往返邮件。下拉框中只会包含一个选项。


"Markets" 实际控制什么

Shopify Markets 是原生子系统,按国家/地区分组控制:

  • 买家看到并支付的货币(从您的店铺货币自动转换,或通过市场特定的价目表覆盖)
  • 店铺前端渲染的语言(来自您的 locales/ JSON;Vertex 提供英语、法语、意大利语、德语、西班牙语)
  • 定价策略 — 以实时 FX 汇率自动转换,带可选调整百分比,或按市场使用固定手动价目表
  • 域名 / 子文件夹example.com/fr-ca/ 或完全独立的 .ca 域名
  • 地理位置重定向 — 自动建议或自动将不匹配的访客重定向到他们最近的市场
  • 税务 + 关税处理(在支持 DDP 的市场中,如 Shopify Markets Pro)

Vertex 的工作是忠实地渲染此配置:货币胶囊、语言胶囊、hreflang 标签、每市场价格格式以及 B2B 问候栏都会在每个请求上查询实时 localization 对象。


前提条件

要求原因
Shopify 套餐:Basic 或更高Markets 包含在所有付费套餐中,但您需要至少 Basic 才能添加辅助市场。Shopify Plus 解锁无限市场 + Markets Pro(关税 + DDP)。
至少发布一个辅助市场localization.available_countries.size > 0 时,Vertex 的货币胶囊会渲染。没有辅助市场,只存在一个国家,下拉框没有切换内容 — 不过 B2B 买家的胶囊仍然渲染(请参阅下方的特殊情况:B2B + Markets)。
主题已发布或预览中某些 Markets 配置(地理位置重定向、默认市场)仅在主题已发布或通过自定义器预览时才能正确渲染。
已安装语言如果您想要语言切换器(而不仅仅是货币切换器),请在 Settings ▸ Languages 中发布相应的语言。Vertex 提供英语、法语、意大利语、德语和西班牙语的完整 UI 翻译。
Markets 是免费的

Markets — 包括多货币和多语言 — 在所有 Shopify 套餐中均包含。您只需通过 Shopify Payments 费用支付 FX 转换(已是您交易费的一部分),而不是为 Markets 功能本身付费。关税 + DDP 收取(Markets Pro)是付费附加组件。


逐步:启用 Markets

第 1 步 — 在 Shopify 后台打开 Markets

在您的 Shopify 后台中,导航到 Settings ▸ Markets

您将进入一个页面,列出您的主要市场(在您开设店铺时自动创建,通常是您的注册国家),以及您添加的任何辅助市场

Shopify admin: Settings → Markets

第 2 步 — 配置主要市场

点击进入您的主要市场。确认:

  • 国家 / 地区正确(这驱动默认税务 + 关税)
  • 货币是您的店铺货币(订单存在后无法更改)
  • 语言是您的默认语言(Settings ▸ Languages 中标记为 "Default" 的语言)

这是后备市场 — 每个未匹配到辅助市场的访客都会看到主要市场的定价和语言。

第 3 步 — 添加辅助市场

点击右上角的 Add market

对于每个新市场,您将配置:

字段输入内容
市场名称内部标签 — "European Union""Canada""Asia-Pacific Wholesale"
国家 / 地区共享此市场的定价 + 货币 + 语言的一个或多个国家。欧盟买家可以共享一个市场;如果您想要不同的 VAT 处理,可以将英国 + 欧盟拆分。
货币本地货币(例如,欧盟为 EUR,英国为 GBP,加拿大为 CAD)。除非您上传手动价目表,否则 Shopify 将以实时汇率从您的店铺货币自动转换。
语言Settings ▸ Languages 中发布的一种或多种语言。如果您有匹配的语言,此市场的默认语言会根据国家自动检测。
定价策略Adjust prices by % from store currency(例如,+5% 以覆盖 FX 风险),或针对该市场Use a manual price list
域名 / 子文件夹example.com/fr-fr/(子文件夹,推荐用于 SEO)或独立的 ccTLD,如 example.fr
使用子文件夹用于 SEO

子文件夹 URL(example.com/fr-fr/)整合域名权重,会由 Vertex 自动配对 hreflang 标签,且无需 DNS 工作。独立的 ccTLD 域名会分散您的权重,需要手动设置 hreflang。除非您有强烈的税务或法律理由使用 ccTLD,否则推荐子文件夹。

Markets → Add market form

第 4 步 — 选择您的定价策略

对于每个辅助市场,您有三种价格选项:

选项 A — 从店铺货币自动转换(默认) Shopify 以实时 FX 汇率将您的店铺货币价格转换为市场货币,四舍五入到您选择的格式(例如,以 .99 结尾)。每天更新一次。免费;无需手动维护。

选项 B — 自动转换 + 调整 与 A 相同,加上百分比调整(例如,+5%、-10%)应用于此市场中的每个产品。当您想要统一吸收 FX 风险或运行区域折扣/加价时很有用。

选项 C — 按市场手动价目表 上传 CSV(或使用后台 UI),按市场为每个款式提供显式价格。当您在某个地区有固定合同定价时是必需的 — 对拥有协商区域经销商定价的 B2B 分销商很常见。

B2B 目录覆盖 Markets 定价

如果 B2B 买家已登录且其公司分配了目录,则该买家的目录价格优先于 Markets 定价。当 B2B 买家未分配目录时,或对该市场中的 B2C / 访客购物者,Markets 定价是后备方案。

第 5 步 —(可选)启用地理位置重定向

仍在 Settings ▸ Markets 中,滚动到 Geolocation 卡片。

两个选择:

  • Recommend a different market — 在店铺前端顶部显示一个小栏("Looks like you're in France. Visit our French store?"),带 Visit / Stay 选择。不那么激进 — 推荐用于 B2B,因为某些采购买家故意使用美国店铺前端来比较价格。
  • Automatically redirect — 服务器端将访客重定向到他们最近的市场,无选择权。在纯 B2C 中转化率更高,但可能让 B2B 买家和机器人感到沮丧。

除非您有强烈的相反理由,否则选择 Recommend。Vertex 尊重您的任何选择 — 无需更改主题代码。

第 6 步 — 发布您的辅助市场

每个市场在市场列表中都有一个 Active / Inactive 切换。当您准备好让买家看到时,切换到 Active。Vertex 中的货币胶囊将在下次页面加载时立即开始呈现新市场的货币。


Vertex 如何渲染切换器

Vertex 的货币 + 语言胶囊由一个共享 snippet — snippets/localization-switchers.liquid — 渲染,该 snippet 包含在两个位置:

  1. 桌面 header(≥1170px) — 对于已登录的 B2B 买家,内嵌在琥珀色 B2B 问候栏中,或对于访客 + B2C 买家,内嵌在主白色 header 中
  2. 移动抽屉 + 平板(<1170px) — 在汉堡抽屉顶部,作为 2 列网格中的两个胶囊,方便单手操作

B2B greeting bar with currency pill (desktop) Mobile homepage (drawer with lang + currency pills)

胶囊解剖

每个胶囊都是一个紧凑的圆角按钮,带三个元素:

  • 圆形国旗头像 — 国家的国旗,来自精灵图或回退到 ISO 国家代码
  • 2 行文本堆栈 — 标签("Currency" 或 "Language")位于 ISO 代码("EUR"、"FR")上方
  • 箭头 — 表示胶囊会打开下拉面板

点击胶囊会打开一个自定义下拉面板 — Vertex 故意在 chrome 中不提供任何原生 <select> 元素。每个下拉框都使用共享的 <details> + <summary> + 自定义面板模式:

  • 在当前选定的选项旁渲染一个对勾图标
  • 高亮悬停状态
  • 在 Escape / 外部点击 / 同级下拉打开时关闭(互斥)
  • 以 120 ms 渐入动画进入

这意味着完整的键盘导航和 AT(辅助技术)支持,同时看起来不像默认浏览器下拉框。

"始终渲染" 规则

一个关键细节:localization-switchers.liquid 检查 localization.available_countries.size > 0而不是 > 1

这意味着:

  • 发布单一市场的店铺 — 胶囊渲染,下拉框包含一个选项(您的本国市场)
  • 发布两个或更多市场的店铺 — 胶囊渲染,下拉框包含所有已发布市场
  • 固定到单一市场的 B2B 买家 — 胶囊渲染(信息性),下拉框包含一个选项(他们的市场)

此决定是经过深思熟虑的。以 EUR 付款的 B2B 买家希望在每一页上看到 EUR,即使他们无法切换 — 这是对他们不会被收取 USD 的保证。采购团队在用户测试中反复标记静默货币切换的担忧;显示货币徽章可以防止这种混淆。

如果您想完全隐藏货币胶囊(例如,您只有一个市场并想要简洁),请打开 Customize,点击 Header 分区,然后关闭 Show currency switcher(在 Localization switchers 下)。语言胶囊(Show language switcher)是独立的。


特殊情况:B2B + Markets

Shopify B2B 有一个严格的规则:每家公司恰好固定到一个市场。当您在 Settings ▸ Customers ▸ Companies 中创建公司时,您选择它所属的市场。该公司中的买家将始终看到该市场的货币、语言和目录 — 他们无法切换。

Vertex 端到端尊重这一点:

为 B2B 买家渲染的内容行为
货币胶囊渲染。下拉框有 1 个选项(他们市场的货币)。显示为他们在结账时将被收取的货币。
语言胶囊如果在他们的市场中发布了多种语言,则渲染。否则使用单一选项渲染。
送货切换器如果买家有为其公司授权的多个送货地址,则渲染。与市场无关。
公司切换器在买家附属于多家公司时渲染(罕见;通常是母公司的应付账款人员)。
阶梯定价 + NET-30 + 免税全部来自公司的市场 + 目录分配。语言切换器中的任何内容都不会改变它。
不要删除 B2B 货币胶囊

如果买家问 "为什么我的货币胶囊不能更改货币?",答案是 因为 B2B 买家是固定的,而不是因为胶囊坏了。为了避免该问题而移除胶囊会产生更严重的问题 — 买家不再看到他们以何种货币付款。请保留它开启。


验证您的设置

发布 Markets + Vertex 主题后,运行此清单:

  1. 在隐身窗口中打开店铺前端。 您应该默认看到您的主要市场(如果是美国则 USD,如果是英国则 GBP 等)。
  2. 点击桌面 header 中的货币胶囊。 您所有已发布的市场都应出现。选择一个应使用新货币重新加载页面。
  3. 切换到移动断点(或在真实手机上打开)。打开汉堡抽屉。货币 + 语言胶囊应出现在抽屉顶部的 2 列网格中。
  4. 以测试 B2B 买家身份登录。 胶囊现在应在琥珀色问候栏(桌面端)中渲染,或保留在抽屉(移动端)中。下拉框应仅显示买家市场的货币。
  5. 检查页面 HTML。<head> 中查找 <link rel="alternate" hreflang="fr-fr" href="https://example.com/fr-fr/" /> 标签 — 每个已发布的语言一个。这些由 Vertex 的 SEO snippet 自动发出。
  6. 打开 Google Search Console ▸ International targeting 在 Google 重新抓取后(1–14 天),您的 hreflang 标签应显示为已验证且无错误。

故障排除

"我的货币胶囊未显示"

最常见的原因,按频率排序:

  1. 只发布了一个市场。 胶囊确实以一个选项渲染 — 确保您正在查找正确的位置(B2B 的问候栏、访客的主 header、移动端/平板的抽屉)。
  2. 货币切换器在 Header 分区中已关闭。 打开 Customize,点击 Header 分区,确认 Show currency switcher(在 Localization switchers 下)为开启
  3. 店铺前端模式设置为 "B2B-only" + 未登录 B2B 买家。 B2B-only 模式完全隐藏访客的主 header。登录或切换到 Hybrid
  4. 主题未发布。 Markets 仅在已发布的主题上正确渲染。预览主题适用于自定义器,但并不总是正确渲染 Markets。
  5. 缓存。 强制刷新(Ctrl+Shift+R)或在隐身模式下打开。

"价格未转换为本地货币"

  1. 市场为 InactiveSettings ▸ Markets 中切换到 Active
  2. 您在 Markets 禁用的 URL 上预览主题。 货币转换仅在已发布的主题上通过买家的实际市场 URL(例如 /fr-fr/)发生。
  3. B2B 目录覆盖。 分配了目录的 B2B 买家看到目录价格,而不是 Markets 价格。这是正确的行为。
  4. 缓存的店铺前端。 Shopify 积极缓存店铺前端。等待 5 分钟或强制刷新。

"缺少 hreflang 标签"

  1. 语言未发布。 前往 Settings ▸ Languages,确保每种语言都是 Published,而不仅仅是 Visible
  2. 主题太旧。 hreflang 标签在 Vertex v1.0.0 及更高版本中提供。在 Online Store ▸ Themes 中检查您的主题版本。
  3. 自定义代码覆盖。 如果您自定义了 theme.liquid,您可能已删除 {% render 'meta-tags' %}(或同等)include。恢复它。

"地理位置重定向过于激进"

Settings ▸ Markets ▸ Geolocation 中的 Automatically redirect 切换到 Recommend a different market。后者显示礼貌的 "Visit our French store?" 栏,而不是硬重定向。

"B2B 买家看到错误的货币"

买家的货币由 Settings ▸ Customers ▸ Companies ▸ [Company] ▸ Market 中的公司市场分配决定。在此处而不是在主题中更改市场。


多市场设置的 SEO 影响

配置良好的多市场店铺是强大的国际 SEO 信号。Vertex 自动发出:

  • 对您店铺中每个已发布语言的 <link rel="alternate" hreflang="xx-yy" ... />。告诉 Google "这个相同的页面在此 URL 上以此语言对此地区可用"。对在本地化 SERP 中排名至关重要。
  • 基于活跃语言的 <html lang="xx" dir="ltr|rtl">。帮助屏幕阅读器 + 浏览器翻译工具识别语言。
  • 活跃语言的 <meta property="og:locale" content="xx_YY"> + 同级的 og:locale:alternate。驱动每个地区的正确 Open Graph 预览。
  • 本地化 JSON-LD — Product、BreadcrumbList、Organization 和 FAQPage 架构都使用本地渲染的字符串(名称、描述、FAQ 答案)— 而不是主英语副本。

结果:Google 可以为法国买家提供您的 /fr-fr/ URL,为德国买家提供您的 /de-de/ URL,为西班牙买家提供您的 /es-es/ URL — 除非他们明确请求,否则永远不会向他们显示英语版本。

在定价请求中建议货币

如果您从事国际 B2B,请在您的 RFQ 表单中提及买家的预期货币。Vertex 的 RFQ 页面不会自动检测货币,因此如果您定期使用多种货币进行谈判,您将需要一个免费文本的 "Quote currency" 字段。


相关阅读


总结

  • Shopify Markets 是控制每市场货币、语言、定价和域名的原生子系统。所有付费套餐免费。
  • Vertex 的货币胶囊甚至对单一市场和单一选项 B2B 场景也会渲染 — 按设计为信息性。
  • B2B 买家通过公司固定到一个市场;胶囊变成 "当前货币" 徽章。
  • hreflang 标签会自动为每个已发布的语言发出。帮助 Google 向国际搜索者提供正确的 URL。
  • 当您需要固定区域经销商定价时,手动价目表会覆盖自动转换。
  • 在 B2B 上下文中,地理位置应设置为 Recommend,而不是 Auto-redirect

首次多货币渲染的时间:约 30 分钟,包括主题发布 + 市场验证。