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

Upgrade SAP Commerce Core from 6.7 to 2011

24 min read

6.7 to 2011


If you have found yourself falling behind on upgrades and are a few versions back, it can sometimes seem daunting to execute an upgrade as we have covered in Upgrading your SAP Commerce Solution. In this article we have consolidated all of the changes made between a vanilla version of SAP Commerce Core 6.7 and 2011. This technical view of all the changes is to act as a reference to understand all the changes, as they may help you figure out how to adjust your customizations to make your upgrade faster.

Table of Contents

Overview

This article is intended to act as a reference of all the changes made between 6.7 and 2011. We still encourage you to leverage the steps in Upgrading your SAP Commerce Solution. Many of the information is also covered in the product documentations Installing and Upgrading Commerce section, but there are two drawbacks:

  1. It only covers changes between a single version (e.g. 2005 → 2011). If you're upgrading between multiple versions – like we're covering in this article – you would have to go through each version.

  2. The changes are split by module area, which may be harder to get a holistic view.

Even with these drawbacks, the upgrade documentation is still a valuable source, as it is a significant resource for the fine-grained details of what has changed. Although we provide the holistic view of what has changed in this article, you may find you need to consult the documentation to help understand the change.

To ensure your SAP Commerce Cloud code repository is set up correctly you may also find it useful to look at the sample code and also review Build and Deploy Your First SAP Commerce Cloud Project.

This article assumes you're using the equivalent "cx" recipe available in SAP Commerce Core 2011. We will first cover each of the delta upgrades and will conclude with a full copy of the differences between 6.7 and 2011. This is to assist you if you're not starting from version 6.7.

SAP Commerce v6.7 to v1808

Upgrade procedure:  Upgrading Platform from 6.7 to 1808

Problem Area

Status

Compilation

(tick)

Startup

(tick)

System Update

(warning)  

Console Log

(tick)

Storefront Smoke Test (Homepage, Product Page, Search, Checkout)

(tick)

Issues

Area

Issue Description

Resolution Steps

System Update

Delete backoffice indexer jobs not found.

ERROR [hybrisHTTP21] [HybrisApplicationEventMulticaster] [de.hybris.platform.servicelayer.cronjob.impl.JobPerformableGenericTypeValidator@3112f479]: unexpected validator error: No bean named 'backofficeSolrIndexerDeleteJob' available
 de.hybris.platform.servicelayer.exceptions.ModelSavingException: [de.hybris.platform.servicelayer.cronjob.impl.JobPerformableGenericTypeValidator@3112f479]: unexpected validator error: No bean named 'backofficeSolrIndexerDeleteJob' available
	at de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokeValidateInterceptors(ModelWrapper.java:315) ~[coreserver.jar:?]

1808 has deprecated the backoffice delete indexer job, this should be removed from the data, in order to avoid these type of errors.


SAP Commerce v1808 to v1811

Upgrade procedure:  Upgrading Platform from 1808 to 1811

Problem Area

Status

Compilation

(warning)

Startup

(tick)

System Update

(warning)

Console Log

(tick)

Storefront Smoke Test (Homepage, Product Page, Checkout)

(tick)

Issues

Area

Issue Description

Resolution Steps

Compilation

cmsmulticountrycockpit extension does not exist

Extension 'cmsmulticountrycockpit' doesn't specify a path and no scanned extension was matching the name.

Remove cmsmulticountrycockpit extension from local extensions file.

Compilation

assistedserviceatddtests extension does not exist

Extension 'assistedserviceatddtests' doesn't specify a path and no scanned extension was matching the name.

Remove assistedserviceatddtests extension from local extensions file.

Compilation

promotionengineatddtests extension does not exist

Extension 'promotionengineatddtests' doesn't specify a path and no scanned extension was matching the name.

Remove promotionengineatddtests extension from local extensions file.

Compilation

textfieldconfiguratortemplateatddtests extension does not exist

Extension 'textfieldconfiguratortemplateatddtests' doesn't specify a path and no scanned extension was matching the name.

Remove textfieldconfiguratortemplateatddtests extension from local extensions file.

Compilation

Module generated in 6.7 creates an cockpits extension project, which should be deleted since "cockpits" have been removed on 1811.

Missing required extensions: cscockpit<-[upgradecockpits],cmscockpit<-[upgradecockpits]. Please check your extension setup!

Delete any cockpits extension generated by module gen and remove from local extensions file.

Compilation

Compilation errors resulting from the removal of the jackson library in 1811 for the CheckoutController.java and  ConsentManagementBeforeViewHandler.java/ ConsentManagementBeforeViewHandlerTest.java  classes .

   [yjavac] 	import org.codehaus.jackson.map.ObjectMapper;
   [yjavac] 	       ^^^^^^^^^^^^^^^^^^^^
   [yjavac] The import org.codehaus.jackson cannot be resolved

Change the import statements from:

import org.codehaus.jackson.map.ObjectMapper;

to

import com.fasterxml.jackson.databind.ObjectMapper;

Console Log

Impex error in /upgradecore/import/common/essential-data.impex

ERROR [hybrisHTTP38] (0000036Q) [CronJobErrorHandler] Exception ocurred, will ignore: de.hybris.platform.impex.jalo.imp.AmbiguousItemException: More than one item of type Script found for unique qualifiers {code3=confirmPickup}[HY-0]
de.hybris.platform.impex.jalo.imp.AmbiguousItemException: More than one item of type Script found for unique qualifiers {code3=confirmPickup}

Rectify issue with duplicate key issue (this does not cause any issues functionally since it was imported in previous runs).

SAP Commerce v1811 to v1905

Upgrade procedure :  Upgrading Platform from 1811 to 1905

Problem Area

Status

Compilation

(warning)

Startup

(tick)

System Update

(tick)

Console Log

(warning)

Storefront Smoke Test (Homepage, Product Page, Checkout)

(warning)

Issues

Area

Issue Description

Resolution Steps

Compilation

mcc extension does not exist

Extension 'mcc' doesn't specify a path and no scanned extension was matching the name.

Remove mcc extension from local extensions file.

Compilation

No rhino-1.7.7.jar can be found under platform/resources/ant/lib.

[testClassesScanner] Found 34 upgradestorefront webtestclasses in 5.489 ms
    [touch] Creating /Users/i842231/Documents/sources/67upgrade2005/hybris/temp/hybris/touch/upgradestorefront_addontestsrctouch
    [apply] Error: Unable to access jarfile /Users/i842231/Documents/sources/67upgrade2005/hybris/bin/platform/resources/ant/lib/rhino-1.7.7.jar

  1. Add the following external dependency configuration to the {storefront-extension}/web/webroot/WEB-INF/external-dependencies.xml:

    <dependency>
    	<groupId>org.mozilla</groupId>
    	<artifactId>rhino</artifactId>
    	<version>1.7.7</version>
    </dependency>
  2. Locate the tool.rhino property (line 74) in the {storefront-extension}/buildcallbacks.xml and update the value of the location attribute so it uses the new extension's rhino jar instead of the one from the platform. In this example, the yacceleratorstorefront storefront extension is updated:

    <property name="tool.rhino" location="${ext.yacceleratorstorefront.path}/lib/rhino-1.7.7.jar" />
  3. Ensure that your storefront extension uses maven to download external dependencies by updating {storefront-extension}/extensioninfo.xml and setting the usemaven attribute to true.

    <extension ... usemaven="true">
  4. To ensure that the build downloads the new dependency, delete the {storefront-extension}/web/webroot/WEB-INF/lib/.lastupdate file of your storefront extension.

Console

Error when browsing through the Backoffice.

java.lang.UnsupportedOperationException: LongOperation does not cover invocation: public abstract java.lang.Object javax.servlet.ServletRequest.getAttribute(java.lang.String)
	at com.hybris.backoffice.cockpitng.util.BackofficeThreadContextCreator$UnsupportedOperationExceptionInvocationHandler.invoke(BackofficeThreadContextCreator.java:253) ~[classes/:?]
	at com.sun.proxy.$Proxy320.getAttribute(Unknown Source) ~[?:?]

Fixed in v2011

Runtime

JSP error on the checkout page:

SEVERE: Servlet.service() for servlet [DispatcherServlet] threw exception
org.apache.jasper.JasperException: /WEB-INF/tags/responsive/cart/cartVoucher.tag (line: [25], column: [4]) Unable to find setter method for attribute: [commandName]

Since version 1905 uses Spring 5, a deprecated tag attribute is no longer available. Replace the attribute commandName and replace it with modelAttribute in Spring tags.

Runtime

NullPointerException on product page:

Nov 26, 2020 2:03:46 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [/upgradestorefront] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
	at de.hybris.platform.acceleratorservices.storefront.util.PageTitleResolver.resolveProductPageTitle(PageTitleResolver.java:187)
	at de.hybris.platform.acceleratorservices.storefront.util.PageTitleResolver.resolveProductPageTitle(PageTitleResolver.java:214)
	at com.upgrade.storefront.controllers.pages.ProductPageController.updatePageTitle(ProductPageController.java:403)

Add the following property to the "pageTitleResolver" bean in the custom storefront extension:

<property name="productAndCategoryHelper" ref="productAndCategoryHelper"/>

Runtime

NullPointerException on product page:

Nov 26, 2020 2:18:23 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [/upgradestorefront] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
	at de.hybris.platform.acceleratorstorefrontcommons.breadcrumb.impl.ProductBreadcrumbBuilder.getBreadcrumbs(ProductBreadcrumbBuilder.java:51)
	at com.upgrade.storefront.controllers.pages.ProductPageController.populateProductDetailForDisplay(ProductPageController.java:426)
	at com.upgrade.storefront.controllers.pages.ProductPageController.productDetail(ProductPageController.java:141)

Add the following property to the "productBreadcrumbBuilder" bean in the custom storefront extension:

<property name="productAndCategoryHelper" ref="productAndCategoryHelper"/>

SAP Commerce v1905 to v2005

Upgrade procedure:  Upgrading Platform from 1905 to 2005

Problem Area

Status

Compilation

(tick)

Startup

(tick)

System Update

(tick)

Console Log

(tick)

Storefront Smoke Test (Homepage, Product Page, Checkout)

(tick)

Issues

There were no problems that were encountered when upgrading from 1905 to 2005. You may run into issues if your local development environment is not set up for the move from JDK 8 to SAP Machine 11 (see here).

SAP Commerce v2005 to v2011

Upgrade procedure:  Upgrading Platform from 2005 to 2011

Problem Area

Status

Compilation

(tick)

Startup

(warning)

System Update

(tick)

Console Log

(tick)

Storefront Smoke Test (Homepage, Product Page, Checkout)

(tick)

Issues

Area

Issue Description

Resolution Steps

Startup

Solr Not Starting (solrserver)

Follow steps located here:

Upgrading Search and Navigation from 2005 to 2011

Summary of Changes Between v6.7 and 2011

The assumption is you will replace your hybris/bin/modules and hybris/bin/platform folders with the content from SAP Commerce Core 2011. For the hybris/config folder we have attached this diff. If you're using the B2C Acceleartore we have attached a separate diff here showing all the changes between 6.7 and 2011. The table below highlights the changes that need to be made in order to upgrade a project that was generated in version 6.7 and upgrade to the 2011 version, while bringing in all changes that have been made since then. This section will highlight the high level changes – the diff should be used to determine exactly what should be changed when doing the actual upgrade.

Extension

File(s) Changed

Description of Change

upgradecore

buildcallbacks.xml

  • Add upgradecore_clean_classpath_file macrodef

  • Modify upgradecore_after_clean macrodef to generate classpath file

upgradecore

extensioninfo.xml

  • Remove solrserver as required-extension

  • Remove backoffice-module

upgradecore

testCheckoutExternalTaxes.csv

  • Remove cockpitgroup

upgradecore

cmscockpit-access-rights.impex

  • Remove cockpitgroup

  • Adjusted permissions

upgradecore

cmscockpit-users.impex

  • Remove cockpitgroup

upgradecore

cscockpit-users.impex

  • Remove cockpitgroup

upgradecore

countries.impex

countries_en.impex

countries_zh.impex

  • Adjusting names of countries

upgradecore

delivery-modes.impex

  • Adding other asian regions

upgradecore

essential-data.impex

  • Removing confirmPickup groovy script

upgradecore

user-groups.impex

  • Script cleaned up

upgradecore

email-cmsImageComponentTemplate.vm

email-customerRegistrationBody.vm

email-deliverySentBody.vm

email-forgottenPasswordBody.vm

email-notPickedUpConsignmentCanceledBody.vm

email-orderCancelledBody.vm

email-orderCollectionReminderBody.vm

email-orderConfirmationBody.vm

email-orderMoveToCsBody.vm

email-orderPartiallyCanceledBody.vm

email-orderPartiallyRefundedBody.vm

email-orderRefundBody.vm

email-quoteBuyerCancellationBody.vm

email-quoteBuyerSubmissionBody.vm

email-quoteExpiredBody.vm

email-quoteToExpireSoonBody.vm

email-readyForPickupBody.vm

  • Email template changes

upgradecore

upgradecore-spring.xml

  • Remove mccSiteUrlHelper (and the java class itself)

upgradecore

CoreSystemSetup

  • Change from cmscockpit to cmsbackoffice

  • Change from cscockpit to customersupportbackoffice

  • Remove report cockpit

  • Remove references to mcc

upgradecore

MockCalculateExternalTaxesStrategy

  • Adjust entry number logic

upgradefacades

buildcallbacks.xml

  • Add upgradefacades_clean_classpath_file macrodef

  • Add upgradefacades_after_clean macrodef to generate classpath file

upgradefacades

QuoteNotificationEmailContext

  • Throwing exception if null valued logic

upgradefacades

SubprocessEndAction

  • Error handling logic

upgradefacades

MockProcess2WarehouseAdapter

  • Adjusting subclass to extend Runnable instead of RegistrableThread

upgradefacades

CheckTransactionReviewStatusActionTest

  • Ignoring tests

upgradefacades

PaymentIntegrationTest

ProcessFlowTest


  • Adjusting for new process engine functionality where nodes can be executed asynchronously

upgradeinitialdata

buildcallbacks.xml

  • Add upgradeinitialdata_clean_classpath_file macrodef

  • Add upgradeinitialdata_after_clean macrodef to generate classpath file

upgradeinitialdata

Impex files

  • Substantial data changes for cms-content and email content data

  • Store changes regarding the other assian countries

upgradestorefront

buildcallbacks.xml

  • Add rhino 1.7.7 jar

  • Substantial differences in build of storefront from 6.7 to 2011, should be ported over

upgradestorefront

package.json

  • Library dependency differences

upgradestorefront

project.properties

  • Properties should be verified to make sure everything is present that has been added over the versions since 6.7

upgradestorefront

StoreSessionController

AccountPageController

AccountSavedCartsPageController

CartPageController

CheckoutController

DefaultPageController

GuestOrderController

HomePageController

ImportCSVPageController

LoginPageController

MyQuotesController

PasswordResetPageController

PickupInStoreController

PreviewContentPageController

ProductPageController

QuoteController

SearchPageController

StoreLocatorPageController

DeliveryAddressCheckoutStepController

DeliveryMethodCheckoutStepController

HopPaymentResponseController

MultiStepCheckoutController

PaymentMethodCheckoutStepController

PickupLocationCheckoutStepController

SopPaymentResponseController

SummaryCheckoutStepController


  • Various changes in each of these controllers

upgradestorefront

ConsentFilter

SecurityEmailCheckBeforeControllerHandler

  • Newly added in releases after 6.7

upgradestorefront

UrlEncoderFilter

  • Adding originalContextPath  to the request attributes

upgradestorefront

AnalyticsPropertiesBeforeViewHandler

  • Significant changes

upgradestorefront

CartRestorationBeforeViewHandler

  • Public to private attributes

upgradestorefront

CmsPageBeforeViewHandler

  • Adding page preview context

upgradestorefront

ConsentManagementBeforeViewHandler

  • Significant logic changes

upgradestorefront

SeoRobotsFollowBeforeViewHandler

  • HTTPS pages now will be indexed by search indexers

upgradestorefront

UiThemeResourceBeforeViewHandler

  • Theming logic changes

upgradestorefront

ImageMapComponentRenderer

  • Method throwing exception change

upgradestorefront

CustomerLocationCookieGenerator

  • Separator changes

upgradestorefront

EnhancedCookieGenerator

DefaultGUIDCookieStrategy

  • Cookie generator changes

upgradestorefront

WebHttpSessionRequestCache

  • Logging changes

upgradestorefront

DefaultPreviewDataModelUrlResolver

  • URL resolver  for preview data changes

upgradestorefront

SiteThemeResolverUtils

  • Null check

upgradestorefront

AccountPageControllerTest

ConsentManagementBeforeViewHandlerTest

ImageMapComponentRendererTest

AcceleratorAuthenticationProviderTest

EnhancedCookieGeneratorTest

CsrfProtectionMatcherTest

  • Test logic changes

upgradestorefront

jquery.pstrength.custom-1.2.0.js

jquery.slideviewer.custom.1.2.js

acc.address.js

acc.autocomplete.js

acc.cart.js

acc.closeaccount.js

acc.cms.js

acc.common.js

acc.consent.js

acc.csv-import.js

acc.forgottenpassword.js

acc.futurelink.js

acc.global.js

acc.imagegallery.js

acc.minicart.js

acc.multidgrid.js

acc.navigation.js

acc.paginationsort.js

acc.payment.js

acc.paymentDetails.js

acc.pickupinstore.js

acc.product.js

acc.productDetail.js

acc.productorderform.js

acc.quickorder.js

acc.quickview.js

acc.quote.js

acc.refinements.js

acc.sanitizer.js

acc.savedcarts.js

acc.silentorderpost.js

acc.storefinder.js

acc.tabs.js

acc.termsandconditions.js

addtocartaction.js

listaddtocartaction.js

listorderformaction.js

listpickupinstoreaction.js

pickupinstoreaction.js

vieworderaction.js

viewstoreaction.js

acc.autocomplete.js

  • Javascript changes

upgradestorefront

_navigation.less

account.less

addons.less

addtocart-component.less

buttons.less

carousel.less

cart.less

header.less

pdp.less

product-list.less

jquery-ui-custom.less

generatedVariables.less

  • CSS changes

upgradestorefront

serverError.jsp

  • Session not created on server error page

upgradestorefront

ycommercetags.tld

  • Adding method for validating safe URL schemes

upgradestorefront

spring-filter-config.xml

  • Adding polyglotPersistenceCallbackFilter and consentFilter

upgradestorefront

spring-mvc-config.xml

spring-security-config.xml

  • Adjusting spring configurations

upgradestorefront

external-dependencies.xml

  • Add rhino library to the dependencies

upgradestorefront

base_de.properties

base_en.properties

base_ja.properties

base_zh.properties

  • Property file changes

upgradestorefront

Storefront .tag, .jsp files.

  • There are too many to list, please look at the diff to find all the changes in these files.

upgradestorefront

wro.properties / wro.xml

  • Changes in post processor names

  • Upgrade jquery version

Conclusion

You should now have an idea of the changes that have been made between SAP Commerce Core 6.7 and 2011. You can use these to help make the neccesary changes to your solution. It is impossible to cover any customizations you may have made, nor can we cover deprecations where you may require some of the features, which is why we go into greater detail with our series on an Upgrade Project Framework for SAP Commerce Cloud. If you're looking to move off the accelerators you may also want to review the article on Migrating your Accelerator-based Storefront to Project Spartacus.

Overlay