Magento 2.4.3升级后分类页无产品展示且后台属性无法保存求助
你遇到的两个问题都是Magento 2.4.1升2.4.3的已知兼容问题,可按以下步骤排查修复:
后台商品属性编辑JS报错修复
这个报错是因为2.4.3调整了属性编辑表单的DOM结构和支持的输入类型范围,有两种常见触发场景:
- 检查无效属性输入类型
执行以下SQL查询所有商品属性中使用了废弃输入类型的记录:
把查询到的属性SELECT attribute_id, attribute_code, frontend_input FROM eav_attribute WHERE entity_type_id = (SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product') AND frontend_input NOT IN ('text', 'textarea', 'date', 'boolean', 'select', 'multiselect', 'price', 'media_image', 'gallery', 'weight', 'textareaeditor', 'image');frontend_input改为系统支持的合法值,比如废弃的texteditor改为textareaeditor,自定义废弃类型改为text即可解决报错。 - 检查属性编辑模板重写
2.4.3对原生属性编辑模板Magento_Catalog::catalog/product/attribute/edit/form.phtml做了结构更新,如果有第三方扩展或自定义主题重写了该模板,需要同步原生模板的DOM结构,补充默认值字段的外层容器,否则JS会找不到对应节点触发undefined错误。
前端底层分类无产品展示修复
你搜索功能正常说明商品索引本身无问题,问题出在分类页的过滤逻辑,按优先级排查:
- 验证库存相关配置
升级过程中库存配置可能被重置,进入后台Stores > Configuration > Catalog > Inventory > Stock Options,确认Display Out of Stock Products配置和升级前一致;另外2.4.3新增了多库存来源过滤逻辑,检查对应商品是否分配到了当前网站绑定的库存来源。 - 检查分类锚点配置
2.4.3收紧了分类锚点的规则,非顶层分类如果未开启Is Anchor,只会展示直接绑定到当前分类的商品,如果你的商品绑定在上层分类,底层分类未开启锚点就会显示无产品,把出问题的分类Is Anchor设为Yes后重索引测试。 - 排查第三方扩展冲突
2.4.3调整了分类产品集合的addCategoryFilter方法逻辑,旧的第三方扩展如果重写了该方法或者在产品集合上加了自定义过滤插件,会导致分类过滤条件错误。可临时禁用所有非原生扩展,执行setup:upgrade、重索引清缓存后测试,逐个定位出问题的扩展。 - 验证分类商品关联数据
执行以下SQL检查对应分类是否有绑定商品记录,替换[分类ID]为出问题的底层分类ID:
如果返回值为0,说明升级过程中分类商品关联数据丢失,后台重新保存对应分类后重建SELECT COUNT(*) FROM catalog_category_product WHERE category_id = [分类ID];catalog_category_product索引即可恢复。
内容的提问来源于stack exchange,提问作者Lee Dyche
相关产品推荐
相关产品推荐

