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

Shopify Dawn主题JSON模板中添加自定义表单字段如何避免硬编码ID

表单ID生成逻辑

新版Dawn主题的商品表单ID采用固定规则拼接生成:product-form-{{ section.id }},你看到的template--14290791497780__main这串值就是商品页主section的全局唯一ID,会随着模板修改、section迁移自动变化,所以硬编码的写法很容易失效。

动态引用表单ID的解决方案

你不需要跨区块引用其他属性,Custom Liquid区块和生成表单的buy_buttons区块同属于商品页主section,共享section上下文,直接用以下两种方法替换硬编码的form属性值即可:

方法1:直接调用Dawn预定义变量

Dawn的商品主section默认已经预定义了product_form_id变量,直接调用即可:
把你的textarea代码中的
form="product-form-template--14302685823028__main"
替换为
form="{{ product_form_id }}"

完整的自定义Liquid代码如下:

<p class="line-item-property__field">
  <label for="engraving">Engraving</label>
  <p>
    <textarea id="engraving" name="properties[Engraving]" form="{{ product_form_id }}"></textarea>
  </p>
</p>

方法2:通用拼接写法(兼容性更强)

如果部分版本Dawn不支持预定义变量,也可以手动按规则拼接ID,效果完全一致:
form="product-form-{{ section.id }}"

以上两种写法都可以自动匹配当前表单的ID,更换模板、调整section结构都不需要修改代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:15:04