Skip to Content
🎉 探索 Shopify 的无限可能 结构化知识 + 实战案例,持续更新中...
进阶教程
Horizon 主题系统指南

Shopify Horizon 主题系统指南:架构变了什么,要不要从 Dawn 换过来

Horizon 不是”又一个免费主题”,而是 Shopify 换掉了主题的搭建方式。 Dawn 时代你在主题编辑器里能做的事被 section 的 schema 框死;Horizon 把最小单位从 section 下沉到了 theme block(主题积木)——同一个积木可以在任何 section 里复用,还能互相嵌套。这意味着过去要写代码才能做的版式,现在在编辑器里拖就行

Horizon 于 2025 年 5 月随 Shopify Editions 发布,附带 10 套免费预设(Fabric、Ritual、Vessel 等),并在 2026 年成为新店的默认主题。老店没有被强制迁移——所以现在站里跑 Dawn 的人,面对的是一个实打实的选择题。

权威来源Horizon 主题源码(GitHub) · Theme blocks 官方文档 · Shopify Changelog

一句话定位

角度Horizon 是什么 / 不是什么
是什么基于 theme blocks 的主题架构,配 10 套官方预设
不是什么不是 Dawn 的换肤版,不是付费主题,不是必须迁移
最大变化积木可复用、可嵌套;前端改写成 Web Components
谁该换改版频繁、靠运营自己搭页面的店
谁先别换主题深度定制过、临近大促、靠一堆老 app 的店

一、Horizon 与 Dawn:差在哪一层

很多人以为区别是”长得不一样”。真正的区别在积木能不能复用、能不能嵌套

维度Dawn / 传统 OS 2.0Horizon
最小可配置单位section 内定义的 block主题级 theme block
复用性block 只能在定义它的 section 里用任意 section 都能用同一个积木
嵌套层级基本 1 层(section → block)支持多层嵌套(官方文档说明最多 8 层)
版式自由度受 section schema 限制编辑器内可组合布局
前端实现传统 JS + section 渲染各功能封装为 Web Components
典型改版方式找开发改 Liquid运营自己在编辑器里搭

一句话记:Dawn 是”给你几个固定格子往里填”,Horizon 是”给你一盒积木自己拼”。


二、theme block 到底怎么工作

这是全文最需要看懂的一节,商家也建议扫一眼——它决定了你的运营同事能自己做多少事。

文件位置变了

theme block 是放在主题根目录 blocks/ 下的独立 Liquid 文件:

blocks/ text.liquid image.liquid button.liquid group.liquid sections/ ...

每个文件自带 markup、样式和 {% schema %}它不属于任何一个 section,这正是复用的前提。

section 怎么接收积木

section 里用一个标签占位,积木按 JSON 模板里存的顺序渲染:

{% content_for 'blocks' %}

然后在 section 的 schema 里声明允许哪些类型:

{ "blocks": [ { "type": "@theme" }, { "type": "@app" } ] }
  • @theme:允许商家添加任意主题积木
  • @app:允许应用积木
  • 想限制范围,就把具体 type 一个个列出来,而不是用 @theme

嵌套:group block 是关键

积木自己也可以再渲染 {% content_for 'blocks' %},于是就有了嵌套。Horizon 里最常用的是 group block——把标题、商品网格、促销图打包成一个可整体复用的单元。

实际收益是这样的:过去”首页第三屏那套组合,产品页也要来一份”,得复制一遍 section 代码;现在做成 group,改一处,处处生效

红线:嵌套能到 8 层不等于应该嵌 8 层。超过 3 层,运营在编辑器里就找不到东西了,同时嵌套越深、渲染开销越大。把嵌套当作”组织版式”的工具,不是炫技。


三、Web Components 改写:开发者要注意什么

Horizon 把变体选择器、图库、购物车抽屉、预测搜索等都做成了自定义元素(custom elements),各自封装状态与行为。

对开发的实际影响:

场景Dawn 时代的做法Horizon 下
改变体切换逻辑直接改主题全局 JS扩展/替换对应组件,别全局劫持
加第三方脚本随便插注意组件内部 DOM 可能被重渲染
覆盖样式全局 CSS 硬覆盖优先用主题设置与 CSS 变量
调试theme.js定位到具体组件文件

红线不要用全局选择器去劫持组件内部 DOM。组件会重新渲染,你挂上去的事件会静默失效——这是 Horizon 上最常见、也最难查的一类”改完当时好用,第二天就没了”的 bug。


四、要不要迁移:一张决策表

先说结论:大多数跑得好好的 Dawn 店,没有必须迁的理由。 迁移的价值不在”更快”或”更好看”,而在把改版能力从开发手里交回运营手里

你的情况建议理由
新店 / 还没上线✅ 直接用 Horizon没有迁移成本
Dawn 未做深度定制,运营常改页面✅ 排期迁移长期省下最多外包费
主题被深度定制过(改了 10+ 文件)◐ 先评估,按季度排定制逻辑要逐条重做
距离大促 < 8 周❌ 不要动大促前换主题是自找麻烦
依赖多个嵌入式老 app◐ 先查 app 兼容性老 app 的 script 标签可能失效
用的是付费主题(Impulse / Prestige 等)❌ 无需迁付费主题有自己的架构与更新节奏

判断阈值可以更直接一点:过去 6 个月,你为”改页面版式”付过外包费吗?付过 2 次以上,迁移大概率划算;一次没有,就别折腾。


五、迁移怎么做才不翻车

不要在生产主题上直接改。标准动作是五步

  1. 复制现网主题做基线,记下当前的核心指标(转化率、加购率、LCP),迁完要对比。
  2. 装 Horizon 到未发布槽位,把商品/集合/导航等内容先跑通,不做任何定制。
  3. 逐页重建版式,优先首页、产品页、集合页三张,用 group block 把重复版式沉淀成可复用单元。
  4. 补定制逻辑:清点 Dawn 上改过的每一处(自定义 section、注入的脚本、app 嵌入),一条条确认在 Horizon 上的落点。
  5. 用 Rollouts 灰度发布,先放 10% 流量跑满一周再全量——这一步现在是原生能力,别再直接点”发布”。

配套阅读:灰度与 A/B 的完整操作见 Shopify Rollouts 灰度发布与原生 A/B 测试

时间参考(含测试,不含设计返工):

店铺情况大致工期
无定制、标准品类1–2 周
中度定制(自定义 section 3–5 个)3–5 周
重度定制 + 多 app 嵌入6–10 周

六、常见误区

  • “Horizon 更快,换了性能就好了” —— 架构不背性能的锅。拖慢站点的通常是图片、app 脚本和第三方像素。换主题前先做一次 应用体检
  • “10 套预设 = 10 个主题” —— 它们是同一套架构上的不同预设,换预设不等于重做主题
  • “迁移就是换个皮” —— 真正的成本在 1) 重建定制逻辑,2) 验证 app 兼容性,3) 重新跑通转化路径。
  • “运营能自己搭页面,就不需要开发了” —— 积木要有人先设计与封装。Horizon 降低的是改版成本,不是初始搭建成本。
  • “先全量上线,有问题再回滚” —— 回滚能回主题,回不了那一周的转化率。

七、常见问题(FAQ)

Q:Horizon 是免费的吗? A:是。Horizon 及其预设由 Shopify 官方提供,在主题商店免费获取,无套餐限制。

Q:我现在的 Dawn 主题会被强制升级吗? A:不会。Horizon 是新店默认主题,已有店铺不会被自动迁移。你可以无限期继续用 Dawn。

Q:Horizon 支持 B2B 吗? A:支持,Shopify 已把批量定价、起订量等 B2B 能力加进 Horizon 主题。具体开放范围以 Changelog 为准。

Q:theme block 和 app block 冲突吗? A:不冲突。section 的 schema 里 @theme@app 可以同时声明,商家在同一个区域里既能加主题积木,也能加应用积木。

Q:迁移会影响 SEO 吗? A:URL 结构不变的前提下影响有限,但结构化数据、hreflang 标签、图片 alt、H 标签层级要逐页核对——这几项是换主题时最常丢的。参考 Shopify 谷歌 SEO 优化指南

Q:付费主题会转向 Horizon 架构吗? A:主流付费主题厂商会陆续采用 theme blocks,但节奏各不相同。买付费主题前,直接问作者是否支持 theme blocks 与嵌套——这比看演示图重要得多。

Q:本地开发流程有变化吗? A:仍然用 Shopify CLI(shopify theme dev / push / pull),变化在于你要新维护一个 blocks/ 目录。见 Shopify 本地修改主题开发指南


八、延伸阅读


小结:Horizon 的核心不是外观,是把主题的最小单位从 section 下沉到可复用、可嵌套的 theme block,让运营能在编辑器里自己完成过去要开发介入的版式改动;代价是前端改写成 Web Components,老式的全局 JS 劫持会失效。新店直接用;跑 Dawn 的老店按”过去半年是否为改版付过两次以上外包费”来决定要不要迁;大促前 8 周内一律不动。 迁移一定要走”复制基线 → 未发布槽位重建 → 补定制 → Rollouts 灰度”的顺序。

最后更新时间: