Как отключить OOTB entryMergeFilterConfigurableProduct в пользовательском расширении? - PullRequest
0 голосов
/ 29 января 2020

Я хотел отключить один из фильтров ввода (entryMergeFilterConfigurableProduct), предоставляемый Hybris OOTB. Из-за этого фильтра некоторые записи корзины объединяются, хотя это и не предполагается согласно нашей бизнес-логике c.

. Я бы хотел переопределить определение в моем пользовательском расширении. Но он не работает должным образом.

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>

Не могли бы вы дать мне знать, что нужно изменить, чтобы отключить определенный фильтр?

1 Ответ

0 голосов
/ 18 февраля 2020

Для этой цели может быть полезен ListMegreDerective, но возможность удаления еще не введена. Это доступно только для списка популяции. https://help.sap.com/viewer/b490bb4e85bc42a7aa09d513d0bcb18e/1905/en-US/515ccff5d01b427f851694fb8ec989e6.html

Обычным решением является переопределение компонента, например entryMergeFilterProduct, или определение нового компонента для фильтров без определенного фильтра и создание псевдонима.

<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>
...