📘 Shopify Schema 侧边栏显示

摘要:侧边栏显示对应的文案

📘 Shopify Schema 侧边栏显示逻辑回顾

1. 核心显示原理

  • 抓取机制:Shopify 编辑器会自动抓取 Block 内部 settings 中的第一个文本类型字段(text 或 inline_richtext)的值,作为侧边栏列表的显示标题。
  • 兜底机制:如果第一个字段为空,或者抓取失败,侧边栏将回退显示 Schema 中定义的 "name" 值(如 "Product Type")。

2. 失效原因排查

当代码逻辑正确(文本字段排在第一位)但标题仍不更新时,通常由以下原因引起:

  • ID 命名干扰:某些复杂的 Section(如 Header)对特定 ID(如 product_type)存在渲染歧义或脚本锁定。
  • 实例缓存死锁:旧的 Block 实例保留了创建时的 Schema 快照,不响应代码顺序的微调。
  • URL 优先级:在 Header 块中,若包含 url 字段,编辑器有时会优先关联链接对象名而屏蔽自定义文本。

3. 终极解决方案:使用“魔法 ID”

经过测试验证,使用通用 ID text 或 title 具有最高优先级的渲染权。

  • 解决方案:在 settings 数组的最顶端增加一个 id: "text" 的字段。
  • 数据保全:为了不丢失已有数据,不要直接修改旧 ID,而是采用“双字段法”。

4. 最佳实践代码结构

在不同 Block 之间使用相同的 id: "text" 是安全的,只要在同一个 Block 内唯一即可。

JSON
{
  "type": "productType",
  "name": "Product Type",
  "settings": [
    {
      "id": "text",            // 1. 新增:专供侧边栏标题抓取,解决显示问题
      "type": "text",
      "label": "Admin Label (Internal Use)"
    },
    {
      "id": "type_text",       // 2. 保留:原有 ID 保持不动,确保历史数据不丢失
      "type": "inline_richtext",
      "label": "Product Type Title"
    },
    {
      "id": "product_url",
      "type": "url",
      "label": "Product Url"
    }
  ]
}

5. 操作核查清单

  1. 代码层面:确保 id: "text" 位于 settings 数组的第一位。
  2. 数据层面:在后台编辑器进入该 Block,手动在第一个框输入文字并 Save。
  3. 缓存层面:若不生效,F5 刷新浏览器或尝试新建一个 Block 实例进行验证。


评论