Document Properties
Kbid28669D
Last Modified11-Apr-2019
Added to KB25-Jul-2018
Public AccessEveryone
StatusOnline
Doc TypeSupport Articles
Product
  • ICM 7.6
  • Omni-Channel Services Toolset
  • ICM 7.7
  • ICM 7.8
  • ICM 7.9

Support Article - OCST Contact Center 1.2 Setup (valid for Gradle Tools 2.11)


1 Introduction

This article describes the setup of the Omni-Channel Services Toolset (OCST) version 1.2 for development, test and production environments. 

The contact center is part of our OCST tool and represents the reference application of the standard OCST functionality. It is provided as source and can be freely customized.

The provided Source Code is not a complete software product that can run after being installed. The Source Code merely offers preprogrammed solution approaches which are described in the Feature List and which only grow into a complete software product by means of further Programming Work.

1.1 Version Information and Dependencies

The following list of products have been tested or are currently being tested for compatibility with Omni-Channel Services Toolset version 1.2. The Minimum OCST version field list the minimum Omni-Channel Services Toolset version that has been tested and is compatible with the listed product.

ProductICM build numberMinimum OCST versionStatus

Intershop Commerce Management 7.6

7.6.3.8 and higher1.2.1Compatible

Intershop Commerce Management 7.7

7.7.4.2 and higher1.2.1Compatible

Intershop Commerce Management 7.8

7.8.0.0 and higher1.2.1Compatible

Intershop Commerce Management 7.9

7.9.0.0 and higher1.2.1Compatible

Intershop Commerce Management 7.10

--Not Compatible

To build own applications based on the Omni-Channel Services Toolset, the sources of the reference implementation as well as the source for the documentation and the demo assembly are provided:

The f_ocst source package represents a root project with the contact center assembly and the following sub projects:

  • app_contactcenter: OCST and reference implementation Contact Center
  • docu_ocst: The sources for the OCST documentation

1.2 References

2 Prerequisites

Adding the Contact Center to your Intershop Commerce Management System assumes the following requirements:

  • A running Intershop 7.x installation that matches the system requirements
  • Gradle Tools 2.11 with the VersionRecommender Plugin
  • An assembly to which the Contact Center cartridges can be added, either a self defined or one of the Intershop samples
  • Knowledge of how to add the delivered artifacts to the continuous integration environment
  • Knowledge of how to deploy a development, test or production environment

Note

For details about using the CI infrastructure, see Cookbook - Setup CI Infrastructure.

3 Setup (Including Responsive Starter Store)

The Omni-Channel Services Toolset requires an Intershop Commerce Management based installation. All setup steps described below are based on the assembly used for this installation, which is referred to <project-assembly>.

3.1 Add the Omni-Channel Services Toolset to an Assembly

  1. Add the following contactcenter host type to your build.gradle file of the project-assembly:

    <project-assembly>/build.gradle
    assembly {
        ... 
        hostTypes { 
    +		// Define the Omni-Channel Services Toolset hosttype
    +    	contactcenter { 
    +    		include ( 
    +    			'com.intershop:3rd_tomcat', 
    +    			'com.intershop.infrastructure:runtime', 
    +    			'com.intershop.infrastructure:tcm', 
    +    			'com.intershop.ocst:app_contactcenter' 
    +			) { 
    +				transitive = false 
    +			} 
    +		includeLocal = true 
    +		}
    	}
    	...
    }
  2. Delete the assembly includeArtifacts type 'deploy-gradle':

    <project-assembly>/build.gradle
    - includeArtifacts type:['deploy-gradle', 'deploy-settings-gradle']
    + includeArtifacts type:['deploy-settings-gradle']
  3. Add the version of the used OCST to the intershopBuild.version of the root-project:

    <root-project>/intershopBuild.version
    + com.intershop.ocst:app_contactcenter = 1.2.1
  4. To deploy the contact center within the same Tomcat as the Intershop 7 system, create a deploy.gradle file in the project-assembly with the following lines:

    <project-assembly>/deploy.gradle
    buildscript {
        dependencies {
            classpath 'com.intershop:deployment-bootstrap:+'
        }
    }
    
    apply plugin: com.intershop.deploy.intershop.IntershopPlugins
    apply plugin: com.intershop.deploy.intershop.SolrDeploymentPlugin 
    
    apply plugin: com.intershop.deploy.assembly.TargetPlugin
    apply plugin: com.intershop.deploy.resources.ResourceDeploymentPlugin
    apply plugin: com.intershop.deploy.intershop.TomcatPlugin
    
    deployment {
        if (target.includeLocal) {
            // if hostType == ALL (development) add a map as contactcenter extension
            // containing the default values for the REST APIs
            
            if (deploymentBootstrap.hostType.hostType.name == 'all' && !tomcat.instances.any { it.ext.has 'contactcenter' }) {
                def host = "https://${webadapter.hostname}:${webadapter.securePort}"
                tomcat.instances.find().ext.contactcenter = [
                    webshopRestURIBase: "$host/INTERSHOP/rest/WFS/",
                    contactcenterRestURI: "$host/INTERSHOP/rest/WFS/ContactCenter/-",
                    contactcenterRestURIBase: "$host/INTERSHOP/rest/WFS/"
                ]
            }
        }
    }

    The deploy.gradle file ensures that the placeholders in the URIs are replaced during deployment.

    For details about adding custom deployment logic to an assembly, see Recipe: Add Custom Deployment Logic to an Assembly.

3.2 Deploy the Development Server

  1. Open a command line in your <root-project> and execute the following gradle task:

    Windows
    gradlew deployServer
    Linux
    ./gradlew deployServer

    This builds your components and deploys the assembly as your development server into your <server> directory.

3.3 Deploy the Contact Center in Production Environment

If you have an already prepared contact center assembly, it is necessary to configure the Contact Center URIs manually in the settings.gradle file.

<root-project>/settings.gradle
tomcat {
    instances {
        appserver0 {
            ext.contactcenter = [
                webshopRestURIBase:       'https://<webserver.hostname>:<webserver.securePort>/INTERSHOP/rest/WFS/',
                contactcenterRestURIBase: 'https://<webserver.hostname>:<webserver.securePort>/INTERSHOP/rest/WFS/',
                contactcenterRestURI:     'https://<webserver.hostname>:<webserver.securePort>/INTERSHOP/rest/WFS/ContactCenter/-'
            ]
        }
    }
}

Note

Webserver hostname

To ensure the web application can work with the REST API, it is very important to set the host name to the host name of your webserver. This is necessary because the REST API will generate links for the client application to request created resources.

Set a webserver host name by adding the following lines to the settings.gradle file:

<root-project>/settings.gradle
+ deploymentBootstrap {
+         appserver {
+             hostname = '<webserver.hostname>'
+         }
+ }

3.4 (Optional) Contact Center Access via Webserver Proxy

If you want to access the contact center application by the webserver instead of the appserver host and port, you can use mod_proxy Apache module.

The steps are:

  1. Edit the file <server>/local/httpd/conf/httpd.conf:

    <server>/local/httpd/conf/httpd.conf
    -   #LoadModule proxy_module modules/mod_proxy.so
    +   LoadModule proxy_module modules/mod_proxy.so
    ...
    -   #LoadModule proxy_http_module modules/mod_proxy_http.so
    +   LoadModule proxy_http_module modules/mod_proxy_http.so
    ...
    +   ProxyPreserveHost On
    +   ProxyRequests Off
    +   ProxyVia On
    +   ProxyPass /contactcenter http://<tomcat.hostname>:<tomcat.port>/contactcenter
    +   <Proxy \*>
    +       Order deny,allow
    +       Allow from all
    +   </Proxy>

    ProxyPreserveHost On will preserve the ICM host + port instead of the Contact Center host + port.

    ProxyRequests Off: Do not enable proxying with ProxyRequests until you have secured your server. Open proxy servers are dangerous both to your network and to the Internet at large!

  2. Restart Intershop HTTP Server (Services)
  3. Open URL http://<webserver.hostname>:<webserver.port>/contactcenter

4 Additional Information

The contact center application can be found under http://<tomcat.hostname>:<tomcat.port>/contactcenter after deployment.

The basic login credentials are:

  • User: sanderson
  • Password: !InterShop00!
  • Organization: inSPIRED

Try to login and check if the following steps are working after login:

  • Search for a customer (e.g., Patricia Miller)
  • Open the customer and click Co-Browsing → inTRONICS Storefront opens
  • Add a product to the cart via Storefront
  • Get Basket in Contact Center Application
  • Choose a Payment Method
  • Place the order via Contact Center Application

4.1 List of New Cartridges in Your Server Environment

  • as_contactcenter
  • init_contactcenter
  • app_sf_contactcenter_rest
  • app_sf_contactcenter_rest_test
  • app_bo_contactcenter_cobrowsing

4.2 List of New Contact Center Related Sources

Location: /server/share/system/cartridges

  • as_contactcenter.properties
  • init_contactcenter.properties
  • app_sf_contactcenter_rest.properties
  • app_bo_contactcenter_cobrowsing.properties

Location: /server/local/engine/tomcat/servers/<appserver>/conf/Catalina/<host>

  • contactcenter.xml

Location: /server/local/engine/tomcat/servers/<appserver>/webapps

  • contactcenter.war

4.3 List of Possible Postconfigurations to Get the Contact Center Application Running

If the contact center application is not accessible under http://<tomcat.hostname>:<tomcat.port>/contactcenter or is not working correctly, please do the following:

  1. Check the correct port in the contact center URL:
    • A tomcat IP / hostname and port must be used (e.g., http://127.0.0.1:10052/contactcenter).
  2. Check contactcenter sources in server directory (<server>/local/engine/tomcat/servers/<appserver>/webapps):
    • Is contactcenter folder available?
    • Is contactcenter.war file available?
  3. Adapt URI configuration (<server>/local/engine/tomcat/servers/<appserver>/conf/Catalina/<host>):
    • Is contactcenter.xml file available?
    • Is <webserver.hostname>:<webserver.securePort> of WebshopRestURIBase, OCSTRestURI and OCSTRestURIBase in the contactcenter.xml file the same as defined for the WebServer in the appserver.properties?
    <server>/local/engine/tomcat/servers/<appserver>/conf/Catalina/<host>/contactcenter.xml
    <Context>
    
    <Parameter name="WebshopRestURIBase" value="https://<webserver.hostname>:<webserver.securePort>/INTERSHOP/rest/WFS/" />
    <Parameter name="OCSTRestURI" value="https://<webserver.hostname>:<webserver.securePort>/INTERSHOP/rest/WFS/ContactCenter/-" />
    <Parameter name="OCSTRestURIBase" value="https://<webserver.hostname>:<webserver.securePort>/INTERSHOP/rest/WFS/" />
    
    </Context>
    <server>/share/system/config/cluster/appserver.properties
    [...]
    intershop.WebServerURL=http://<webserver.hostname>:<webserver.port>
    intershop.WebServerSecureURL=https://<webserver.hostname>:<webserver.securePort>
    [...]
  4. Check the loaded REST cartridges and available REST calls in the Site Management of the System Management.
  5. Rebuild all relevant search indexes in case no products can be found.

Disclaimer

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.

Customer Support
Knowledge Base
Product Resources
Support Tickets