Shopify Online Store 2.0

Shopify 用 metafield 指定商品模板不生效怎么排查

现象#

给商品写了 theme.template metafield 指向备用模板,前台仍渲染默认模板。

原因#

  • metafield 命名空间/键不是主题识别的那个(老主题读 theme.template,新逻辑需自行实现)
  • metafield 类型不是 single_line_text_field,值带多余空格
  • 值写的是文件名带 .json 后缀,而主题比对的是不带后缀的 view 名
  • 主题没有读取该 metafield 的代码,仅靠后台设置不生效

处理步骤#

  1. 在 product.json 里读 {{ product.metafields.theme.template.value }} 确认能取到
  2. 在 layout/theme.liquid 或商品模板入口按值切换:{% if tpl %}{% render 'product-' | append: tpl %}{% endif %}
  3. 统一约定:metafield 只存 view 名(如 preorder),不存文件名
  4. 批量设置时用 Matrixify 或 Admin API 写入,避免手工漏改

验收标准#

不同商品按 metafield 值渲染不同布局,未设置的商品回落默认模板。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。