SOA Logical Architecture and HCL Commerce back-office integration

HCL Commerce provides back-office integration to enable your business application services to connect to access services.

Diagram showing business application services connecting to access services through the Enterprise Service Bus.

This diagram illustrates the recommended practice for integrating HCL Commerce, a Business App Service with an Access Service. The Access Service is an external back-office system (OMS, ERP). This architecture is described in detail in the Logical Architecture Model section of IBM's SOA Foundation - An Architectural Introduction and Overview. The Enterprise Service Bus (ESB) pattern is used for communication, mediation, transformation and integration with external systems. Using an ESB to integrate the Web services exposed from HCL Commerce to your back-office system promotes a loosely coupled design where the ESB manages the interactions styles between the HCL Commerce services and the back-office system. Hence, you do not need to alter your back-office system to support the protocol and format used by the HCL Commerce services. Instead you rely on the ESB to perform tasks such as message transformation and protocol mediation. Neither HCL Commerce nor the external system needs to change in order to talk to one another. The ESB is used to act as an interpreter between the two system and will translate the messages into a format the receiving system understands.

OMS and ERP Integration Scenarios Enabled

The service-oriented integration back-office support enables you to integrate sales channels served by HCL Commerce to your back-end systems. Two scenarios are demonstrated:
  1. The ability to integrate HCL Commerce with your enterprise resource planning (ERP) system.
  2. The ability to integrate HCL Commerce with your order management system (OMS).
These benefits of these scenarios are:
  1. Reduces cost of integration with back-office systems.
  2. Improves business flexibility by externalizing internal processes.
  3. Web services exposed can be used by a process choreography server such as WebSphere Process Server to compose flexible business scenarios.

Order Management System integration

In this scenario, a customer has an existing order management system or wants to use a third-party order management system to process their online orders captured from HCL Commerce. The external order management system will be responsible for processing the order, editing the order and releasing the order to the appropriate fulfillment system. In most cases, inventory will be also be managed by this external system.

ERP integration

This scenario is focused on enhancing the e-Commerce capabilities of an ERP system. Typically, ERP systems are not focused on selling through the web channel. This scenario enables an ERP customer to leverage the rich web capabilities of HCL Commerce to deliver front-end features such as marketing and merchandising to better target their online customers. In addition to having the ERP system process the order and perform inventory management, the ERP system may be the master of record for catalog and member information. The ERP scenario includes the OMS scenario as a sub-scenario.

Services exposed by the back-office integration


Diagram showing the services exposed by HCL Commerce back-office integration.

Outbound services exposed by the back-office integration

Outbound service request type/action Description
CreateOrganization This is the outbound service request type to notify an external system of the creation of a buyer organization.
UpdateOrganization This is the outbound service request type to notify an external system of a buyer organization update.
GetProductAvailability This is the outbound service request type to retrieve the availability of a product from an external system if the information is not cached locally.
CheckOrderInventory This is the outbound service request type to check the inventory of an order on an external system if the information is not cached locally.
ReserveOrderInventory This is the outbound service request type to update the inventory reservation of an order on an external system.
CancelOrderInventory This is the outbound service request type to cancel the inventory reservation of an order on an external system.
TransferOrder This is the outbound service request type to transfer an order to an external system.
GetOrder This is the outbound service request type to retrieve the details of an order or list of orders from an external system.

Inbound services exposed by the back-office integration

Inbound service Description
Inventory cache update Service The inventory cache update service is an inbound Web service responsible for updating the inventory cache in HCL Commerce when a store is configured to use an external system for inventory management.
Order preprocessing service The order preprocessing service is an inbound Web service responsible for validating an external order (for example, an order that has been transferred to an external order management system) against contracts in HCL Commerce, and for calculating its prices, discounts, shipping charges, taxes and so forth using settings in HCL Commerce.
Order Status Update Service The order status update service is an inbound web service responsible for updating the status of an order in HCL Commerce when a store is configured to use an external system for order processing and fulfillment.
Payment processing service The payment processing service is an inbound Web service responsible for processing online financial transactions such as payment authorizations and payment captures.
Synchronize Organization Service The synchronize organization service is an inbound web service responsible for adding or updating an organization in HCL Commerce in order to synchronize HCL Commerce with the external master repository.
Synchronize Person Service The synchronize person service is an inbound web service responsible for adding or updating a person in HCL Commerce in order to synchronize HCL Commerce with the external master repository.