Document Properties
Last Modified
Added to KB
Public Access
Doc Type
Release Notes
  • ICM 7.10
  • IOM 3.0
  • IOM 3.1
  • IOM 3.2
  • IOM 3.3
  • IOM 3.4
  • IOM 3.5
  • IOM 3.6
  • IOM 3.7
  • IOM 4.0
  • IOM 4.1
  • IOM 4.2
  • IOM 4.3
  • IOM 4.4
  • IOM 4.5
  • IOM 4.6
  • IOM 4.7
Related Product
Public Release Note - IOM Connector 6.4


The IOM Connector is a set of cartridges that allows data exchange and communication between Intershop Commerce Management and Intershop Order Management. It is an extension (or "service") module for the Intershop Commerce Management. As such, it requires a base version against which it can be deployed. The table below describes the version dependencies between those entities.

Dependency Version Information

IOM ConnectorIntershop Commerce Management B2XIntershop Order Management
Version6. - 7.10.30.*3.0+

Below you can find some general information about the IOM Connector - both technical and business information.

In a nutshell, Intershop set up with IOM Connector affects the following:

  1. Orders placed in the e-commerce shop are routed to IOM.
  2. Order history, available in the My Account section, shows real-time IOM data of orders' statuses.
  3. Order return is available as feature in the said section.
  4. Order Details contain a field that presents information about the Order Documents and Notes.

Intershop Commerce Management B2X features such as order approval or additional order information are fully compatible with the IOM Connector. Orders will be exported to IOM only if the corresponding approval processes are completed. In addition, any information stored to the order - such as message to merchant, cost center and project - will be exported as well.

As with any Intershop feature that connects ICM to another system, all features are realized using the Managed Services framework.

Intershop recommends to create and manage the IOM Services in the context of channels.


ICMThe abbreviation for Intershop Commerce Management
IOMThe abbreviation for Intershop Order Management


The component set f_iomconnector (IOM Connector) contains the following cartridges:

  • ac_iomconnector_common
  • ac_iomconnector_inventory
  • ac_iomconnector_order
  • ac_iomconnector_orderhistory
  • ac_iomconnector_rma
  • ac_iomconnector_orderexport
  • ac_iomconnector_orderexport_b2b
  • ac_iomconnector_orderhistory
  • ac_iomconnector_rest_common
  • app_sf_responsive_carriertracking
  • as_iomconnector
  • init_iomconnector

Of these cartridges, the following are delivered as source files (while the rest is delivered via the artifact repository):

  • app_sf_responsive_carriertracking
  • as_iomconnector

There are also a few test and development cartridges.


Feature Overview


The IOM Connector is set up alongside a standard ICM installation. It adds additional cartridges that define the following managed services:

  • (Deprecated) IOM Order Service - Exports order data from ICM to IOM (old SOAP -based IOM API).
  • (Deprecated) IOM Order State Service - Changes the order history section in a way that the orders' statuses are fetched from IOM whenever the customer requests them (old SOAP -based IOM API).
  • IOM Order Export Service - Exports order data from ICM to IOM (requires IOM 3.x).
  • IOM Order History Service - Changes the order history section in a way that the orders' statuses are fetched from IOM whenever the customer requests them (requires IOM 3.1+).
  • IOM RMA Service - Allows a customer to request a return of an order. The customer can select the items to be returned, a reason for the return and optionally a pickup address where the return parcel is picked up by the carrier.
  • (Deprecated) IOM Reverse Service - Ensures that order cancelation is available to the customer (so customers can even print a return slip, which can be used for order returns)
  • IOM Download Service - After customers request a return, they will be able to download, or directly print a return slip. This return slip can be downloaded from the link shown on the Prepare Return Documents page.
  • IOM Inventory Service - Provides a way to obtain the inventory levels from Intershop Order Management to Intershop Commerce Management and perform product reservations.


Channels and Shops

Both ICM and IOM follow the same hierarchical concept of organizations that have expandable entities. These entities differ, however. In ICM one sales organization may have multiple channels, while in IOM one sales organization may have multiple shops.

Intershop recommends to consider channels and shops as synonyms in the context of this document and your setup. Although not the same, they are in close relation to each other.

As mentioned before, a couple of IOM Services, although not mandatory, are created in the context of a channel. This way you can ensure that the communication exchange between ICM and IOM is realized on the intended level.


End Points

The services mentioned in the previous chapter are realized with web services. They exchange data between the two systems in a specific format, but they also need to be configured. Web services require an end point that is different for each of them. In the table below you can see the end points, with IOM server host/address shown as a placeholder.

ServiceEnd Point
IOM Order Servicehttps://<iom-host>/webservices/OrderService/v1.2
IOM Order State Servicehttps://<iom-host>/webservices/OrderStateService/v1.0
IOM Download Servicehttps://<iom-host>/webservices/DownloadService/v1.0
IOM Reverse Servicehttps://<iom-host>/webservices/ReverseService/v1.0
IOM RMA Servicehttps://<iom-host>/rest/rma
IOM Inventory Servicehttps://<iom-host>/servlets/services/
IOM Order Export Servicehttps://<iom-host>/rest/order-service
IOM Order History Servicehttps://<iom-host>/rest/order-service


When doing the configuration mentioned in the step above, you must also specify a shop. Usually, a channel in ICM represents a shop in IOM.


Consumers of the services must authorize themselves to IOM before any data is processed - either as input or output. To realize this, you must create a user in IOM with permissions necessary for the operations performed by the service. An easy way to ensure this is to assign the ShopServiceClient role to the corresponding user. However, you may fine-tune the permissions for each service as they need a username/password combination.

Should you use prepared demo data, consider these prepared values:

Consumer Web-Serviceconsumer_ws
inTRONICS Business


Both systems exchange data, so they need a common ground as a base for this communication. The following table shows the mappings between IOM and ICM:

ProductChannel's product SKUShop product ID
CustomerCustomer No.Shop customer number
OrderOrder document No.Shop order number

These identifiers must be identical for each item in both systems. For example, if an order with a line item that has the SKU 00910 is placed and is then exported to IOM, the web services layer will report an error if the product with this product ID is not present in IOM.

Order Export

The IOM Connector provides instruments that route any order placed from ICM to IOM. To use this feature, you must configure the order export, see Configure Order Export, which depends on an existing service configuration, see Configure IOM Order Service. As mentioned before, on the configuration page you may tweak the export settings, but we generally use on order creation as trigger.

The look and feel and the business processes in the standard ICM is not altered in any way, but placed orders are routed to IOM.

Order Confirmation in ICM

Order Details in IOM

Extended B2B Features

Order approval and additional order information works out of the box with order export to the IOM. Orders are exported to the IOM once they are approved by the responsible user(s) in the customer's organization. All approval and additional information details are exported to IOM upon order placement. They are accessible in the Attributes section.


The table below lists the mapping of data exchanged between ICM and IOM.

Order Details
Order Document NumberShop Order Number
Creation DateShop Order Creation Date
InventoryReservationId (Custom Attribute)Reservation ID
Custom AttributesAdditional Attributes
Invoice & Shipping Address
Country CodeCountry Code
Main DivisionDistrict
Postal CodePost Code
Address Line 1Street
Address Line 2Address Addition
Address Line 3Address Addition
Post BoxPost Box
Phone HomePhone
Phone MobileMobile
Company Name 1Company Name
First NameFirst Name
Last NameLast Name
Shipping Bucket
Order Shipping Method IDShipping Method
Custom AttributesAdditional Attributes
Shipping Costs / SurchargesCharges
Line Item Information
Quantity UnitProduct Unit
Custom AttributesAdditional Attributes
Product Information
Display NameName
EANCode (Custom Attribute)EAN
ISBN (Custom Attribute)ISBN
Price Information
(specific) Net priceNet
(specific) Gross PriceGross
Tax Information
Tax Class


Payment Information
Payment Service IDPayment Method


Shipping and carriers are different in their nature. While the sales channels in ICM have shipping methods which are selectable by the customers, IOM has carriers listed that execute those shipping methods. For example, in the ICM one might have two shipping methods, DHL Express and DHL Standard, both of which are covered by single carrier DHL.

Mapping Payment Attributes

Mapping the payment attributes supported by IOM (PaymentProviderOrderNo, PaymentProviderRefNo and PaymentProviderMerchantAccount) highly depends on the specific payment service implementations. Therefore it is not possible to provide a default payment mapping that covers all payment services. Instead, custom mappers can be integrated into the order export process via the extension point: type = IOMConnectorPaymentMappingExtension.class, id = "OrderMapper.bindPayment".

Order History

This feature is governed by the IOM Order History Service. Once this service is configured and activated, the order status information in My Account | Order History is provided by the IOM in real time. In order to reduce the number of internal requests between the system, it supports the caching of the results for a short time interval (few seconds).

My Account | Order History

Order Details | Carrier Tracking Information

Orders of a Customer in IOM

Real time means that order statuses are updated the moment they are updated in the IOM. Thus, any action taken in IOM, for example Confirmation of delivery, will be shown in the ICM as soon as someone requests the Order History. The table below lists the mapping between order statuses in the two systems.

Intershop Commerce ManagementIntershop Order Management
initial orderINITIAL
in validation






approval required


in approval




waiting for approvalDO_APPROVE
not approvedNOT_APPROVED
assigning supplierDO_ANNOUNCE
will be canceledNOT_ANNOUNCED
assignment failedNOT_ANNOUNCED_DO_CANCEL
suppliers assignedANNOUNCED
optimising supplierDO_OPTIMIZE
prepare responseDO_PREPARE_RESPONSE
prepare documentsDO_PREPARE_DOCUMENT
documents preparedPREPARED_DOCUMENT
waiting for transmissionWAIT_FOR_TRANSMIT
order transmissionCREATED_TRANSMISSION
reservation commissionedRESERVATED
partly commissionedPARTLY_COMMISSIONED
partly shipped



partly returned





partly canceled/returnedCOMMISSIONED_PARTLY_RETURNED
Export failedorder transfer to IOM system failed

For more information on the IOM order status models see IOM Order Status Model.

Payment Statuses

The current status of the payment is very important for our customers. After an order is submitted, you can see information details in the Order History section. Click on view to show the Order Details page with the Payment panel. This panel contains information about the payment status (Paid, Part Paid, Not Paid) and a progress bar:

PaidThe order is completely paid.
Part Paid The order is partially paid.
Not PaidThe order is not paid.

The progress bar shows what percentage of the order is already paid. The total amount of money to be paid can be seen in the line Open Invoiced Amount. If an order is completely paid, the customer sees a green progress bar showing 100%, and the line Open Invoiced Amount states $ 0.

My Account | Order History | View

Order Invoice in IOM

Order Return

Return Line Items

Customers are able to trigger returns of orders. Once the order is shipped, and its delivery confirmation is tracked in the IOM, its status is changed to shipped. From the Order History page every order that has been shipped can be triggered for return by clicking the Return Items button. For each individual item, a return quantity and a reason can be specified. Return reasons are requested from the IOM. For convenience, the ICM provides a drop-down list to select a return reason.

The list of existing return requests for an order can be viewed from the Order History page by using the View Returns button. The list contains the current processing status of the request and some general information.


Activate Service
The IOM RMA Service needs to be configured and activated to use the Order Return feature.

Print the Return Slip

Once a return request was approved and the return slip has been generated in the IOM or in the My Account section, it can be downloaded from the link shown on the Order History page of the order.


Activate Service
Printing return slips directly in the My Account section is currently only supported with the IOM Reverse Service. The IOM RMA Service currently does not have this feature.

To be able to download return documents, the IOM Download Service needs to be configured and active.

Order Documents

This feature allows to display attached documents (notes / information) on the Order Details page. The Order Document retrieval from the IOM has a cache handling mechanism that preserves the information for a given time interval. The ICM's Order Details page render process requests the IOM to report the number of documents attached to the very order. The badge on the right hand side of the View All link indicates the number of documents. Click View All to display a list of documents. The list shows information such as note type (invoice, credit , etc.), note creation date/time and a link for the document download.


Active Services and Data
The features listed so far, namely Order History, Payment Statuses and Order Documents require a configured and activated IOM Order History Service (or - with limitations - Order State Service). Order Returns additionally need the IOM Reverse Service in order to process returns.
While the IOM Order History Service is deactivated, the according data will be taken from the locally set up database.


Information about an order's documents are also available via the IOM Connector REST API. For more detailed information please refer to:

Inventory Service

The main task of the Inventory Service is to check the product availability status for a particular product in the IOM. IOM Inventory Service works in real time, but at the same time it supports the caching of the results for a given time interval (e.g., 5 seconds). When the page with the customer's desired product is open, the Inventory Service requests the IOM for an ATP (available to promise) status. If the product is available, the customer will see the button Add to Cart and a field to specify the desired quantity of the product. On the other hand, if the product is not available, a button with the text Notify me when available appears. Ensure to mark the checkbox Availability check on failure in the service configuration to guarantee that the product availability will be at least checked in the local database, in case of a communication problem with the IOM system.



Deactivate SimpleInventoryService
The SimpleInventoryService has to be deactivated if IOM Inventory Service should be used.

Example error with SimpleInventoryService
[2017-09-27 10:41:31.362 +0100] ERROR localhost ES2 appserver0 [inSPIRED-inTRONICS_Business-Site] [-] com.intershop.component.mvc.internal.inventory.InventoryServiceResolverImpl [] [Storefront] [-igcxxhSVC0cx0GZqycdxxgt17cb0TXN_T4xWB9E] [ESIFAFnLcgUBAAB_-1-07] "ESIFAFnLcgUBAAB_-1-07" Only one adapter allowed to be executable of InventoryService, but 2 adapters found. 
System Information



The IOM Connector release package is available via Intershop's public Artifactory server. To add it to your release, the following preconditions must be met:

  1. Set up and configure the CI (continuous integration) environment.
    Refer to Cookbook - Setup CI Infrastructure and to Concept - Continuous Delivery Tools (valid to 7.10) for basic information about Continuous Integration.

  2. Install Intershop Commerce Management matching the system requirements - see section Dependency Version Information.
    Knowledge of how to deploy to a test or production environment is required. The IOM Connector contains parts that are distributed as binary artifacts (see iomConnectorCartridges and iomConnectorInitCartridges in the code example of the section IOM Connector 6.4 - Setup | Configure the Assembly) and parts that are distributed as source (see iomConnectorSourceCartridges and iomConnectorSourceInitCartridges in the code example), so they can be copied and modified easily in a project.

Include Source Package

Several IOM connector cartridges are delivered as source files. These need to be included in the project's component set and adapted manually to work in the project context:

  1. Download the IOM Connector multi-project source package com.intershop.public.source.f_iomconnector from the repository. Select the version that you want to use.

  2. Unzip and copy the contents to your component set directory. The demo assembly inspired-iomconnector does not need to be extracted.

    On Windows certain tools have trouble dealing with path names longer than 255 characters. When in doubt, please use 7-Zip to uncompress the source packages.

  3. Change the build.gradle file of the extracted cartridges to reference the connector libraries from the repository and local dependencies from your component set.

    CartridgeReference to ChangeNew Line
    app_sf_responsive_carriertrackingcompile project(':ac_iomconnector_order')compile group: '', name: 'ac_iomconnector_order'
    as_iomconnectorcompile project(':ac_iomconnector_common')compile group: '', name: 'ac_iomconnector_common'
    compile project(':ac_iomconnector_order')compile group: '', name: 'ac_iomconnector_order'
    compile project(':ac_iomconnector_orderexport')compile group: '', name: 'ac_iomconnector_orderexport'
    compile project(':ac_iomconnector_orderexport_b2b')compile group: '', name: 'ac_iomconnector_orderexport_b2b'
    compile project(':ac_iomconnector_orderhistory')compile group: '', name: 'ac_iomconnector_orderhistory'
    compile project(':ac_iomconnector_rest_common')compile group: '', name: 'ac_iomconnector_rest_common'
    compile group: 'com.intershop.responsive', name: 'as_responsive_b2b'compile project(':as_responsive_b2b')

  4. Change the build.gradle file of your project.
    Add the provider of the IOM Connector to the section versionRecommendation as Ivy dependency.

    build.gradle (Project)

    versionRecommendation {
        provider {
            // ...
    		ivy('IOMconnector',  ''){}

  5. Create a file .ivyIOMconnector.version in the project directory with the used IOM Connector version as content:



  6. Re-publish your multiproject.

Configure the Assembly 

To add the IOM Connector into your Intershop 7 system, you can either incorporate the cartridges into an already existing assembly or create a new assembly inheriting from an Intershop-7-based assembly. For details about creating a new assembly, see Recipe: Create a New Assembly Inheriting From an Existing Assembly. If you want to incorporate the cartridges into an already existing assembly, perform the following steps:

  1. Include the IOM Connector's cartridges into the existing assembly.

    1. Open the build.gradle file of your assembly, add a list of the IOM Connector's cartridges in the assembly directive and include this list into the assembly's cartridges list:

      build.gradle (Assembly)

      assembly {
          // ...
          cartridges {
              // ...
              def iomConnectorCartridges = [
      			'ac_iomconnector_orderexport_b2b', // if b2b functionality is needed
              include (*(iomConnectorCartridges.collect { "$it" }), in: [development, test, production])
              def iomConnectorSourceCartridges = [
                  // These are the cartridges which are delivered as source code.
              include(*(iomConnectorSourceCartridges.collect { project(":$it") }), in:[development, test, production])
              def iomConnectorInitCartridges = [
              include (*(iomConnectorInitCartridges.collect { "$it" }), in: init)
              order = listFromAssembly('<base-assembly>') + /* ... */ + iomConnectorCartridges + iomConnectorSourceCartridges + iomConnectorInitCartridges

    2. In the same build.gradle file add the following cartridges to assemblyBuild.database:

      build.gradle (Assembly)

      assemblyBuild {
          database {
              initCartridges = [
                  // ...

  2. Exclude conflicting versions from the assembly build.
    Therefore add the following lines at the end of the build.gradle file of your assembly. If you have already defined configurations.all directive, just enrich it with the excludes listed below.

    build.gradle (Assembly)

    configurations.all {
    	exclude group: 'stax', module: 'stax-api'

  3. Define a unique order sequence.
    Both Intershop Commerce Management and Intershop Order Management assign a unique identifier to any order placed in the corresponding system. These identifiers are often referred to as "order document number" or "order ID". In order to have a seamless integration between the two systems, you must synchronize these identifiers. Since ICM has the "leading role" as the orders are created and submitted from customers in the web shop, system administrators need to apply an additional configuration to the order number generation.
    The IOM Connector requires an order number generation that provides unique order numbers for both systems.


    If you are deploying the IOM Connector with ICM and IOM anew, in other words you have no orders placed in both systems, it is safe to skip this step. However, you may want to define a unique order sequence just in case. All you need to do is negotiate a starting number with all parties involved and then add a deployment step that alters the /share/system/config/cluster/ file, namely the property intershop.sequence.startsWith.

Deploy the Assembly

After creating and appropriately configuring the assembly, you must deploy it to the intended target environment.
For details about deploying an assembly, see Recipe: Run the Deployment (Initial Installation / Upgrade / Downgrade).

Initialize the Database

You must run a database initialization to use the IOM connector.

DBInit is required for the following cartridges:

  • ac_iomconnector_common

  • ac_iomconnector_order

  • init_iomconnector

To execute a full database initialization, use:

gradlew dbinit

To execute the database initialization used for a selected set of cartridges, use:

dbinit -t=ac_iomconnector_common,ac_iomconnector_order,init_iomconnector


For details about managing assembly artifacts, see:


The IOM Connector requires additional post-deployment configuration steps. For details refer to the configurations page.


In order to deploy the IOM Connector with the Intershop Commerce Management, you do not need to configure anything.

For a proper interaction of the two systems (IOM and ICM), however, some configuration is necessary. For more detailed information on how to do this, refer to Guide - ICM and IOM Configuration Tasks.

Additionally, in order to get the IOM working with the ICM 7.10 demo scenario (inSPIRED storefront), specific demo content needs to be uploaded into the IOM. The description and the content can be found here: Guide - IOM Demo Data Setup for IOM Connector.


Application Management


In the standard Intershop Commerce Management there is no way to enforce these rules without customization. You have to implement a business rule and make sure that shop managers comply with it.
  • Line item and order promotions are supported, e.g., discounts on line item.

Product Information Management

Do not use warranties. Intershop Order Management currently does not support service product types.


Do not use gift cards and certificates (limited tender payments). Intershop Order Management currently does not support multiple payments. Only a single so-called open tender payment method can be used.

Synchronize Order Numbers

Both Intershop Commerce Management and Intershop Order Management assign a unique identifier to any order placed in the corresponding system. These identifiers are often referred to as order document number or order ID. In order to have a seamless integration between the two systems, you must synchronize these identifiers. Since the ICM has the "leading role" as the orders are created and submitted from customers in the web shop, system administrators need to apply an additional configuration to the order number generation.


Intershop Commerce Management's server(s) should be turned off before the steps below are executed.

  1. Go to <server-installation-dir>/local/bin and execute environment.<bat|sh>.

  2. Go to <server-installation-dir>/local/tools/misc and execute ant export-sequence-info -f database.xml.

    [/iomconnector/server/local/tools/misc]# ant export-sequence-info -f database.xml
    Buildfile: /iomconnector/server/local/tools/misc/database.xml
          [sql] Executing commands
          [sql] 1 of 1 SQL statements executed successfully
          [sql] Executing commands
          [sql] 1 of 1 SQL statements executed successfully
         [echo] [02/17/2016 03:20:56 PM] The used enfinity specific sequence informations were successfully exported to file ''.
    Total time: 2 seconds
  3. In <server-installation-dir>/local/tools/misc open the newly generated file called
    It looks as shown in the code block below:

    # Largest last_number is: SellerOrder.DocumentNo.NfsKAB1PpEUAAAFTFT89kGWR - inSPIRED-inTRONICS
    #intershop.sequence.blockSize  = 10
    #intershop.sequence.startsWith = 51

    Memorize or write down the number of intershop.sequence.startsWith and intershop.sequence.blockSize.

  4. Log in to the IOM backoffice.
    Go to http://<iom-server-url>/bakery.omt/app/start and enter your user credentials.
  5. Click on Orders and/or perform an order search.
  6. Memorize or write down the biggest order number in the shown list.
  7. Define unused order sequence.


    You have a lot of options, but they all should comply to one rule: A new order sequence should be unique for both systems now and in the future.

    It is advised to just pick the bigger number between biggest order ID taken from the IOM's orders list and the intershop.sequence.startsWith taken at step 3. You may also add a date prefix to the order number, or put a unique machine identifier, as long as it contains only numbers.
    In this example, the ICM's order ID is 51 and the IOM's oder ID is 20160128017063. The bigger one is 20160128017063. So add the value of intershop.sequence.blockSize to it - 20160128017063 + 10 = 20160128017073 - and then add 1. The end result is 20160128017074.

  8. Go to <server-installation-dir>/share/system/config/cluster and open the file
  9. Remove # from the line intershop.sequence.startWith= and change its value to the unused order sequence determined in step 7.

    ## Series (Sequence) Creation Options
    ## series numberPattern settings
    ## blockSize  - "increment by <n>"
    ## startsWith - "start with <n>"
    ## cacheSize  - "cache <n>" or "nocache" if <n> = 0
    ## orderFlag  - "order" if true or "noorder" if false


Version IOM Connector/6.4.0

  • New feature: Export orders using the IOM Order REST API
  • New feature: Resolve the order states using the IOM Order REST API
  • New IOM features supported:
    • Shipping Buckets
    • Multiple taxes & multiple currencies per Channel
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.
The Intershop Knowledge Portal uses only technically necessary cookies. We do not track visitors or have visitors tracked by 3rd parties. Please find further information on privacy in the Intershop Privacy Policy and Legal Notice.
Knowledge Base
Product Releases
Log on to continue
This Knowledge Base document is reserved for registered customers.
Log on with your Intershop Entra ID to continue.
Write an email to if you experience login issues,
or if you want to register as customer.