
This blog discusses how to setup an example buying journey using the new Shopping Assistant APIs for SAP CX AI Toolkit.
Below is an example of a buying journey using the new shopping assistant. A flexible API plugged into a spartacus storefront, powered by SAP CX AI Toolkit integrated with SAP Commerce Cloud.
Screenshot of "bestrun" demo chatbot using the Shopping Assistant API
link to video
SAP’s CX AI Toolkit provides a Shopping Assistant designed to deliver smart product recommendations directly within your SAP Commerce Cloud storefront. Here’s your complete guide to seamless integration.
Before you begin integration, ensure you have:
SAP CX AI Toolkit and SAP Commerce Cloud licenses
Tenant mapping completed between SAP CX AI Toolkit and SAP Commerce Cloud
Product catalog synchronized from SAP Commerce Cloud
Screenshot of the integration setup between SAP CX AI Toolkit and SAP Commerce Cloud
Sign in to SAP Cloud Identity Services - Identity Authentication
Navigate to Applications and Resources → Applications
Select SAP CX AI Toolkit
Under Application APIs → Provided APIs, enable all APIs for principal propagation
Click Save
Screenshot highlighting API permissions settings page with enabled APIs.
Sign in to SAP Cloud Identity Services - Identity Authentication
Navigate to Applications and Resources → Applications
Select the newly created application, select your OpenID Connect application
Under Application APIs, choose Client Authentication
Add a new client secret (set expiry and scope)
Save and securely store the client secret
Screenshot of client secret creation popup and confirmation.
Please note the below steps using POSTMAN are for testing purposes only before you integrate with UI. In a real-world scenario the chatbot can authenticate upon login and resuse access tokens.
Step3.1
Obtain OAuth tokens by POSTing to {authorizationserver}/oauth2/token
Use generated tokens to authenticate SAP CX AI Toolkit API requests
Example: get an access token ui
Screenshot showing successful OAuth token response.
Step 3.2
example screenshot of exchanging jwt for access token
Please note API endpoints depending on your data center:
api-dewc-prod.cxai.cloud.sap
api-usea-prod.cxai.cloud.sap
Once you have the access token from step 3.2, you can create a config:
Step 4.1: Create your Shopping Assistant configuration by POSTing to /assistant/v2/shopping/config with your catalog details
Screenshot of JSON payload and successful configuration response.
Step 4.2: Initiate a chat session with a POST to /assistant/v1/shopping/chat_session
Screenshot of chat session initiation response including session ID.
Step 4.3: Interact with Shopping Assistant through chat by POSTing user input to /assistant/v1/shopping/chat
Screenshot of sample chat interaction showing assistant response.
Retrieve chat session details or history via GET requests
Manage sessions effectivessly, including deleting sessions as needed
{
"info": {
"_postman_id": "81744677-de43-483a-guru-dbef53c02311",
"name": "SAP CXAIT Shopping Assistant API - bestrun",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "12345678"
},
"item": [
{
"name": "1-Get Access Token",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "grant_type",
"value": "password",
"type": "text"
},
{
"key": "client_id",
"value": "48062bestrunclientid1ab-b5d1ec92ed3d",
"type": "text"
},
{
"key": "client_secret",
"value": "qi2_5-bestrunsecretZu:22QLiDNDx",
"type": "text"
},
{
"key": "username",
"value": "cxait@bestrun.cloud.sap",
"type": "text"
},
{
"key": "password",
"value": "best*run",
"type": "text"
}
]
},
"url": {
"raw": "https://bestrun.accounts.cloud.sap/oauth2/token",
"protocol": "https",
"host": [
"bestrun",
"accounts",
"cloud",
"sap"
],
"path": [
"oauth2",
"token"
]
},
"description": "Generated from cURL: curl --request POST \\\n --url https://bestrun.accounts.cloud.sap/oauth2/token \\\n --data grant_type=password \\\n --data client_id=48062bestrunclientid1ab-b5d1ec92ed3d \\\n --data 'client_secret=qi2_5-bestrunsecretZu:22QLiDNDx' \\\n --data username=cxait@bestrun.cloud.sap \\\n --data password=best*run"
},
"response": [
{
"name": "https://bestrun.accounts.cloud.sap/oauth2/token",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "grant_type",
"value": "password",
"type": "text"
},
{
"key": "client_id",
"value": "48062bestrunclientid1ab-b5d1ec92ed3d",
"type": "text"
},
{
"key": "client_secret",
"value": "qi2_5-bestrunsecretZu:22QLiDNDx",
"type": "text"
},
{
"key": "username",
"value": "cxait@bestrun.cloud.sap",
"type": "text"
},
{
"key": "password",
"value": "best*run",
"type": "text"
}
]
},
"url": {
"raw": "https://bestrun.accounts.cloud.sap/oauth2/token",
"protocol": "https",
"host": [
"bestrun",
"accounts",
"cloud",
"sap"
],
"path": [
"oauth2",
"token"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Wed, 16 Apr 2025 19:14:05 GMT"
},
{
"key": "Server",
"value": "SAP"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains; preload"
},
{
"key": "X-IDS-ID",
"value": "62AE79E9-16FC-4A47-9896-01DEB35D8B8B"
},
{
"key": "Origin-Trial",
"value": "AqsFcIseqUSkehWVG5P/4YrO6zG/R+XG626sjupbest*rund7e5Up11+UTOS6hTI7LgQSWmLDXaY7cG8BEXFwEAAABaeyJvcmlnaW4iOiJodHRwczovL2Nsb3VkLnNhcDo0NDMiLCJmZWF0dXJlIjoiVHBjZCIsImV4cGlyeSI6MTczNTM0Mzk5OSwiaXNTdWJkb21haW4iOnRydWV9"
},
{
"key": "Critical-Origin-Trial",
"value": "Tpcd"
},
{
"key": "Cache-Control",
"value": "private,no-cache,no-store"
},
{
"key": "Pragma",
"value": "no-cache"
},
{
"key": "Expires",
"value": "0"
},
{
"key": "X-XSS-Protection",
"value": "1; mode=block"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "Vary",
"value": "Origin,X-CSP-STRIP,Access-Control-Request-Method,Access-Control-Request-Headers"
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8"
},
{
"key": "Content-Length",
"value": "1469"
},
{
"key": "X-IDS-Node",
"value": "http-gghd8"
},
{
"key": "X-IDS-Pool",
"value": "a2"
},
{
"key": "X-IDS-Project",
"value": "prod"
},
{
"key": "X-IDS-Landscape",
"value": "aws-eu-central-1-a2"
},
{
"key": "X-IDS-Namespace",
"value": "ias"
},
{
"key": "Referrer-Policy",
"value": "origin"
},
{
"key": "X-Robots-Tag",
"value": "none"
},
{
"key": "Keep-Alive",
"value": "timeout=5, max=100"
},
{
"key": "Connection",
"value": "Keep-Alive"
}
],
"cookie": [],
"body": "{\n \"access_token\": \"Mzc3OTJjZjItNmE1Ny00ODNkLbest*runzOTBlMTgyMjk3Q0s4T09BRkZsYVM5ZmduUFhyZWxxb21QNjgtRGlaaGR1YWp6aUk3N1JNQQ\",\n \"refresh_token\": \"621a5abest*runb4e936029df37c3b1f61d5c035\",\n \"id_token\": \"eyJraWQiOiJQbWk5U2best*runUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJQMDAwMDAwIiwiYXVkIjoiNDgwNjIxZDEtMTcwYi00NjQ3LWIxYWItYjVkMWVjOTJlZDNkIiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsIm1haWwiOiJjeGFpdF9jczFAZGVtby5jbG91ZC5zYXAiLCJpc3MiOiJodHRwczovL2FoczZmc3pwei5hY2NvdW50cy5vbmRlbWFuZC5jb20iLCJsYXN0X25hbWUiOiJTaGV0dGkiLCJleHAiOjE3NDQ4MzQ0NDYsImlhdCI6MTc0NDgzMDg0NiwiZmlyc3RfbmFtZSI6Ikd1cnUiLCJqdGkiOiIzNzc5MmNmMi02YTU3LTQ4M2QtYmY3OC0xYTM5MGUxODIyOTcifQ.QpJm1QdDf7aZWVpTkvvAwWFn6Cn66o0syW0U1Vv_Ru8OKuDYpgt8KZKT9kGz13a-aaStisiNe-sngx3qx7szVVAI8Zk-JTqbnEorET6U6Qoqkt9yfyhs1A2iNGRSLubnWfLTyc-2rUkg-ZnVT7JVKCUCb3x9S7o6WtX0ItOBJuluoXQZgNDG54bGHyJj2PUBjptImTTR_IE25lQhVUcZ3LDHA_WF9_KhljS22Goxus6F8yd6mSdsVeXjTndOuZUbRc04_EwWVgQsMIIl4F-W6iVw9zD4mMy-qH5M518FzH0voA3mwltBVvmUu-m5n7jMsMuVvSgVrJEJIBM4jzSjxD4E3zTGiDbMt9Oxo0Dc5_VfjPLdUmLOeki8OJqSE9H4to_2gG7ACK2jH1gR9wxEZyFYDMsWC2mUTERCSMfRP_e0NpEInJvsD9gMzkrWtPVAjrz-mbZfqAer_haqpSx42drru4FyAHpFP6uH21dcClclbQXksKzguPWoEmrfukUKgT4ZTkkJkg8WWah3E7KazrzoEyAbJtqzxLuVqt1vKQF_DX8QbO3NYH_RWIkUD5OZ_GOof8fciRusazGrLkVVGFUcZiYkzOdFM3Y62ZNltDxPQmcezEZH_VzCB43TCqyqOX9EIC2_2YNom-fkj1sEqmD9D1XCJCUS_FpqooGq1x8\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 3600\n}"
}
]
},
{
"name": "2-GetAccessTokenusingJWT",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "grant_type",
"value": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"type": "text"
},
{
"key": "client_id",
"value": "48062bestrunclientid1ab-b5d1ec92ed3d",
"type": "text"
},
{
"key": "client_secret",
"value": "qi2_5-bestrunsecretZu:22QLiDNDx",
"type": "text"
},
{
"key": "assertion",
"value": "eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJQMDAwMDAwIiwiYXVkIjoiNDgwNjIxZDEtMTcwYi00NjQ3LWIxYWItYjVkMWVjOTJlZDNkIiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsIm1haWwiOiJjeGFpdF9jczFAZGVtby5jbG91ZC5zYXAiLCJpc3MiOiJodHRwczovL2FoczZmc3pwei5hY2NvdW50cy5vbmRlbWFuZC5jb20iLCJsYXN0X25hbWUiOiJTaGV0dGkiLCJleHAiOjE3NDQ4MzQ0NDYsImlhdCI6MTc0NDgzMDg0NiwiZmlyc3RfbmFtZSI6Ikd1cnUiLCJqdGkiOiIzNzc5MmNmMi02YTU3LTQ4M2QtYmY3OC0xYTM5MGUxODIyOTcifQ.QpJm1QdDf7aZWVpTkvvAwWFn6Cn66o0syW0U1Vv_Ru8OKuDYpgt8KZKT9kGz13a-aaStisiNe-sngx3qx7szVVAI8Zk-JTqbnEorET6U6Qoqkt9yfyhs1A2iNGRSLubnWfLTyc-2rUkg-ZnVT7JVKCUCb3x9S7o6WtX0ItOBJuluoXQZgNDG54bGHyJj2PUBjptImTTR_IE25lQhVUcZ3LDHA_WF9_KhljS22Goxus6F8yd6mSdsVeXjTndOuZUbRc04_EwWVgQsMIIl4F-W6iVw9zD4mMy-qH5M518FzH0voA3mwltBVvmUu-m5n7jMsMuVvSgVrJEJIBM4jzSjxD4E3zTGiDbMt9Oxo0Dc5_VfjPLdUmLOeki8OJqSE9H4to_2gG7ACK2jH1gR9wxEZyFYDMsWC2mUTERCSMfRP_e0NpEInJvsD9gMzkrWtPVAjrz-mbZfqAer_haqpSx42drru4FyAHpFP6uH21dcClclbQXksKzguPWoEmrfukUKgT4ZTkkJkg8WWah3E7KazrzoEyAbJtqzxLuVqt1vKQF_DX8QbO3NYH_RWIkUD5OZ_GOof8fciRusazGrLkVVGFUcZiYkzOdFM3Y62ZNltDxPQmcezEZH_VzCB43TCqyqOX9EIC2_2YNom-fkj1sEqmD9D1XCJCUS_FpqooGq1x8",
"type": "text"
},
{
"key": "token_format",
"value": "jwt",
"type": "text"
},
{
"key": "scope",
"value": "openid email profile",
"type": "text"
},
{
"key": "resource",
"value": "urn:sap:identity:application:provider:name:Toolkit",
"type": "text"
}
]
},
"url": {
"raw": "https://bestrun.accounts.cloud.sap/oauth2/token",
"protocol": "https",
"host": [
"bestrun",
"accounts",
"cloud",
"sap"
],
"path": [
"oauth2",
"token"
]
},
"description": "Generated from cURL: curl --request POST \\\n --url https://bestrun.accounts.cloud.sap/oauth2/token \\\n --data grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer \\\n --data client_id=48062bestrunclientid1ab-b5d1ec92ed3d \\\n --data 'client_secret=qi2_5-bestrunsecretZu:22QLiDNDx' \\\n --data 'assertion=eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJQMDAwMDAwIiwiYXVkIjoiNDgwNjIxZDEtMTcwYi00NjQ3LWIxYWItYjVkMWVjOTJlZDNkIiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsIm1haWwiOiJjeGFpdF9jczFAZGVtby5jbG91ZC5zYXAiLCJpc3MiOiJodHRwczovL2FoczZmc3pwei5hY2NvdW50cy5vbmRlbWFuZC5jb20iLCJsYXN0X25hbWUiOiJTaGV0dGkiLCJleHAiOjE3NDQzODc0MjYsImlhdCI6MTc0NDM4MzgyNiwiZmlyc3RfbmFtZSI6Ikd1cnUiLCJqdGkiOiIwZTYzMzZjZi00OTdmLTQ5ZDktOTIwZS00ZTY3YmEzZjVmNzMifQ.QoqAyLqKIcV6mZ6_A1Z5MIEsdJCSHwSN_JX4tI7ELr6ufZpnwUtpVev2kJlKKaNxzHkKmV7yNvWDLciGWIt3DVQrT4TmXfub8hqpQmW8y3-k3qXuMfL5UyBoG-olSpD2sc41n3PManltRw4sKq8DvVDf2QMDCddm84_JukIxWYUqy_Z1GC8SqP4P7wnGh3Ydwoj7nrYZf769pnU3ATGZ5vcSryXDBqwWrqEEB7v7QhapdgNNLq4DIBb26UE4HKdx5xwvKPguhDtJpCCHefPAdPwYz3HlcU1FbdeSVOYW1ZFtQupB81j-m00M43R4ZmFT2s77fa4rDc9-bnvbUgXVkYQPJZIQ4nSILqZdqsx0ZMC98nbue6pZkUQXnspt13z67xhfXwttke8Ic2C0PVEy2SLGwKt6t1xYLFKZSJDRLVt5lLRGFbUaWhLs0dulAseMZv6XZzMrCFiCanSXlI3cb8Nx8uURcin4xc54hFYFFyM9d1RhtyIIrPqqlrL8EE4cz_-J00_zAO6zTVGvaPLoODf0YuK5n5mF14TkstB4vV5dMnG3Vn4hKSXrRBJ3s7ZB44Dj7kDGrEhYTN5L6LY7_rrqnDWtQ9n4e67iVMfa1nO0CEuCQP_MrNJ9LVBOZ_q2GMUjcqAsiQnmlbsotNc9T2uBaYZgJdMHrs58edeMVCE' \\\n --data token_format=jwt \\\n --data 'scope=openid email profile' \\\n --data resource=urn:sap:identity:application:provider:name:Toolkit"
},
"response": [
{
"name": "https://bestrun.accounts.cloud.sap/oauth2/token",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "grant_type",
"value": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"type": "text"
},
{
"key": "client_id",
"value": "48062bestrunclientid1ab-b5d1ec92ed3d",
"type": "text"
},
{
"key": "client_secret",
"value": "qi2_5-bestrunsecretZu:22QLiDNDx",
"type": "text"
},
{
"key": "assertion",
"value": "eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJQMDAwMDAwIiwiYXVkIjoiNDgwNjIxZDEtMTcwYi00NjQ3LWIxYWItYjVkMWVjOTJlZDNkIiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsIm1haWwiOiJjeGFpdF9jczFAZGVtby5jbG91ZC5zYXAiLCJpc3MiOiJodHRwczovL2FoczZmc3pwei5hY2NvdW50cy5vbmRlbWFuZC5jb20iLCJsYXN0X25hbWUiOiJTaGV0dGkiLCJleHAiOjE3NDQ4MzQ0NDYsImlhdCI6MTc0NDgzMDg0NiwiZmlyc3RfbmFtZSI6Ikd1cnUiLCJqdGkiOiIzNzc5MmNmMi02YTU3LTQ4M2QtYmY3OC0xYTM5MGUxODIyOTcifQ.QpJm1QdDf7aZWVpTkvvAwWFn6Cn66o0syW0U1Vv_Ru8OKuDYpgt8KZKT9kGz13a-aaStisiNe-sngx3qx7szVVAI8Zk-JTqbnEorET6U6Qoqkt9yfyhs1A2iNGRSLubnWfLTyc-2rUkg-ZnVT7JVKCUCb3x9S7o6WtX0ItOBJuluoXQZgNDG54bGHyJj2PUBjptImTTR_IE25lQhVUcZ3LDHA_WF9_KhljS22Goxus6F8yd6mSdsVeXjTndOuZUbRc04_EwWVgQsMIIl4F-W6iVw9zD4mMy-qH5M518FzH0voA3mwltBVvmUu-m5n7jMsMuVvSgVrJEJIBM4jzSjxD4E3zTGiDbMt9Oxo0Dc5_VfjPLdUmLOeki8OJqSE9H4to_2gG7ACK2jH1gR9wxEZyFYDMsWC2mUTERCSMfRP_e0NpEInJvsD9gMzkrWtPVAjrz-mbZfqAer_haqpSx42drru4FyAHpFP6uH21dcClclbQXksKzguPWoEmrfukUKgT4ZTkkJkg8WWah3E7KazrzoEyAbJtqzxLuVqt1vKQF_DX8QbO3NYH_RWIkUD5OZ_GOof8fciRusazGrLkVVGFUcZiYkzOdFM3Y62ZNltDxPQmcezEZH_VzCB43TCqyqOX9EIC2_2YNom-fkj1sEqmD9D1XCJCUS_FpqooGq1x8",
"type": "text"
},
{
"key": "token_format",
"value": "jwt",
"type": "text"
},
{
"key": "scope",
"value": "openid email profile",
"type": "text"
},
{
"key": "resource",
"value": "urn:sap:identity:application:provider:name:Toolkit",
"type": "text"
}
]
},
"url": {
"raw": "https://bestrun.accounts.cloud.sap/oauth2/token",
"protocol": "https",
"host": [
"bestrun",
"accounts",
"cloud",
"sap"
],
"path": [
"oauth2",
"token"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Wed, 16 Apr 2025 19:17:39 GMT"
},
{
"key": "Server",
"value": "SAP"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains; preload"
},
{
"key": "X-IDS-ID",
"value": "D3E5AB1A-87F7-4DE5-BE5B-EB0054175E63"
},
{
"key": "Origin-Trial",
"value": "AqsFcIseqUSkehWVG5P/4YrO6zG/R+XG626sjupdsi1SInyZd7e5Up11+UTOS6hTI7LgQSWmLDXaY7cG8BEXFwEAAABaeyJvcmlnaW4iOiJodHRwczovL2Nsb3VkLnNhcDo0NDMiLCJmZWF0dXJlIjoiVHBjZCIsImV4cGlyeSI6MTczNTM0Mzk5OSwiaXNTdWJkb21haW4iOnRydWV9"
},
{
"key": "Critical-Origin-Trial",
"value": "Tpcd"
},
{
"key": "Cache-Control",
"value": "private,no-cache,no-store"
},
{
"key": "Pragma",
"value": "no-cache"
},
{
"key": "Expires",
"value": "0"
},
{
"key": "X-XSS-Protection",
"value": "1; mode=block"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "Vary",
"value": "Origin,X-CSP-STRIP,Access-Control-Request-Method,Access-Control-Request-Headers"
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8"
},
{
"key": "Content-Length",
"value": "1487"
},
{
"key": "X-IDS-Node",
"value": "http-94cf7"
},
{
"key": "X-IDS-Pool",
"value": "a1"
},
{
"key": "X-IDS-Project",
"value": "prod"
},
{
"key": "X-IDS-Landscape",
"value": "aws-eu-central-1-a1"
},
{
"key": "X-IDS-Namespace",
"value": "ias"
},
{
"key": "Referrer-Policy",
"value": "origin"
},
{
"key": "X-Robots-Tag",
"value": "none"
},
{
"key": "Keep-Alive",
"value": "timeout=5, max=100"
},
{
"key": "Connection",
"value": "Keep-Alive"
}
],
"cookie": [],
"body": "{\n \"access_token\": \"eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJpYXNfYXBpcyI6WyJwcmluY2lwYWwtcHJvcGFnYXRpb24iXSwic3ViIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzcyI6Imh0dHBzOi8vYWhzNmZzenB6LmFjY291bnRzLm9uZGVtYW5kLmNvbSIsImdpdmVuX25hbWUiOiJHdXJ1IiwiYXVkIjoiODQyN2M5MGQtODAzZS00ZjllLTkwYmQtZGNlMDc3Y2YwMWY5Iiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsImF6cCI6IjQ4MDYyMWQxLTE3MGItNDY0Ny1iMWFiLWI1ZDFlYzkyZWQzZCIsImV4cCI6MTc0NDgzNDY2MCwiaWF0IjoxNzQ0ODMxMDYwLCJmYW1pbHlfbmFtZSI6IlNoZXR0aSIsImp0aSI6ImU4YjQxZjAwLTc3NjgtNGIyOC1hZDRkLWRmZGZjOWUyZDRiYiIsImVtYWlsIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIn0.IEfE5SszCLFRsGXbHBPWyxWPRGTGMTWjYdBP5zRKl0H-U3BLcnUN3yZQiMy_G3E_7KtNBXUFhUyhQ0oOkl3eGd3PwbyVmfwd7W6Bvk1uIZ4C0nJjr9_cSb3aunYWO-PBqSRaium8Rf-JRjHmLj-UIsjAqaoNjMbyfNcNMULjwpJ2kOrtUYsIYYhMob9vfXEkHb_n5vFNWBN0UkxPfP5ouYoN9UVR2CMH6f7hv16sg6QQyk8HMGzfJc94K95D4k-QqXP8jyJUExWt3N3HnoL4Qgn3N7vUoyl58f74bgxRn9JVqtYS2kKdMAJ28hfG4ns8DUaEuD2iEres0yrXvm7Xz3yJuLdy-RJg_9PASPmXVn9vIcvOF-tFX-y7xLjq7jQZR2UHGMGKgdlQVZrw0K7xzJUU_d7x9vXaulCbHxvAWJpomqc3hvgyZO3VymORXorkTPjS15cMR69CSlbuy52kvLYvmQRGGiCERVupuOk39rZD4Vc6fTomjxa6Kj_TCEYSOX-DWDqELXYP_WM5Xbestrun4ppaYQL1bz0A1_0Rd5lrXCu3TNuh94KA1QH4UoMYPtQnXwpBvMjX_-i4c1qqg2dnx8lMbestrunocYzO71Mz7Vbestrun2YVzbestrunNes5JPztsdhpLgi-6JaNZZvwoP_E8RQPfSH2qoUrnTc\",\n \"scope\": \"email profile\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 3600\n}"
}
]
},
{
"name": "3-Create Config",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJpYXNfYXBpcyI6WyJwcmluY2lwYWwtcHJvcGFnYXRpb24iXSwic3ViIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzcyI6Imh0dHBzOi8vYWhzNmZzenB6LmFjY291bnRzLm9uZGVtYW5kLmNvbSIsImdpdmVuX25hbWUiOiJHdXJ1IiwiYXVkIjoiODQyN2M5MGQtODAzZS00ZjllLTkwYmQtZGNlMDc3Y2YwMWY5Iiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsImF6cCI6IjQ4MDYyMWQxLTE3MGItNDY0Ny1iMWFiLWI1ZDFlYzkyZWQzZCIsImV4cCI6MTc0NDM4NzQ1OCwiaWF0IjoxNzQ0MzgzODU4LCJmYW1pbHlfbmFtZSI6IlNoZXR0aSIsImp0aSI6IjUzYzY4N2UxLWRkMmMtNDQxZS05YmUwLTdmNDllZTcwYzY5ZCIsImVtYWlsIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIn0.kGd527InvTCyhjp26-o2CrsZT6qBH5oq95uOfbdFuOeTl3k2jaaI0mhXsJkClthuisgYPlzVuosd-rcvteJmjesdIb_DNqHVBJgZq-jBDDvg3JRlBEYsw3OQExgXpzkPuaEVTNLXT1d7G8fS8sgULSOr0U2V6rspFOvZvpTjxFPsoey-QncrktIi_YDIrG3-4kSzuc3gld2wpuXp2Uv3boAeYXDcbyGQNk7O-nY4d7pzVUqvzSxNRdquD8yCY6VxmG8kNLkJmRWfKCW1XRSbSlhkutjAX5Uuht7BoVTCuP_TUffip-ZxO-QwTU4oSvOgTFBFlyURljYzjaRM0ngYCSIrborml-lZgzXePWwcSKjB4eDK9UfSHaGX4Tk7N1SafvZEDTAOQ0uCvsa4nR9hj8_mpG_FbQMK7on7W3FtPKeeVujKWV1x6oJ1P5pf4wwdlQRzK_vhY_UzYAPodGPzyg_S-AVKvU8fojPsQj02OKb7wYQjvQjVrSesUmjv043dhMRLGXEpe-aRVBlpSKMcMgFkLKVZ2aV5i70rVvxlEB7OOaf07VfxuvI-Sw0w2qP7RbAHfxmzKwM38iqf_pfi7TGI76rwxuyxbSyfbwZoALHpoZH-ZJiKuTQyYJBtyuKmgSeZe09WMT3QfP6wJw0hUzzMz70wKR0uLbuuBCNsli4",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n \"agent_name\": \"TestAgent\",\n \"agent_description\": \"TestAgent Description\",\n \"is_active\": true,\n \"initial_message\": \"Test message\",\n \"catalog_id\": \"powertoolsProductCatalog\",\n \"catalog_version\": \"Online\",\n \"classification\": \"\",\n \"sub_agents\": [\n {\n \"name\": \"PriceRecommendationAgent\",\n \"is_active\": true\n }\n ],\n \"global_settings\": {\n \"default_language\": \"en-US\",\n \"tone\": \"Techy\",\n \"voice\": \"\",\n \"brand\": \"CX\"\n }\n} ",
"options": {
"raw": {
"language": "json"
}
}
}
},
"response": [
{
"name": "3-Create Config",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n \"agent_name\": \"TestAgent\",\n \"agent_description\": \"TestAgent Description\",\n \"is_active\": true,\n \"initial_message\": \"Test message\",\n \"catalog_id\": \"powertoolsProductCatalog\",\n \"catalog_version\": \"Online\",\n \"classification\": \"\",\n \"sub_agents\": [\n {\n \"name\": \"PriceRecommendationAgent\",\n \"is_active\": true\n }\n ],\n \"global_settings\": {\n \"default_language\": \"en-US\",\n \"tone\": \"Techy\",\n \"voice\": \"\",\n \"brand\": \"CX\"\n }\n} ",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api-dewc-prod.cxai.cloud.sap/assistant/v2/shopping/config",
"protocol": "https",
"host": [
"api-dewc-prod",
"cxai",
"cloud",
"sap"
],
"path": [
"assistant",
"v2",
"shopping",
"config"
]
}
},
"status": "Created",
"code": 201,
"_postman_previewlanguage": "json",
"header": [
{
"key": "content-length",
"value": "506"
},
{
"key": "content-security-policy",
"value": "default-src 'self'"
},
{
"key": "content-type",
"value": "application/json"
},
{
"key": "date",
"value": "Wed, 16 Apr 2025 19:22:20 GMT"
},
{
"key": "server",
"value": "istio-envoy"
},
{
"key": "vary",
"value": "Origin"
},
{
"key": "x-content-type-options",
"value": "nosniff"
},
{
"key": "x-correlation-id",
"value": "1e45db52-1af8-11f0-9df0-5aeb7adb64c3"
},
{
"key": "x-envoy-upstream-service-time",
"value": "1246"
},
{
"key": "x-trace-id",
"value": "d620f571-f9a3-4ac9-9f16-a333190b73ae"
},
{
"key": "strict-transport-security",
"value": "max-age=31536000; includeSubDomains"
},
{
"key": "access-control-allow-origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"agent_id\": \"CONFIG_58aa4340-84f4-4f4e-825e-c98edb77e14c\",\n \"agent_name\": \"TestAgent\",\n \"agent_description\": \"TestAgent Description\",\n \"is_active\": true,\n \"initial_message\": \"Test message\",\n \"catalog_id\": \"powertoolsProductCatalog\",\n \"catalog_version\": \"Online\",\n \"classification\": \"\",\n \"global_settings\": {\n \"default_language\": \"en-US\",\n \"tone\": \"Techy\",\n \"voice\": \"\",\n \"brand\": \"CX\"\n },\n \"active_agents\": [\n {\n \"name\": \"PriceRecommendationAgent\",\n \"is_active\": true\n }\n ],\n \"created_on\": \"2025-04-16T19:22:21.420000\",\n \"modified_on\": \"2025-04-16T19:22:21.420000\"\n}"
}
]
},
{
"name": "4-create-chat_session",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJpYXNfYXBpcyI6WyJwcmluY2lwYWwtcHJvcGFnYXRpb24iXSwic3ViIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzcyI6Imh0dHBzOi8vYWhzNmZzenB6LmFjY291bnRzLm9uZGVtYW5kLmNvbSIsImdpdmVuX25hbWUiOiJHdXJ1IiwiYXVkIjoiODQyN2M5MGQtODAzZS00ZjllLTkwYmQtZGNlMDc3Y2YwMWY5Iiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsImF6cCI6IjQ4MDYyMWQxLTE3MGItNDY0Ny1iMWFiLWI1ZDFlYzkyZWQzZCIsImV4cCI6MTc0NDgzNDY2MCwiaWF0IjoxNzQ0ODMxMDYwLCJmYW1pbHlfbmFtZSI6IlNoZXR0aSIsImp0aSI6ImU4YjQxZjAwLTc3NjgtNGIyOC1hZDRkLWRmZGZjOWUyZDRiYiIsImVtYWlsIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIn0.IEfE5SszCLFRsGXbHBPWyxWPRGTGMTWjYdBP5zRKl0H-U3BLcnUN3yZQiMy_G3E_7KtNBXUFhUyhQ0oOkl3eGd3PwbyVmfwd7W6Bvk1uIZ4C0nJjr9_cSb3aunYWO-PBqSRaium8Rf-JRjHmLj-UIsjAqaoNjMbyfNcNMULjwpJ2kOrtUYsIYYhMob9vfXEkHb_n5vFNWBN0UkxPfP5ouYoN9UVR2CMH6f7hv16sg6QQyk8HMGzfJc94K95D4k-QqXP8jyJUExWt3N3HnoL4Qgn3N7vUoyl58f74bgxRn9JVqtYS2kKdMAJ28hfG4ns8DUaEuD2iEres0yrXvm7Xz3yJuLdy-RJg_9PASPmXVn9vIcvOF-tFX-y7xLjq7jQZR2UHGMGKgdlQVZrw0K7xzJUU_d7x9vXaulCbHxvAWJpomqc3hvgyZO3VymORXorkTPjS15cMR69CSlbuy52kvLYvmQRGGiCERVupuOk39rZD4Vc6fTomjxa6Kj_TCEYSOX-DWDqELXYP_WM5Xbestrun4ppaYQL1bz0A1_0Rd5lrXCu3TNuh94KA1QH4UoMYPtQnXwpBvMjX_-i4c1qqg2dnx8lMbestrunocYzO71Mz7Vbestrun2YVzbestrunNes5JPztsdhpLgi-6JaNZZvwoP_E8RQPfSH2qoUrnTc",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n \"config_id\": \"CONFIG_58aa4340-84f4-4f4e-825e-c98edb77e14c\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api-dewc-prod.cxai.cloud.sap/assistant/v1/shopping/chat_session",
"protocol": "https",
"host": [
"api-dewc-prod",
"cxai",
"cloud",
"sap"
],
"path": [
"assistant",
"v1",
"shopping",
"chat_session"
]
}
},
"response": [
{
"name": "4-create-chat_session",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n \"config_id\": \"CONFIG_58aa4340-84f4-4f4e-825e-c98edb77e14c\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api-dewc-prod.cxai.cloud.sap/assistant/v1/shopping/chat_session",
"protocol": "https",
"host": [
"api-dewc-prod",
"cxai",
"cloud",
"sap"
],
"path": [
"assistant",
"v1",
"shopping",
"chat_session"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "content-length",
"value": "97"
},
{
"key": "content-security-policy",
"value": "default-src 'self'"
},
{
"key": "content-type",
"value": "application/json"
},
{
"key": "date",
"value": "Wed, 16 Apr 2025 19:24:47 GMT"
},
{
"key": "server",
"value": "istio-envoy"
},
{
"key": "vary",
"value": "Origin"
},
{
"key": "x-content-type-options",
"value": "nosniff"
},
{
"key": "x-correlation-id",
"value": "760849d8-1af8-11f0-9df0-5aeb7adb64c3"
},
{
"key": "x-envoy-upstream-service-time",
"value": "641"
},
{
"key": "x-trace-id",
"value": "49575f62-2621-4d68-9881-28a63c7e7ea7"
},
{
"key": "strict-transport-security",
"value": "max-age=31536000; includeSubDomains"
},
{
"key": "access-control-allow-origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"session_id\": \"SHOPASSIST_0a042ad3-79c7-4838-986f-28c9c8619967\",\n \"welcome_message\": \"Test message\"\n}"
}
]
},
{
"name": "5-start chat with session",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJraWQiOiJQbWk5U2Z5UXVKdmxZTUQwVlZNRWpXelowcFkiLCJhbGciOiJSUzI1NiJ9.eyJpYXNfYXBpcyI6WyJwcmluY2lwYWwtcHJvcGFnYXRpb24iXSwic3ViIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzcyI6Imh0dHBzOi8vYWhzNmZzenB6LmFjY291bnRzLm9uZGVtYW5kLmNvbSIsImdpdmVuX25hbWUiOiJHdXJ1IiwiYXVkIjoiODQyN2M5MGQtODAzZS00ZjllLTkwYmQtZGNlMDc3Y2YwMWY5Iiwic2NpbV9pZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsInVzZXJfdXVpZCI6ImMxNjY5MTZhLWUxZGItNGNmYi04NzdhLWY3ZDEzNTRhMDFjYyIsImF6cCI6IjQ4MDYyMWQxLTE3MGItNDY0Ny1iMWFiLWI1ZDFlYzkyZWQzZCIsImV4cCI6MTc0NDgzNDY2MCwiaWF0IjoxNzQ0ODMxMDYwLCJmYW1pbHlfbmFtZSI6IlNoZXR0aSIsImp0aSI6ImU4YjQxZjAwLTc3NjgtNGIyOC1hZDRkLWRmZGZjOWUyZDRiYiIsImVtYWlsIjoiY3hhaXRfY3MxQGRlbW8uY2xvdWQuc2FwIn0.IEfE5SszCLFRsGXbHBPWyxWPRGTGMTWjYdBP5zRKl0H-U3BLcnUN3yZQiMy_G3E_7KtNBXUFhUyhQ0oOkl3eGd3PwbyVmfwd7W6Bvk1uIZ4C0nJjr9_cSb3aunYWO-PBqSRaium8Rf-JRjHmLj-UIsjAqaoNjMbyfNcNMULjwpJ2kOrtUYsIYYhMob9vfXEkHb_n5vFNWBN0UkxPfP5ouYoN9UVR2CMH6f7hv16sg6QQyk8HMGzfJc94K95D4k-QqXP8jyJUExWt3N3HnoL4Qgn3N7vUoyl58f74bgxRn9JVqtYS2kKdMAJ28hfG4ns8DUaEuD2iEres0yrXvm7Xz3yJuLdy-RJg_9PASPmXVn9vIcvOF-tFX-y7xLjq7jQZR2UHGMGKgdlQVZrw0K7xzJUU_d7x9vXaulCbHxvAWJpomqc3hvgyZO3VymORXorkTPjS15cMR69CSlbuy52kvLYvmQRGGiCERVupuOk39rZD4Vc6fTomjxa6Kj_TCEYSOX-DWDqELXYP_WM5Xbestrun4ppaYQL1bz0A1_0Rd5lrXCu3TNuh94KA1QH4UoMYPtQnXwpBvMjX_-i4c1qqg2dnx8lMbestrunocYzO71Mz7Vbestrun2YVzbestrunNes5JPztsdhpLgi-6JaNZZvwoP_E8RQPfSH2qoUrnTc",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n \"session_id\": \"SHOPASSIST_0a042ad3-79c7-4838-986f-28c9c8619967\",\n \"user_input\": \"Can you recommended me a small drill?\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api-dewc-prod.cxai.cloud.sap/assistant/v1/shopping/chat",
"protocol": "https",
"host": [
"api-dewc-prod",
"cxai",
"cloud",
"sap"
],
"path": [
"assistant",
"v1",
"shopping",
"chat"
]
}
},
"response": [
{
"name": "3-chat Copy",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n \"session_id\": \"SHOPASSIST_0a042ad3-79c7-4838-986f-28c9c8619967\",\n \"user_input\": \"Can you recommended me a Configurable Screwdriver?\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api-dewc-prod.cxai.cloud.sap/assistant/v1/shopping/chat",
"protocol": "https",
"host": [
"api-dewc-prod",
"cxai",
"cloud",
"sap"
],
"path": [
"assistant",
"v1",
"shopping",
"chat"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "content-length",
"value": "644"
},
{
"key": "content-security-policy",
"value": "default-src 'self'"
},
{
"key": "content-type",
"value": "application/json"
},
{
"key": "date",
"value": "Wed, 16 Apr 2025 19:27:45 GMT"
},
{
"key": "server",
"value": "istio-envoy"
},
{
"key": "vary",
"value": "Origin"
},
{
"key": "x-content-type-options",
"value": "nosniff"
},
{
"key": "x-correlation-id",
"value": "dfa40f94-1af8-11f0-9df0-5aeb7adb64c3"
},
{
"key": "x-envoy-upstream-service-time",
"value": "3298"
},
{
"key": "x-trace-id",
"value": "b3381c72-c9b4-41c4-8fc3-c204e22c65a1"
},
{
"key": "strict-transport-security",
"value": "max-age=31536000; includeSubDomains"
},
{
"key": "access-control-allow-origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"response\": \"Absolutely! The {CONF_SCREWDRIVER_S} is an exceptional choice for anyone needing a versatile and customizable tool. It stands out for its ability to adapt to various screw sizes and types, making it perfect for both professional and DIY projects. Many customers appreciate its durability and reliability in all kinds of settings. Would you like more details on its features or availability?\",\n \"recommendations\": [\n {\n \"recommendation_type\": \"product_recommendation\",\n \"codes\": [\n \"CONF_SCREWDRIVER_S\"\n ]\n }\n ],\n \"actions\": [],\n \"function_suggestion\": [],\n \"agent_type\": \"product_recommendation\",\n \"session_id\": \"SHOPASSIST_0a042ad3-79c7-4838-986f-28c9c8619967\"\n}"
}
]
}
]
}
The following repo provides an example chatbot integrated with Spartacus library to use CXII Assistant API
By following these comprehensive steps, you can successfully integrate SAP CX AI Shopping Assistant into your SAP Commerce Cloud storefront, providing dynamic, AI-driven shopping experiences to your customers.
Start leveraging SAP CX AI today and transform your customer engagement!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |