cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Correct way to Override defaultCheckoutFacade

Former Member
0 Kudos
1,933

I am taking the commerce 5 trail using hybris 5.4.0.4. Just for grins, I wanted to see how to override the defaultCheckoutFacade. I added an entry to merchandisefacades-spring.xml and created a class in the merchandisefacades project that extends DefaultCheckoutFacade.java.

My custom class (MerchandiseCheckoutFacade.java) is never called. I tried using the alias for defaultCheckoutFacade but I do not think I am doing it correctly.

I did add commercefacades to merchandisefacades extensioninfo.xml file and as a build dependency.

Following is the code - the accelerator-spring.xml and commercefacades-spring.xml entries were unchanged and are just presented as a reference.

Any advice would be appreciated. Please, forgive the code snippets, they are hard to format...

acceleratorfacades-spring.xml

 <alias name="defaultAcceleratorCheckoutFacade" alias="acceleratorCheckoutFacade"/>
     <bean id="defaultAcceleratorCheckoutFacade" class="de.hybris.platform.acceleratorfacades.order.impl.DefaultAcceleratorCheckoutFacade" parent="defaultCheckoutFacade">
         <property name="uiExperienceService" ref="uiExperienceService"/>
         <property name="acceleratorCheckoutService" ref="acceleratorCheckoutService"/>
         <property name="pointOfServiceService" ref="pointOfServiceService"/>
         <property name="pointOfServiceDistanceConverter" ref="pointOfServiceDistanceConverter"/>
         <property name="cartModificationConverter" ref="cartModificationConverter"/>
     </bean>

commercefacades-spring.xml

 <alias name="defaultCheckoutFacade" alias="checkoutFacade"/>
     <bean id="defaultCheckoutFacade" class="de.hybris.platform.commercefacades.order.impl.DefaultCheckoutFacade"
             >
         <property name="cartFacade" ref="commerceCheckoutCartFacade"/>
         <property name="commerceCheckoutService" ref="commerceCheckoutService"/>
         <property name="cartService" ref="cartService"/>
         <property name="addressConverter" ref="addressConverter"/>
         <property name="deliveryService" ref="deliveryService"/>
         <property name="addressReversePopulator" ref="addressReversePopulator"/>
         <property name="userService" ref="userService"/>
         <property name="priceDataFactory" ref="priceDataFactory"/>
         <property name="enumerationService" ref="enumerationService"/>
         <property name="commerceCardTypeService" ref="commerceCardTypeService"/>
         <property name="customerAccountService" ref="customerAccountService"/>
         <property name="creditCardPaymentInfoConverter" ref="creditCardPaymentInfoConverter"/>
         <property name="deliveryModeConverter" ref="deliveryModeConverter"/>
         <property name="zoneDeliveryModeConverter" ref="zoneDeliveryModeConverter"/>
         <property name="orderConverter" ref="orderConverter"/>
         <property name="modelService" ref="modelService"/>
         <property name="cardTypeConverter" ref="paymentCardTypeConverter"/>
         <property name="commonI18NService" ref="commonI18NService"/>
         <property name="baseStoreService" ref="baseStoreService"/>
         <property name="checkoutCustomerStrategy" ref="checkoutCustomerStrategy"/>
         <property name="countryConverter" ref="countryConverter"/>
     </bean>

merchandisefacades-spring.xml

 <alias name="merchandiseCheckoutFacade" alias="checkoutFacade"/>
     <bean id="merchandiseCheckoutFacade" class="de.hybris.platform.merchandise.facades.order.impl.MerchandiseCheckoutFacade" parent="defaultCheckoutFacade"/>

MerchandiseCheckoutFacade.java

 package de.hybris.platform.merchandise.facades.order.impl;
 
 import de.hybris.platform.commercefacades.order.data.OrderData;
 import de.hybris.platform.commercefacades.order.impl.DefaultCheckoutFacade;
 import de.hybris.platform.order.InvalidCartException;
 
 import org.apache.log4j.Logger;
 
 
 /**
  *
  */
 public class MerchandiseCheckoutFacade extends DefaultCheckoutFacade
 {
     private static final Logger LOG = Logger.getLogger(MerchandiseCheckoutFacade.class);
 
     @Override
     public OrderData placeOrder() throws InvalidCartException
     {
         LOG.info("*** Inside Custom Checkout Facade ***");
         return super.placeOrder();
     }
 }

Accepted Solutions (0)

Answers (0)