You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify主题schema标签JSON无效问题及产品自定义功能求助

问题1:多列模块「Invalid JSON in tag 'schema'」错误排查与修复

核心排查方向

  • 校验JSON语法:
    找到对应多列模块的Liquid文件(通常在sections/目录下,比如multi-column.liquid),定位{% schema %}与{% endschema %}之间的代码,重点检查:
    • 所有字符串必须用双引号(JSON不支持单引号)
    • 数组/对象的最后一个属性不能带多余逗号
    • 括号、方括号必须完全配对
    • 之前添加自定义文本框时,可能误删引号、多打逗号,比如错误示例:
      {
        "type": "text",
        "id": "custom_text",
        "label": "自定义文本", // 末尾多余逗号会触发JSON解析错误
      }
      
  • 对比原始代码:如果有该模块的原始备份,对比schema部分的差异,定位修改后引入的错误点。
  • 匹配动态源字段类型:添加图片链接的动态源时,确保schema中对应字段类型正确,比如图片链接需用"type": "url"或"type": "link",类型不匹配也会导致JSON报错。

修复示例(正确的schema片段)

{% schema %}
{
  "name": "多列展示模块",
  "settings": [
    {
      "type": "image_picker",
      "id": "column_image",
      "label": "列图片"
    },
    {
      "type": "url",
      "id": "image_link",
      "label": "图片链接",
      "dynamic_source": "product.url"
    },
    {
      "type": "text",
      "id": "custom_text",
      "label": "自定义文本"
    }
  ]
}
{% endschema %}
问题2:产品自定义文本框实现(用户输入名称)

方法1:Shopify后台自带配置(无需代码)

进入产品编辑页,在「选项」区域添加新选项:

  • 选项名称填「自定义名称」
  • 选项类型选择「单行文本」
    用户在产品页即可直接输入内容,订单详情会自动同步该自定义信息。

方法2:代码实现(全店统一生效)

步骤1:修改产品模板文件

找到产品模板Liquid文件(比如main-product.liquid或product-template.liquid),在加入购物车按钮上方插入输入框代码:

<div class="custom-name-field">
  <label for="custom_name">自定义名称:</label>
  <input type="text" id="custom_name" name="properties[自定义名称]" placeholder="请输入您的名称" required>
</div>
  • properties[自定义名称]会将输入内容保存到购物车项目属性中,订单详情可直接查看。

步骤2:添加样式(可选)

在主题CSS文件(比如base.css或theme.css)中添加样式:

.custom-name-field {
  margin: 1.5rem 0;
}
.custom-name-field label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
}
.custom-name-field input {
  width: 100%;
  padding: 0.8rem;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
}

内容的提问来源于stack exchange,提问作者Arianna Sadiwnyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:07:25