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

Shopify技术问题:购物车页面如何正确读取店铺级disabledDates元字段

解决Shopify店铺层级元字段读取问题

问题描述

我在Shopify店铺层级创建了用于存储禁用日期的元字段,但在购物车页面代码中使用{{ shop.metafields.disabledDates.value }}无法读取该元字段内容,附上购物车页面的代码片段:

window.addEventListener("load", function() { 
  // Don't add 0 before month and date to make it two digit.
  //var disabledDays = ["2022-5-30","2022-7-4","2022-9-5","2022-11-24","2022-12-23","2022-12-24","2022-12-25","2022-12-30","2022-12-31","2023-1-1","2023-1-2"];
  disabledDays = {{ shop.metafields.disabledDays.value }};
  var minDate = new Date();
  var maxDate = new Date();
  maxDate.setDate((maxDate.getDate()) + 60);
  minDaysToShip = 2;        // Default minimum days
  if (minDate.getDay() == 5) {
    // Friday. Set min day to Tuesday. 4 days from now.
    minDaysToShip = 4;
  } else if (minDate.getDay() == 6) {

解决方法

  • 核对元字段命名与调用路径
    代码中写的是shop.metafields.disabledDays.value,但你描述里元字段叫disabledDates,先确认键名完全一致(Shopify元字段键名区分大小写)。另外必须带上命名空间,正确格式是{{ shop.metafields.命名空间.键名.value }},比如你的元字段命名空间是custom、键是disabled_dates,就要写成{{ shop.metafields.custom.disabled_dates.value }}。你可以去Shopify后台「设置→元字段→店铺」查看对应元字段的命名空间和键名,确保完全匹配。

  • 用JSON过滤器处理数组格式
    如果元字段存储的是日期数组,要确保它的类型是JSON而非单行文本。输出到JS变量时必须加上json过滤器,避免Liquid输出的内容导致JS语法错误:

    disabledDays = {{ shop.metafields.custom.disabled_dates.value | json }};
    
  • 检查元字段可见性
    确认元字段的可见性设置为「商店front end」或「所有」,如果设为「仅商店admin」,前端Liquid代码无法读取该字段。

  • 调试输出验证
    可以先在页面中临时添加{{ shop.metafields.custom.disabled_dates.value | inspect }},查看实际渲染的内容,判断是字段不存在还是格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:20:26