Shopware 6下拉属性类型未隐藏不可组合选项是否为预期行为?
关于Shopware产品配置器下拉组件兼容性禁用逻辑的问题
这不是预期行为,属于Shopware产品配置器组件的一个已知实现不一致问题。
核心差异说明
- 普通配置组件(如单选按钮组):在
configurator.html.twig模板中,会基于已选配置项的组合兼容性,对不可组合的属性选项添加disabled属性,实现禁用效果。 - 下拉选择配置组件:当前
select.html.twig模板未同步实现该兼容性判断逻辑,下拉列表会渲染所有属性选项,不会过滤或禁用与已选配置不兼容的选项。
问题本质
这是组件开发时的疏漏,并非官方故意设计的未文档化行为。Shopware产品配置器的设计目标是所有类型的配置组件都遵循统一的组合兼容性规则,只是下拉组件的前端逻辑未跟上其他组件的实现。
临时修复方案
你可以自定义修改select.html.twig模板,参照普通组件的逻辑,在遍历下拉选项时添加兼容性判断:
{% for option in group.options %} <option value="{{ option.id }}" {% if option.selected %}selected{% endif %} {% if option.isCombinationAllowed is not same as(true) %}disabled{% endif %}> {{ option.name }} </option> {% endfor %}
官方后续处理
这类实现不一致问题通常会被开发者提交为GitHub Issue,Shopware官方大概率会在后续版本迭代中修复该逻辑漏洞,统一所有配置组件的行为。
内容的提问来源于stack exchange,提问作者loken
相关产品推荐
相关产品推荐

