CX Works

CX Works brings the most relevant leading practices to you.
It is a single portal of curated, field-tested and SAP-verified expertise for SAP Customer Experience solutions

Checklist for Succeeding with SAP Commerce Cloud

23 min read

Checklist for Succeeding with SAP Commerce Cloud

Here you can find all common pitfalls, tips and tricks and other references that ensure a successful migration to SAP Commerce Cloud in the Public Cloud.

Description Solution Options Documentation

Preparation - Establish Performance Baseline

To ensure a successful migration, establish and provide performance / load testing baseline.

  • Provide the performance Key Performance Indicators (KPIs) as defined for your project
  • Provide Load Tests results of a production environment

Preparation - Clean Up Source Database

Clean up all temporary and outdated transactional data.

Review your audit log settings and decide what data you actually need to log based on your projects requirements.

Please clean up at least the following types:

  • CronJobs
  • CronJobHistory / CatalogVersionSyncCronJobHistory
  • Tasks
  • LogFile
  • SavedValues / SavedValueEntry
  • ImpexMedia
  • StoredHttpSession - do not migrate stored sessions!
  • BusinessProcess
  • ProccessTaskLogs
  • Cart

If you require audit logging (due to regulatory compliance), make sure you only audit log the the relevant data (relevant types). Disable audit logging for all types that are not part of the compliance requirements.

If you don't have to follow any regulatory compliance, it is highly recommended to disable audit logging completely.

You can find an up-to-date lists of types and analysis queries in the sanecleanup GitHub project.

Preparation - Transparent Attribute Encryption (TAE)

If custom keys and password are used by your project, extract and migrate all existing keys and passwords to your SAP Commerce Cloud environments.

  • Upload your encryption keys as "Security Files"
  • Attach the relevant keys/security files to the environment
  • Configure TAE-related properties as hcs_common service properties

Compatibility - PCI DSS Compliance

SAP Commerce Cloud is compliant with the PCI DSS 3.2.1 standard.

  • For further details, please refer to the official documentation

Compatibility - Data Center Locations

SAP Commerce Cloud is constantly re-evaluating the demand to consider additional data centers to host your solution.

If you have specific data protection laws and regulations that affect the physical position of the data center, you need to make sure SAP Commerce Cloud offers a data center in a required region.

  • If you want to know the availability and location of the data centers please consult the Cloud Service Status page

Compatibility - Minimal Supported SAP Commerce Version

Your SAP Commerce version must be in Mainstream Maintenance.

Minimal version at the time of writing: 2005

  • Upgrade the project

Project Setup - Public Code Repository

SAP Commerce Cloud connects to your git repository over the public internet.

Other options are not supported.

  • Make git server public
  • Or mirror repository to
    • public git service like GitHub, Gitlab and others
    • self-hosted public instance

Project Setup - Code Repository Setup

The build process in the Commerce Cloud expects:

  • a specific folder structure
  • manifest.json file(s) that configure the components of your project
  • a single repository for all components of your project (Commerce, Spartacus Storefront and/or Data hub)

  • Follow the documentation to make you repository compatible with Commerce Cloud

Project Setup - ant customize

ant customize is not supported in SAP Commerce Cloud.

  • Use supported extension options
  • Use buildcallbacks to generate code

Project Setup - Additional Build Tools

The only additional build tool supported for the Commerce build is the Node.js distribution provided by the npmancillary extension for SmartEdit customizations.

Other tools / executables are not supported.

  • If necessary, replace external tools/binaries by ant / JVM based tools
  • Or: commit build results / generated code / ... of third party tools to git repository used for SAP Commerce Cloud

Project Setup - Additional Build Services

SAP Commerce Cloud does not provide additional build services like:

  • Sonar
  • Selenium
  • FindBugs / SpotBugs

  • Perform additional build / integration steps outside of SAP Commerce Cloud
  • Trigger build and deploy on SAP Commerce Cloud using the Build API after the additional checks have passed

Project Setup - Automated CI/CD Pipeline

SAP Commerce Cloud does not have the capability to trigger builds on push / pull request / ..

  • Provide the build/deploy automation outside of SAP Commerce Cloud
  • Automate using the Commerce Cloud API / Command Line Interface (CLI)

Compatibility - Supported Java Runtimes

The only supported JVM is sapmachine (see third-party compatibility link for specific versions).

  • Ensure that project development only happens on supported versions

Compatibility - Database - Server

SAP Commerce Cloud in the Public Cloud uses Azure SQL as underlying DBMS.

  • Ensure you don't use any SQL functions or features that are specific to your currently used DBMS

Compatibility - Database - Collation

The DB uses a case-insensitive and width-insensitive collation by default.

  • Ensure your data doesn't rely on case or width for uniqueness, if possible
  • Explicitly request case-sensitive collation from SAP Support

Compatibility - Database - Indexes

Any custom indexes must be explicitly transferred from the source database and allow listed.

  • Determine relevant custom indexes
  • Define a common prefix and allowlist the prefix for the Update process
  • Automate index creation - perform during System Update
  • or open SAP Support requests to create indexes for each environment (NOTE: indexes created by SAP Support will be deleted upon next initialization unless added to relevant items.xml)

Compatibility - Database - Additional Schemas

Additional schemas / database are not supported.

SAP Commerce Cloud only provides a single schema that must be exclusively used by SAP Commerce.

  • Provide additional schemas/databases on your own database server
  • Integrated own DB via VPN

Infrastructure - Customizations of Apache/nginx/...

Only a restricted set of customization or configuration of the web tier is supported.

Please refer to the documentation for all supported options.

  • Migrate your current customization to use the supported options
  • Any non-supported customization must by ported to the DNS layer, CDN or even the application layer / Commerce
    E.g
    • Complex redirects/rewrites using mod_rewrite
    • Redirects based on geolocation
    • ...

Infrastructure - Load Balancing

Load balancing is handled automatically by SAP Commerce Cloud.

There is no need for manual intervention or custom configuration anymore.

N/A

Infrastructure - Contend Delivery Network (CDN)

SAP Commerce Cloud does not come with a bundled CDN.

  • If required, configure a third-party CDN

Infrastructure - Web Application Firewall (WAF)

SAP Commerce Cloud does not come with a bundled WAF.

  • If required, configure a third-party WAF

Infrastructure - Domain Certificate Management

In SAP Commerce Cloud, Domain Certificates are managed by the customer/partner using self-service capabilities of the Cloud Portal.

  • Request certificate and private key from CCv1 team, if you don't have it already
    • the private key is privileged information and must be kept safe!
  • Configure the following in PEM format:
    • the certificate itself
    • private key of the certificate
    • the certificate chain from the certificate to the root certificate authority (CA), including any and all intermediary CAs
  • Associate the certificate with the endpoint(s)

Infrastructure - Virtual Private Network (VPN) Connectivity

SAP Commerce Cloud provides a self-service site-to-site VPN with NAT capabilities.

  • Setup and configure the VPN connection to on-prem servers as needed

Infrastructure - Direct connectivity to specific servers/services

Direct connectivity to specific servers or components of a SAP Commerce Cloud subscription (like the database) is not supported.

N/A

Infrastructure - Maximum outbound connection timeout

Azure restricts the maximum idle network timeout for all outbound connections to 4 mins.

Other than that, SAP Commerce Cloud does not restrict outbound network connectivity in any way.

  • Ensure HTTP keep-alive is correctly configured for all outbound API calls
  • Consider moving to an asynchronous approach for long-running calls / services like
    • polling for status of the operation
    • completion callbacks

Infrastructure - Additional Infrastructure Components (aka. "Satellite Server")

SAP Commerce Cloud does not support adding any additional infrastructure components to your subscription.

Non-exhaustive list of unsupported services:

  • Redis
  • Memcached
  • Apache Cassandra
  • Mongo DB

In short, if it is not part of the official SAP Commerce Cloud service description or is not available as an addon to SAP Commerce Cloud, it is not supported.

  • Host any required services/servers in your own Azure subscription, ideally in the same Azure Region as your SAP Commerce Cloud subscription. Connect over the public internet or via a site-to-site VPN to your self-hosted services
  • Migrate functionality provided by third-party services to side-by-side extensibility (using SAP Business Technology Platform, Kyma runtime, Webhooks, Integration APIs) or to modules and extensions provided by SAP Commerce

Infrastructure - SMTP Server

SAP Commerce Cloud does not provide an SMTP server for outgoing emails.

  • Bring your own SMTP server
  • Use a mail service offering to send emails

Infrastructure - File System

The local file system of the Commerce instances in SAP Commerce Cloud is limited in size.

Overusing the file system will lead to automated restarts to purge the local filesystem.

  • Do not use the file system for business-relevant features
  • Limit the use the local file system to small, temporary files that are immediately deleted after use

Infrastructure - No shared file system

There is no shared file system between the Commerce instances in SAP Commerce Cloud.

This also includes Medias. Medias are not stored in the file system in SAP Commerce Cloud. Media should be stored in a Digital Asset Management  (DAM) solution or in the Commerce Cloud Storage.

  • Migrate any file-based processing pipelines to Cloud Hot Folders
  • Use Commerce Medias + mediaService instead of files. Commerce Medias are available on all Commerce instances and are also easily available to download / share with third parties

Infrastructure - Log Management

All logs of all components of SAP Commerce Cloud are centrally collected and stored.

Kibana is provided as a central UI to manage, search and configure alerts on logs.

Logging to file(s) is not supported in SAP Commerce Cloud. All logging must go to stdout / stderr.

Please refer to the documentation about the current retention for logs. (at the time of writing: 90 days or 100GB).

  • Review existing alerts and configuration
    Kibana is only intended for DevOps support and troubleshooting. No other use cases are officially supported.
  • Review the SAP Commerce logger configuration of the project
    The following options are prohibited:
    • configuration via a custom log4j2 xml configuration file
    • modifications of the root logger
    • custom appenders (logging to a file etc.)

If your project needs to “mark” or “tag” specific logs per component, integration, … or the project used to write multiple log files:

Use Mapped Diagnostic Contexts (MDCs) provided by the SLF4J framework to mark log messages.

All MDCs are available in Kibana, field log.contextMap

Infrastructure - Log Export

SAP Commerce Cloud ships the raw logs (json format, xz compressed) to an Azure Blob storage from which they can be downloaded for further processing.

No other option is supported.

  • If the project uses logs for business metrics, use the exported logs to set up those metrics outside of the SAP Commerce Cloud logging stack

Infrastructure - Application Performance Monitoring (APM)

Every SAP Commerce Cloud subscription includes Dynatrace for APM.

No other option is supported.

  • Familiarize yourself with the additional Dynatrace monitoring options for SAP Commerce Cloud, mainly around Azure resources

Compatibility - Unsupported Commerce Modules

Please refer to the official documentation for a list of modules that are not supported in SAP Commerce Cloud.

  • Review the modules in your project
  • If you use an unsupported module, please refer to the our Architecture article for solutions.

Compatibility - Multiple Commerce Tenants

Multiple tenants are not supported.

  • Explore if you can run multiple storefronts in the same subscription
    • one storefront extension + multiple cms sites and base sites
    • multiple storefront extensions
  • Consider multiple subscriptions or data center regions if strict data separation is necessary
  • Consider multiple production environments

Compatibility - Image Resizing / Media Conversion

Media Conversion uses a different architecture in SAP Commerce Cloud.

  • If you use mediaconversion in your project, make sure to enable the Cloud Media Conversion feature of SAP Commerce Cloud
  • Test the conversion in SAP Commerce Cloud for compatibility

Compatibility - Legacy Clustering

All nodes in a SAP Commerce Cloud system use dynamic node IDs, therefore all features that rely on static/fixed node IDs are not supported in SAP Commerce Cloud.

These features include:

  • Assigning Jobs/Cronjobs to specific IDs
  • Sending cluster events to specific IDs
  • Node-ID-specific configuration

  • Use nodeGroups instead of nodeIDs for Cronjobs, Events and other cluster-related features

Compatibility - SAP RFC Group Connection Support

Group Connections for SAP RFC Connections are not supported.

The necessary modifications to Operating System files are not allowed on SAP Commerce Cloud due to security constraints.

  • Consider using an SAP Router instead

Compatibility - Solr version

You must use a Solr version that is compatible with your SAP Commerce patch release.

  • Review your current Solr version
  • Upgrade and adapt your Solr customizations accordingly
  • If you only use the out-of-the-box Solr configuration that comes bundled with SAP Commerce without any customization, it is recommended to let the SAP Commerce Cloud build automation choose the latest version for you

Compatibility - Supported Solr Customizations

Only change configuration related to indexes, fields / field configurations (config sets).

Avoid any configurations regarding the server setup, this is managed by SAP Commerce Cloud.

SAP Commerce Cloud uses Solr in Cloud Mode. Primary-replica setups are not supported.

  • Review your current Solr customization
  • Provide the customization in the required folder structure, configured in manifest.json
  • Do not configure server settings, security settings and anything else related to the Solr server runtime
  • Do not configure dataDir anywhere in your custom configuration. This breaks the Solr deployment in CCv2.

Compatibility - Solr Server Configuration in SAP Commerce

All Facet Search Configurations must use Solr server configuration "Default".
The automation only pre-configures "Default", no other server configuration is officially supported.

  • Adjust all Facet Search Configurations accordingly. (either manually after deployment or via system update impex)

Data Hub - Adapt Data Hub Build

SAP Commerce Cloud defines a specific process how DH extensions are built.

  • Adapt your DataHub project to the SAP Commerce Cloud build

Compatibility - Compatibility with HTTP Session Fail-over

Test if your storefront sessions are compatible with HTTP Session Fail-over.

  • Enable session serialization check in (local) development
  • Fix any reported errors
  • Warning: the check must not be enabled in production!

Compatibility - Compatibility with Zero Downtime Deployments

Test if the project system update is working on SAP Commerce Cloud.

  • Use a dev or staging environment and test if your system update works with rolling deployment mode on SAP Commerce Cloud

Go Live Preparation - Cloud Readiness Check

Coordinate with your Cloud Engagement Executive (CEE) or SAP Support to schedule a Cloud Readiness Check (usually ~6 weeks before go-live).


  • Cloud Readiness Check is review by SAP of your solution looking for common issues that may impact your go-live
  • Leave time in project to evaluate recommendations and determine which need to be fixed prior to go-live

Go Live Preparation - Production Data Migration

Conduct a Production Data Migration Dry-Run to evaluate the cut-off duration and test for any possible functional/platform issue.

  • Migrate full production data
  • Evaluate migration duration

Go Live Preparation - Adjust Solr Sharding and Replica Configuration

Configure the shards and replica configuration according to your index size, document size, number of attributes, fail-over requirements ...

  • Review number of shards and number of replicas for the Default server configuration and/or per index
  • Adapt the configuration according to the environment type (dev, staging, production), as the number of available Solr nodes is different per type

Go Live Preparation - Configure your Endpoints

Configure your endpoint(s) according to your requirements.

  • Add new endpoints for additional domains
  • Add valid certificates to additional endpoints
  • Configure IP Filter Sets as necessary
  • Remove unused endpoints
  • Configure Cross-Origin-Resource-Sharing between all Endpoints as necessary
  • Enable Web Caching for following paths:
    • /_ui/

Recommendation: Please consider using a Content Delivery Network for production systems

Go Live Preparation - Configure Readiness Check and Node Warmer

Configuring the node warmer makes sure that the impact of deployment, auto-scaling and other scenarios on the overall response time remains minimal.

  • Review the documentation for Readiness Checks and Node Warmer
    • Does your project require additional checks for a server be considered "ready"? If yes, implement a custom readiness check
  • Configure at least the node warmer for:
    • Homepage
    • One ore more product pages
    • Search page (most popular categories)
    • Login
    • Cart

Go-Live Preparation - Load Testing

Perform performance / load test on production environment with production data.

  • Perform load test
  • Compare load test result with performance baseline (PREP-003)
  • Load testing environment must have cronjobs enabled
    Load from background processing has an impact on front-end performance that needs to be measured

Recommendation:

Acquire a second production environment to properly load test future development

Go-Live Preparation - Perform Final User Acceptance Test (UAT)

Perform a final acceptance test to ensure you have completed the migration successfully and are ready for go-live.

  • on a production environment
  • with production data

  • Perform UAT of all functionality, including (but not limited to):
    • Catalog Synchronization
    • Backoffice Reporting / Queries
    • Integrations (Master Data, Order Replication, Payment  etc)

Conclusion

With this collection of established best practices you should be well equipped for your journey to SAP Commerce Cloud. We will continue to update this page with new insights as soon as we learn them, make sure to check back regularly! In the meantime, feel free to check out the other articles in our series on Migrating to SAP Commerce Cloud.

Overlay