如何在自定义扩展中禁用OOTB条目合并过滤器可配置产品?



我想禁用 Hybris OOTB 提供的条目过滤器之一(entryMergeFilterConfigurableProduct(。由于此过滤器,一些购物车条目正在合并,尽管根据我们的业务逻辑,它不应该合并。

我想覆盖自定义扩展中的定义。但它没有按预期工作。

OOTB xml代码:

<alias name="defaultEntryMergeStrategy" alias="entryMergeStrategy"/>
<bean id="defaultEntryMergeStrategy" class="de.hybris.platform.commerceservices.order.strategies.impl.DefaultEntryMergeStrategy">
<property name="entryMergeFilters" ref="commerceCartEntryMergeFilters"/>
</bean>

<bean id="entryMergeFilterConfigurableProduct" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterConfigurableProduct">
<property name="productConfigurableChecker" ref="productConfigurableChecker" />
</bean>
<bean id="entryMergeFilterIsEntryUpdatable" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterIsEntryUpdatable">
<property name="entryOrderChecker" ref="commerceOrderEntryModifiableChecker" />
</bean>
<bean id="entryMergeFilterPointOfService" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterPointOfService"/>
<bean id="entryMergeFilterGiveAway" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterGiveAway"/>
<bean id="entryMergeFilterProduct" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterProduct"/>
<bean id="entryMergeFilterUnits" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterUnits"/>
<bean id="entryMergeFilterEntryGroup" class="de.hybris.platform.commerceservices.order.impl.EntryMergeFilterEntryGroup"/>
<util:list id="commerceCartEntryMergeFilters" value-type="de.hybris.platform.commerceservices.order.EntryMergeFilter">
<ref bean="entryMergeFilterEntryGroup"/>
<ref bean="entryMergeFilterGiveAway"/>
<ref bean="entryMergeFilterProduct"/>
<ref bean="entryMergeFilterUnits"/>
<ref bean="entryMergeFilterPointOfService"/>
<ref bean="entryMergeFilterConfigurableProduct"/>
<ref bean="entryMergeFilterIsEntryUpdatable"/>
</util:list>

您能告诉我需要更改哪些内容才能禁用特定过滤器吗?

为此,ListMegreDerective可能会有所帮助,但尚未引入删除功能。这仅适用于填充器列表。 https://help.sap.com/viewer/b490bb4e85bc42a7aa09d513d0bcb18e/1905/en-US/515ccff5d01b427f851694fb8ec989e6.html

通常的解决方案是覆盖 bean,例如 entryMergeFilterProduct 或为没有特定过滤器的过滤器定义新 bean 并创建一个别名。

<alias name="customizedYourAssignedCartEntryMergeFilters" alias="commerceCartEntryMergeFilters"/>

<util:list id="customizedYourAssignedCartEntryMergeFilters" value-type="de.hybris.platform.commerceservices.order.EntryMergeFilter">
<ref bean="entryMergeFilterEntryGroup"/>
<!-Your list of the Filters-->
</util:list>

最新更新