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.0 | Horizon |
|---|---|---|
| 最小可配置单位 | 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 次以上,迁移大概率划算;一次没有,就别折腾。
五、迁移怎么做才不翻车
不要在生产主题上直接改。标准动作是五步:
- 复制现网主题做基线,记下当前的核心指标(转化率、加购率、LCP),迁完要对比。
- 装 Horizon 到未发布槽位,把商品/集合/导航等内容先跑通,不做任何定制。
- 逐页重建版式,优先首页、产品页、集合页三张,用 group block 把重复版式沉淀成可复用单元。
- 补定制逻辑:清点 Dawn 上改过的每一处(自定义 section、注入的脚本、app 嵌入),一条条确认在 Horizon 上的落点。
- 用 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 本地修改主题开发指南。
八、延伸阅读
- Shopify 主题开发完整指南 — 主题开发的系统性框架
- Shopify 本地修改主题开发指南 — CLI 与本地工作流
- 怎么开发一个分区(Section) — section 与 block 的基础写法
- Shopify 目录中的 Blocks 详解 — 商家视角的 block 概念
- Shopify Rollouts 灰度发布与原生 A/B 测试 — 迁移上线的正确姿势
- Shopify 免费模板 vs 定制主题 — 要不要做定制的成本判断
- Shopify 应用体检:清理与性能排查 — 换主题前先排掉性能杂音
小结:Horizon 的核心不是外观,是把主题的最小单位从 section 下沉到可复用、可嵌套的 theme block,让运营能在编辑器里自己完成过去要开发介入的版式改动;代价是前端改写成 Web Components,老式的全局 JS 劫持会失效。新店直接用;跑 Dawn 的老店按”过去半年是否为改版付过两次以上外包费”来决定要不要迁;大促前 8 周内一律不动。 迁移一定要走”复制基线 → 未发布槽位重建 → 补定制 → Rollouts 灰度”的顺序。