For AI agents: the complete documentation index is available at https://docs.halo.run/llms.txt, the full documentation bundle is available at https://docs.halo.run/llms-full.txt, and this page is available as Markdown at https://docs.halo.run/developer-guide/shop/theme/overview.md.

开发概述

商城主题是普通 Halo 主题的一部分。你可以在现有主题的 templates/shop/ 中添加商城页面,也可以开发以商城为主的完整主题。主题负责商品展示和顾客交互,商品、订单、支付与履约由 Halo 商城版提供。

本系列以 Halo 商城版 2.27 为基线。首次开发主题时,请先了解主题目录结构、主题配置和 Thymeleaf。

页面如何渲染

Halo 商城版内置了 shop-templates 提供的商城模板。访问商城时,优先使用当前主题中的同名模板;主题未提供的模板继续使用内置版本。

内置模板采用两种方式组合渲染:

  • Thymeleaf:在服务器端输出商品列表、商品详情正文和订单详情,便于展示内容和搜索引擎读取公开商品页面。
  • Web Components:在浏览器中处理购买规格、购物车、结算和支付等交互。内置组件由 Svelte 编译,使用这些组件的主题不需要采用 Svelte。

商品详情同时包含服务端商品内容和浏览器端购买组件。订单详情是 Thymeleaf 页面,不需要寻找一个 shop-page-order 组件。

选择开发方式

需求方式需要维护的内容
只调整颜色、圆角或内容宽度定制样式CSS 变量和少量样式覆盖
加入主题导航、页脚,统一页面布局复用模板页面外壳和被覆盖的模块
自定义商品列表或详情,保留交易交互页面与变量 + 组件自定义 HTML、数据展示及组件挂载
大幅调整交易页面结构与交互源码二次开发UI 源码、构建产物及 API 兼容性
使用其他前端框架实现商城前台接口与交易流程完整交易流程与错误处理

通常可以先复用内置模板,再逐页替换确有定制需求的部分。未覆盖的模块能够继续使用 Halo 升级带来的更新;复制进主题的模板和 UI 源码则需要自行同步。

版本与参考资料

shop-templates 的 main 是开发分支,可能包含 Halo 商城版暂未发布的功能。开发前从分支列表选择与目标 Halo 商城版对应的 release 分支,不要将最新版源码与旧版后端直接混用。

接下来按照快速开始完成第一个页面。