cancel
Showing results for 
Search instead for 
Did you mean: 

After placing an order, how does stock reserve and order splitting work?

Former Member
0 Kudos

Hi..

  1. Kindly let us know how does stock reserve and order splitting(split by warehouse) works in Hybris accelerator 5.1.0. We are using only Hybris commerce suite and third party for fulfillment.

  2. Also, let us know how to configure "split by warehouse" option.

  3. Is there any method to prioritize a particular warehouse for stock reserve.

Thanks in advance.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Have a look at this as an entry point and then continue the research on your own from there...

https://answers.sap.com/questions/12748764/consignment-creation-process.html

Answers (2)

Answers (2)

Former Member
0 Kudos

1.Hybris commerce suite provides the interface SplittingStrategy to do the specific 'split order' job, OOTB, it gives several implementations such as SplitByAvailableCount,SplitByDeliveryMode,SplitByEntryDeliveryAddress,SplitByNamedDeliveryDate,SplitByPoS and SplitByWarehouse etc. As you said, you're using 3rd party fullfillment, you may choose to encapsulate the business logic in an new implementation for the interface SplittingStrategy or just extends the current ones.

2.The configuration in basecommerce as below :

 <bean id="defaultOrderSplittingService"
       class="de.hybris.platform.ordersplitting.impl.DefaultOrderSplittingService"
       scope="tenant">
     <property name="modelService" ref="modelService"/>
     <property name="consignmentService" ref="consignmentService"/>
     <property name="strategiesList">
         <list>
             <ref bean="splitByAvailableCount"/>
             <ref bean="splitByDeliveryMode"/>
             <ref bean="splitByNamedDeliveryDate"/>
             <ref bean="splitByWarehouse"/>
         </list>
     </property>
 </bean>

 <bean id="splitByAvailableCount"
       class="de.hybris.platform.ordersplitting.strategy.impl.SplitByAvailableCount"
       scope="tenant">
     <property name="stockService" ref="stockService"/>
 </bean>
 <bean id="splitByDeliveryMode"
       class="de.hybris.platform.ordersplitting.strategy.impl.SplitByDeliveryMode"
       scope="tenant"/>
 <bean id="splitByNamedDeliveryDate"
       class="de.hybris.platform.ordersplitting.strategy.impl.SplitByNamedDeliveryDate"
       scope="tenant"/>
 <bean id="splitByWarehouse"
       class="de.hybris.platform.ordersplitting.strategy.impl.SplitByWarehouse"
       scope="tenant">
     <property name="warehouseService" ref="warehouseService"/>
 </bean>

in yaccelerator as below :

 <alias name="yacceleratorfulfilmentprocessOrderSplittingService" alias="orderSplittingService"/>
 <bean id="yacceleratorfulfilmentprocessOrderSplittingService" parent="defaultOrderSplittingService" >
     <property name="strategiesList">
         <list>
             <ref bean="splitByAvailableCount"/>
             <ref bean="splitByDeliveryMode" />
             <ref bean="splitByPoS" />
             <ref bean="splitByNamedDeliveryDate" />
             <ref bean="splitByEntryDeliveryAddress" />
             <ref bean="splitByWarehouse" />
         </list>
     </property>
 </bean>
 
 <!-- Split Strategies -->
 
 <alias name="defaultSplitByPoS" alias="splitByPoS"/>
 <bean id="defaultSplitByPoS" class="de.hybris.platform.yacceleratorfulfilmentprocess.strategy.impl.SplitByPoS" />
 
 <alias name="defaultSplitByEntryDeliveryAddress" alias="splitByEntryDeliveryAddress"/>
 <bean id="defaultSplitByEntryDeliveryAddress" class="de.hybris.platform.yacceleratorfulfilmentprocess.strategy.impl.SplitByEntryDeliveryAddress"  />
 
 <alias name="defaultSplitByDeliveryMode" alias="splitByDeliveryMode"/>
 <bean id="defaultSplitByDeliveryMode" class="de.hybris.platform.yacceleratorfulfilmentprocess.strategy.impl.SplitByDeliveryMode" >
     <property name="pickupDeliveryModeDao" ref="pickupDeliveryModeDao"/>
 </bean>
 
 <alias name="defaultSplitByAvailableCount" alias="splitByAvailableCount"/>
 <bean id="defaultSplitByAvailableCount" class="de.hybris.platform.yacceleratorfulfilmentprocess.strategy.impl.SplitByAvailableCount" >
     <property name="commerceStockService" ref="commerceStockService"/>
 </bean>
 
 <alias name="defaultSplitByWarehouse" alias="splitByWarehouse"/>
 <bean id="defaultSplitByWarehouse" class="de.hybris.platform.yacceleratorfulfilmentprocess.strategy.impl.SplitByWarehouse" />

You can use this way to inject your business logic to the process.

  1. As far as I know, there is no configuration to do the business log, you can implement it in your own strategy.

Hope it could be helpful.

Thanks

adam_davies
Explorer
0 Kudos

Another option is to use OMS as an intermediary that handles order orchestration to 3rd party systems. Out of the box you would have order splitting, fulfillment location prioritization and the ability to reserve inventory.

Former Member
0 Kudos

Thanks. Does Hybris 5.1.0 commerce suite has fulfillment location prioritization and order splitting. If so, it will be really helpful if you can provide me the references. Thanks

Former Member
0 Kudos

Yes, the commerce suite has order splitting, look at my answer / the link above. I have described commerce suite, not OMS there.

Priorization, not sure, but you can implement your own SplittingStrategy and consider what you need there.