Magento添加子分类报错求助:预设产品分类列表不在可用列表中
解决Magento添加子分类时的「List of predetermined products classified by does not exist in List of available products classified by」错误
这个问题我之前帮不少Magento开发者排查过,本质是你设置的「产品分类依据」和系统当前可用的属性不匹配——大概率是之前用的某个分类属性被删除、禁用,或者你选了一个当前分类不支持的属性。下面是具体的解决步骤:
步骤1:检查分类的「Display Settings」配置
- 进入Magento后台,找到你要编辑的子分类(也别忘了检查父分类,因为子分类可能继承了父分类的设置)
- 切换到「Display Settings」标签页
- 定位到「Products Classified By」或类似名称的选项(不同Magento版本位置略有差异)
- 查看当前选择的分类依据是什么,确认是不是选了一个已经被删除的自定义属性,或者某个系统属性被意外禁用了
步骤2:验证属性的可用性
- 进入后台「Stores」>「Attributes」>「Product」页面
- 搜索你刚才看到的分类依据属性,重点检查:
- 该属性是否还存在,如果找不到,说明是属性被删除导致的问题
- 属性的「Status」是否为「Enabled」状态
- 属性的「Scope」是否匹配你的店铺设置(比如多店铺场景下,要确保该属性在当前店铺可用)
- 该属性是否被添加到了对应产品使用的属性集里(自定义属性需要关联属性集才能生效)
步骤3:重置分类的分类依据设置
如果确认属性无效或找不到对应属性,直接把「Products Classified By」设置为「None」或者系统默认选项(比如「Position」),保存分类后再重新配置你需要的分类方式。
步骤4:清除系统缓存
完成上述操作后,一定要进入「System」>「Cache Management」,清理所有缓存(尤其是「Configuration」和「Page Cache」),确保修改能立即生效。
额外排查点(如果以上步骤无效)
- 检查父分类设置:子分类可能继承了父分类的「Display Settings」,如果父分类用了无效属性,子分类也会跟着出问题
- 数据库核对(谨慎操作):如果怀疑属性被误删,可以在
eav_attribute表中搜索属性编码,确认是否真的被删除(操作数据库前务必备份)
小贴士:以后用自定义属性做分类依据时,别轻易删除或禁用该属性,否则所有关联的分类都会触发这个错误哦。
内容的提问来源于stack exchange,提问作者Shaf Chaudhry
相关产品推荐
相关产品推荐

