Skip to Content
Technical Articles
Author's profile photo Sonu Yadav

SAP Commerce – Synchronous Order Management(SOM) to Asynchronous Order Management(AOM)

Requirement  Transition existing SAP Commerce solution using SOM Module to AOM Module .

What’s the need – SOM module is not supported for use with SAP Commerce Cloud in the Public Cloud.

Before moving into the steps and technical details of transitioning SAP commerce solution using SOM module to AOM module . Let’s briefly understand SOM and AOM modules .

Overview of Synchronous Order Management

In synchronous order management,Customer interacts with SAP Commerce for adding products to cart but all business process , data and  complex logic of the pricing calculation , stock availability etc
comes directly from SAP backend(SAP S/4HANA, SAP ERP) . For each update in the cart state SAP commerce make a call to SAP backend and update SAP commerce based on the response received from the SAP backend.

Orders placed in SAP Commerce is synchronously created in SAP backend and not persisted in SAP Commerce . Customer immediately gets feedback on creation/failure of
order and accordingly order confirmation/failure page is shown.

Example Flow  : Synchronous Order Management interaction points with SAP S/4HANA or SAP ERP in a B2B Scenario

In synchronous order management, every change in cart state is making call to SAP backend which reduce system performance.The calls makes SAP commerce dependent on the SAP backend . So SAP commerce usability is dependent on SAP backend availability. In case backend is down , SAP commerce customers will not be able to use the solution or have compromised experience.

For more details on SOM Module please refer link

Asynchronous Order Management

In asynchronous order management, order is placed in SAP commerce and persisted as well . Order submitted in storefront are persisted in SAP commerce and send to SAP backend(SAP S/4HANA, SAP ERP) asynchronously via Data Hub/SAP CPI . Once order is successfully created in SAP backend fulfilment(shipping, billing) is done in SAP S/4HANA or SAP ERP.

In asynchronous order management numbers of interaction with SAP backend is reduced , Once product is add to cart , stock check , pricing calculations are done within commerce .Once order is created in commerce it get replicated asynchronously to SAP backend and customer experience is improved by immediately presenting order confirmation page .

As Order is persisted in commerce unlike in SOM architecture dependency over backend (SAP ERP, SAP S/4 HANA) is reduced for storefront functionality . Order History , Order Details , Add to Cart , Checkout etc can be performed without making call of SAP backend systems thus improves uptime/experience and performance .

For more details on AOM Module please refer link

Steps to be followed for transition SOM to AOMSharing experience of transition Synchronous Order Management (SOM) to  Asynchronous Order Management (AOM ) for B2B customer a worldwide provider of X-ray imaging systems for medical, non-destructive testing .

Below are sequence of steps performed –

  • Remove SOM extensions – Remove SOM extensions from localextensions.xml and dependency of each extension from SOM extensions in respective extensioninfo.xml

# SOM extension to be removed

sapordermgmtbol
sapordermgmtservices
sapordermgmtb2bservices
sapordermgmtb2bfacades
sapordermgmtcfgfacades

  • Add AOM extensions – Add AOM extensions in localextensions.xml and there dependencies on other extensions in extensioninfo.xml

#Extensions needed for AOM (Considering B2B)

b2bacceleratorfacades
commercefacades
acceleratorservices
basecommerce
sapcpiadapter
sapcpiorderexchange
sapcpiorderexchangeb2b
saporderexchangebackoffice

  • Build code and Server startup  – After making above changes code needs to be adapted with AOM extensions and take some effort to deference SOM objects/beans and to use AOM objects/beans.

Useful tips to adapt code

  • Create data objects which are used in implementation and present in SOM into AOM facade/services beans.xml and use new reference .
  • In spring beans replace the SOM beans reference with super type AOM beans
  • Adapt/Reuse all the customised code written in SOM into AOM

Example :  Let’s say there is custom order populator in SOM code that need to be adapt in AOM setup .

         SOM Setup – In SOM there is no OrderModel . So , source is Order (extends SalesDocument)                                 for populating OrderData.

        AOM setup – In AOM same custom code need to picked/reused by creating custom order populator but source will be OrderModel for populating OrderData.

 

Functional Changes need to be done for good customer experience – Below functional changes need to be implemented while moving from SOM to AOM to present same/close user experience .

  • Implement Cart Simulation – In SOM price is picked up real time from SAP backend at Add to Cart , Checkout steps but in AOM to provide same experience Cart simulation with SAP backend(SAP ERP, SAP S/4 HANA) via RFC call need to implemented so that real time stock , price can be picked from backend whenever cart is modified .

Cart simulation RFC need to invoked at all the places which impact the cart pricing like add/update/remove product from cart , updating shipping address , delivery mode etc .

  • Data Model Changes – In SOM Orders placed in SAP Commerce Cloud are directly created in the SAP back end so there is no need to persist customer inputs (provided in cart page,checkout steps) in commerce as the are directly send from commerce to SAP backend synchronously .

But as we move in AOM data model needs to changed and any user input which is custom need to be persisted in commerce with Cart/Order . So that all the customer input send along with order to SAP Backend .

  • Replicating Order to SAP Backend via  SAP CPI – Once order is placed and persisted in SAP Commerce , Order confirmation page is immediately show to customer while Asynchronously order is send to SAP backend(SAP ERP, SAP S/4 HANA) via SAP CPI .

Note : Replicating order to SAP backend via SAP CPI need customisation at both SAP commerce and SAP CPI end if there is any custom attribute as per business requirement need to be send to SAP backend(SAP ERP, SAP S/4 HANA) which are going in SOM

  • Receiving Order Updated and SAP Order Number –  Inbound integration to SAP Commerce need to implemented to receive the SAP order number once order is successfully send and confirmed in SAP Backend . This integration will also receive and update order status changes into commerce .
  • Order Details and Order History – As this is not new implementation and only transition from SOM to AOM . Customers already have existing orders created using SOM module which do not have any OrderModel persisted in SAP Commerce and after moving to AOM we have OrderModel persisted in SAP Commerce .

As this is technical change and customers should not be impacted by this change . Storefront should display both SOM and AOM orders in order history and order details .

Customer agreed solution to be build to display both SOM and AOM orders in storefront My Account section . Possible options could be

1. Replicate/Import SOM orders from SAP backend into SAP Commerce and display Order History from SAP Commerce (Inbound Order integration via SAP CPI or Hotfolders may be considered for this task)

2. Build custom RFC to pull orders from SAP backend (SAP ERP, SAP S/4 HANA) real time . So that both SOM and AOM orders are received and displayed in Order history

 

Conclusion  : All the above steps and suggestions are given from the experience gained while transition our customer from SOM to AOM . Steps may need to be adjusted depending upon the customer requirement, technical architecture, customisation done but approach remain the same .

Hope after going through this document one have better understanding regarding the changes and effort required for (Technical and Functional changes) SOM to AOM movement .

Kindly share your thoughts and feedback in the comments section below

Thanks !!

 

Assigned Tags

      8 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Manali Jain
      Manali Jain

      Very useful. Thanks for sharing!

      Author's profile photo Tanima Sarupriya
      Tanima Sarupriya

      Very well described. Thanks Sonu for sharing.

      Author's profile photo Former Member
      Former Member

      Thank You Sonu for explaining it in so much detail. This will be highly useful for anyone who will work on this requirement.

      Author's profile photo Pradeep Airsang
      Pradeep Airsang

      Well written with all the details thanks Sonu Yadav

      Author's profile photo Manas Saha
      Manas Saha

      Very well explained with all the details . Great work Sonu Yadav

      Author's profile photo Shaurya Gupta
      Shaurya Gupta

      Hard work and vision have been translated into a useful use case. Thanks for sharing !!

      Author's profile photo Madhura Shetty
      Madhura Shetty

      Informative! Thanks for sharing Sonu Yadav

      Author's profile photo Rahul .
      Rahul .

      Quite clearly explained and informative content! Thanks for sharing Sonu Yadav