Shopify 用 metafield 指定商品模板不生效怎么排查
现象#
给商品写了 theme.template metafield 指向备用模板,前台仍渲染默认模板。
原因#
- metafield 命名空间/键不是主题识别的那个(老主题读
theme.template,新逻辑需自行实现) - metafield 类型不是
single_line_text_field,值带多余空格 - 值写的是文件名带
.json后缀,而主题比对的是不带后缀的 view 名 - 主题没有读取该 metafield 的代码,仅靠后台设置不生效
处理步骤#
- 在
product.json里读{{ product.metafields.theme.template.value }}确认能取到 - 在
layout/theme.liquid或商品模板入口按值切换:{% if tpl %}{% render 'product-' | append: tpl %}{% endif %} - 统一约定:metafield 只存 view 名(如
preorder),不存文件名 - 批量设置时用 Matrixify 或 Admin API 写入,避免手工漏改
验收标准#
不同商品按 metafield 值渲染不同布局,未设置的商品回落默认模板。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。