Distributed Order Management (DOM) integration flows

There are two integration flows between the Aurora starter store, WebSphere Commerce and DOM: the get inventory availability flow, and the checkout flow.

Get inventory availability flow

DOM integration flow scenario 1

  1. The inventory availability records cached in WebSphere Commerce are updated by DOM through batch-load and SyncInventoryAvailability service requests.
  2. When the customer locates an item by browsing or searching the Aurora starter store catalog, the store uses the Inventory component's GetInventoryAvailability service. The GetInventoryAvailability service retrieves and displays the online and in-store inventory availability of the item.
  3. When the inventory system of the store is DOM, the service retrieves the information either from the cache or from DOM by creating an outbound GetInventoryAvailability service request that uses the ExternalInventory component.

Checkout flow

DOM integration flow scenario 2

  1. When the customer adds an item to the shopping cart, the Aurora starter store uses the order component's ChangeOrder service, with the Create action code. The ChangeOrder service and Create action code adds the item to the shopping cart with the selected fulfillment options.
    Note: When the inventory system is Non-ATP, the item can be added to shopping cart only when there is enough stock in the online store's fulfillment center. Otherwise, you must set INVENTORY.INVENTORYFLAGS to 2 to not run the check.
  2. When the inventory system of the store is DOM, the service calls the Inventory component's ProcessInventoryRequirement service, with the CheckInventory action code. This service retrieves the information either from the cache or from DOM by creating an outbound GetInventoryAvailability service request by using the ExternalInventory component. This service then uses the information to get the inventory statuses of the order items, which are used by the DoInventoryAction command to update the order items.
  3. When the customer initiates the checkout process, the Aurora starter store uses the order component's ProcessOrder service, with the Prepare action code, to prepare the shopping cart for submission. This includes reserving inventory and evaluating promotions, shipping, and taxes.
  4. When the inventory system of the store is DOM, the service calls the Inventory component's ProcessInventoryRequirement service, with the ReserveInventory action code. The service creates an outbound ProcessInventoryRequirement service request, with the ReserveInventory action code to DOM that uses the ExternalInventory component. It then uses the information to update the fulfillment options and inventory statuses of the order items.
  5. After the customer reviews the order, enters their payment information, and submits the order, the Aurora starter store uses the order component's ProcessOrder service. With the Submit action code, the order is submitted for processing.
  6. The service or command calls the PrimePayment command to authorize the payment. It then updates the order status, sends an order confirmation email to the customer, and raises the OrderSubmit event. This triggers OrderSubmitEventListenerImpl, which calls the ProcessOrderSubmitEvent command. When the inventory system of the store is DOM, the command transfers the order to DOM for further processing by creating an outbound ProcessOrder service request, with the Transfer action code, by using the ExternalOrder component. This command then calls the Inventory component's ProcessInventoryRequirement service, with the DecrementCache action code, to decrement the cache.
  7. As DOM processes the order, DOM sends the order fulfillment status updates, for example, order items that are shipped, to WebSphere Commerce. The order fulfillment status updates are sent by using the order component's SyncOrder service, with the Change action code. The service updates the order and shipment records in WebSphere Commerce, and depending on the order fulfillment status, sends a notification email to the customer, detailing the update.