Integrating Intelligent Selling Services into SAP Commerce Cloud 2211
Intelligent Selling Services for SAP Commerce Cloud (also known as Intelligent Selling Services) is a cloud-native system that can provide real-time customer experience personalization by recommending products to the customers interacting with SAP Commerce Cloud based e-commerce shops. The fundamental machine learning based process can capture and analyze real-time customer data from SAP Commerce Cloud, and allow Intelligent Selling Services to calculate the best products for individual customers at that moment in time and continuously improve the recommendation based on the outcome of the subsequent interaction. You can find a brief introduction to Intelligent Selling Services here, or more details in the dedicated help portal of Intelligent Selling Services.
In this blog post, I will walk you through the necessary steps to integrate the current/latest version of Intelligent Selling Services into SAP Commerce Cloud 2211.
you should have:
- a provisioned Intelligent Selling Services tenant with admin role access.
- a SAP Commerce Cloud running instance with a storefront (e.g. Composable Storefront).
We will go through the following 4 essential steps:
- Validate the SAP Commerce Cloud instance
- Create a site in Intelligent Selling Services
- Use the Integration Setup Wizard
- Validate the connection and synchronize data
1. Validate the SAP Commerce Cloud instance
Before setting up the integration between Intelligent Selling Services and SAP Commerce Cloud, we need to make sure the SAP Commerce Cloud instance includes the following 2 modules:
- the Foundation module: captures all customer interactions and behaviors to create and enrich a continually evolving contextual profile.
- the Merchandising module: provides features related to the integration configuration.
meaning, the localextensions.xml or manifest.json should at least contain the following extensions:
You can also validate them in the HAC of SAP Commerce Cloud, under Platform | Extensions, you should see:
(If accelerator storefront instead of composable storefront is used, also include the related addons: profiletagaddon, merchandisingaddon, merchandisingstorefrontsampledataaddon).
Furthermore, in this blog post, I am using SAP Commerce Cloud 2211.8 version, deployed in the SAP public cloud environment (with cloud portal access). If you are using a different version or have your SAP Commerce Cloud deployed in a different location (e.g. on your local machine for testing/demo purpose), it’s also ok, just read on.
2. Create a site
Every SAP Commerce Cloud based E-commerce shop should be integrated with its dedicated site in Intelligent Selling Services, so that each site has its own product catalog, recommendations, and merchandising configuration and reports. Therefore, the first step for the integration process is to create a new site.
Let’s log into the provisioned Intelligent Selling Services tenant and navigate to Administration | Site Management. (Please note, Admin role is required to perform this step):
I’ll click on the “Create” button on the top right of the workspace of Site Management to create a new site, and fill in the necessary information according to the requirement:
After clicking Create, the site is created and being initialized (displayed as “Initializing…”).
Wait until the initialization is done and the site’s status displays as “Active” like the other sites (if any). This usually takes 1-2 minutes, I can refresh the page to see the status change. If done, we are ready to use the integration setup wizard next.
3. Use the Integration Setup Wizard
Still in the workspace of Site Management (Administration | Site Management), click on the Integration Setup link of the newly created site in the previous step.
I am redirected to the the Integration Setup Wizard page. Please note that the newly created site is the current selected one on the top right of the tenant page.
(If the redirect doesn’t work, you can also click the Development | Integration Setup node directly, then make sure the current site on the top right is the one created earlier.)
Regarding which version of SAP Commerce Cloud to be integrated into, there are 2 options to choose for the Integration Setup:
- No – Because the necessary integration API is not implemented in SAP Commerce Cloud before the 2105 version, many automatic options can’t be activated for the integration process. But no worry, it will still work, just select this option if the SAP Commerce Cloud is before 2105.
- There is another situation that you might want to choose this option, namely, if you want to test the integration with a SAP Commerce Cloud instance that is installed on your local machine (not in the public cloud of SAP).
- Yes – if the SAP Commerce Cloud is after the version 2105, e.g. 2211, the version I am having now while writing the blog post.
The Profile Tag Configuration contains the URL to be used later for configuring the composable storefront of SAP Commerce Cloud. Since it’s a tenant and site specific value, it can be copied either now or later when configuring the composable storefront (This will be explained in a different blog post).
Let’s choose Yes for now, and see 2 additional fields to be filled out: SAP Commerce Cloud Connection URL and personalizationSetupClient Client Secret.
Before filling out the fields, let’s also click on the “Prerequisites and instructions”, to make sure we meet the requirement already:
As pointed out, for the version between 2105 and 2211.3, an ImpEx needs to be executed manually to important the necessary “personalizationSetupClient” OAuth client in SAP Commerce Cloud. Please follow the link to make sure the OAuth client is created, and we will talk about the next step right away. Also note the statement about freeing the connection from the IP addresses for the Backoffice endpoint. If these requirement can’t be met, no worry, choose no and continue to the next step.
If the requirements are met, in my case e.g., I am using 2211.8, I will fill out the 2 mandatory fields as follows:
- 1. SAP Commerce Cloud Connection URL – this is expecting the URL of the backoffice node.
I ‘ll navigate to my cloud portal page and choose the environment of the to be integrated SAP Commerce Cloud instance, then locate the Backoffice Endpoint and click on its URL:
The actual URL I need to paste back is the backoffice endpoint URL, but without the “/backoffice/login.zul” part:
- 2. personalizationSetupClient Client Secret
I’ll need to go to Backoffice of SAP Commerce Cloud to get the client secret. I’ll log into Administration Cockpit of my Backoffice, then use the filter on top of the explorer tree to find the OAuth Clients Node under System | OAuth | OAuth Clients:
I can see that the personalizationSetupClient in the existing OAuth clients as shown above.
If the personalizationSetupClient still doesn’t exist, it could also be that the SAP Commerce Cloud Version is before 2211.4. In this case, follow the link in the “Prerequisites and instructions” in the Integration Setup Wizard and get the ImpEx manually imported to create the personalizationSetupClient.
I’ll choose the personalizationSetupClient and open it in the Editor Area. Then in the General tab, I’ll:
- set a new OAuth client secret – this is also the secret I will fill in the personalizationSetupClient Client Secret in the integration setup wizard of Intelligent Selling Services.
- enable the client by setting the “Disabled” property to false.
Make sure to click on Save in the editor area of Backoffice after applying the changes above!
Now that I have the 2 fields filled out, I can click on Next to go to the details setup step next:
If the previous 2 fields are set correctly, so that Intelligent Selling Services can access to SAP Commerce Cloud, all the to be filled details will be displayed in the form of drop-down lists:
If an error message complaints about a connection error, please check the 2 fields in the first step and try again.
Or if you are running SAP Commerce Cloud before the version 2105 or deploy it on a local machine, all the details fields will stay as text fields and you will need to type the values directly.
In my case, I can choose a value from the drop-down list directly as below:
Let’s check out all the fields here:
|Base Site||site id of the storefront, e.g.: electronics-spa|
|Language||default language acronym, e.g.: “en”|
|Currency||default currency acronym, e.g.: “USD”|
|Product Catalog||id of the product catalog to be synchronized into Intelligent Selling Services, e.g.: electronicsProductCatalog|
|Content Catalog||id of the content catalog, e.g. “electronics-spaContentCatalog”, for relating to the cms components of the storefront.|
|Content Catalog Version||version of the content catalog to be edit on, usually “Staged”|
|Solr Indexed Type||id of the solr indexed type, e.g. “electronicsProductType” (default in the standard electronics composable storefront)|
|Image URL Prefix||
prefix of the URL pointing to images, i.e. the root/homepage url without the encoded attributes.
In the case of SAP Commerce Cloud in the public cloud, it should be the API endpoint URL, e.g.: https://api.<subscription or tenant id>-<environmentID>-public.model-t.cc.commerce.ondemand.com (You can check it directly in the cloud portal of SAP Commerce Cloud, choose a certain environment and find the Public Endpoints | API)
|Site Base URL||
URL of the storefront where data exchange should happen and product recommendations should be displayed.
In the case of SAP Commerce Cloud in the public cloud, it should be the storefront endpoint URL, e.g.: https://jsstorefront.<subscription or tenant id>-<environmentID>-public.model-t.cc.commerce.ondemand.com
|Site Preview URL||usually blank as it is the same as the site base URL|
|Variant RollUp||could be left blank, or the name of an attribute, according to which the products should be grouped together. E.g. the attribute which all the variant products share, such as code_string|
After filling out all the fields of SAP Commerce Cloud, we also need to fill in the fields for the “Intelligent Selling Services Client” at the bottom of this step:
This client is going to be imported into SAP Commerce Cloud, so that SAP Commerce Cloud can use to feed data into Intelligent Selling Services.
I can see 2 options here:
- on the left: choose an existing Client and provide the secret (that should be copied the first time when the client is created or it gets reset)
- on the right: create a new client right away
I’ll go with the 2. option and hit the “Create Intelligent Selling Services Client” option, then fill out the id and the name for the new client:
After the client is created, it’s automatically filled into the mandatory fields, even a secret is automatically set for the client already:
Usually I won’t need to access the client secret. But in case the secret is needed for testing purpose, it can be reset via clicking on the “Reset Secret” button on the right, then the value of the new secret in plained text will be displayed in a pop up window, and it’s the only time I can copy and save it somewhere.
After all the mandatory fields are filled out, the Next button is enabled and I can click on it to go to the last step:
Now I am in the last step of the Integration Setup Wizard, and seeing the following 2 options:
- I can click on the “Connect” button, to import all the data configured in the previous steps into SAP Commerce Cloud directly, this requires the personalizationSetupClient to be successfully enabled and accessed to in SAP Commerce Cloud. On my 2211.8 SAP Commerce Cloud in the public cloud, it works like a charm.
- Please note that, if I choose the “No” option for the question “Do you have version 2105 or higher?” in the first step of the integration setup wizard, the “Connect” button won’t be enabled/displayed and I’ll need to use the 2nd way (“Download ImpEx File”) described right next.
- I can also click the “Download ImpEx File” button and download an ImpEx file with all the data filled in the previous steps, then import it manually into my SAP Commerce Cloud (where the instance can’t be connected directly, e.g., on a local machine)
4. Validate the connection and synchronize data
Now we are able to see whether the integration data has been imported into SAP Commerce Cloud via the Integration Setup Wizard.
I’ll log into SAP Commerce Cloud Backoffice, and use the explorer tree filter to search “consume”, locate the System | API | Destinations | Consumed Destinations node, and see a list of new destinations with the unique “Destination Target Id” that is the same as the tenant ID of my Intelligent Selling Services tenant (in my case, my tenant is named aXXXXXst).
This means that now the connection from Intelligent Selling Services to SAP Commerce Cloud is established.
In order to synchronize all the product data from SAP Commerce Cloud to Intelligent Selling Services, so that product recommendations can be configured on the Intelligent Selling Services GUI, I’ll need to trigger a full indexing on the related products in SAP Commerce Cloud in Backoffice, make sure to select the facet search configuration that is related to the product catalog chosen in the integration setup wizard, e.g. I am using the electronicsindex which is related to the products in the Electronics Product Catalog:
The full indexing can take a considerably longer time depending on the number of related products, so please be patient.
Don’t forget to also synchronize the content catalog that was chosen in the Integration Setup Wizard. In my case, I should do the synchronization on the SPA electronics Content Catalog.
After the successful data synchronization, I’ll log into the Intelligent Selling Services tenant, go to the Overview workspace and check the status of my site:
Under Catalog Synchronization, I can see the Status is displayed as “Available”, indicating the product catalog has been successfully synchronized from SAP Commerce Cloud to my Intelligent Selling Services tenant.
Last but not least
The blog post introduces how to integrate Intelligent Selling Services into SAP Commerce Cloud 2211, so that product data can be synced from your SAP Commerce Cloud to the Intelligent Selling Services tenant.
Further blog posts will be conducted to describe how to set up the composable storefront of SAP Commerce Cloud to capture interaction data from SAP Commerce Cloud to Intelligent Selling Services, and configure the various recommendation possibilities on both systems.
If you want to know more?
Please take a look at the portal page of Intelligent Selling Services:
Also pay attention to the up-coming blog post (e.g to follow me on SAP Community) and the planned live session on SAP Learning Hub about Intelligent Selling Services for SAP Commerce Cloud.
That’s it and thanks for reading 😉