Announcement: You can find the guides for Commerce 7.5 and later on the new Elastic Path Documentation site. The Developer Center continues to support Commerce 6.13.0 through 7.4.1.Visit new site

Elastic Path 7.5.1 Release Notes

Elastic Path 7.5.1 Release Notes

Release Highlights

Catalog Syndication

With the catalog syndication framework, Elastic Path provides the capability to share catalog data across the commerce ecosystem to deliver unified commerce experiences to shoppers.

Multiple consumption models provide system integrators a flexible integration toolkit, with capabilities including real-time synchronization, polled updates, and periodic batch feeds.

This release includes a new back-end syndication API, a new syndication event channel, and support for developing and running plug-ins for batch catalog feeds. For more information about catalog syndication, see the Catalog Syndication overview section.

Sorting on Search and Category Pages

The ability to sort navigation and search results helps shoppers to discover the right products. The results are reordered according to the sort attribute, such as relevance, price low-high or high-low, or average customer rating. Business users can configure these attributes using business user tooling. With this feature, sellers can improve conversions and streamline buying experience for buyers. For more information about sorting, see the Sorting Attributes section.

Announcements and Notices

Deprecated Features

The following feature is deprecated in this release:
Feature Notes
The standalone demo package in the extensions/packager/standalone-demo/ module Elastic Path recommends Elastic Path CloudOps to deploy demo and POC environments in AWS or Azure.

Removed Features

The following feature is removed in this release:
Feature Notes
Source code for the devops/pusher-package/ module Elastic Path discontinued support for deployments using bash scripts in the devops/pusher-package/ in 7.5.0. Elastic Path recommends using Docker and Kubernetes functionality in Elastic Path CloudOps for custom deployments.

System Requirements and Compatibility

Elastic Path Commerce 7.5.1 is compatible with the following Elastic Path releases:

Elastic Path component Versions Location Git branch or file name
Elastic Path CloudOps for AWS CloudOps for AWS compatibility matrix code.elasticpath.com release/3.N.x where N is the minor version number
Elastic Path CloudOps for Azure CloudOps for Azure compatibility matrix code.elasticpath.com release/1.N.x where N is the minor version number

New in This Release

Core Commerce

  • Added support for Wiremock for mocking integrations with external services when running acceptance tests. With the new http-mock-server module, you can create simple and advanced mocks. For more information about using this module, see the extensions/http-mock-server/README.md file.
  • Replaced the selling context evaluation using Groovy shell with selling context evaluation using Java operator strategy classes. This results in an improvement in performance of the selling context evaluations that are used for promotions and price list determination for evaluations that miss the cache. Elastic Path removed the cache for condition evaluations to reflect the changes immediately.
  • Added custom Spring Namespace handlers for creating and extending lists in Spring. For example, you can create an extensible list as in the following:
    <extensibleList:create id="shoppingItemDtoValidatorListParent" overridableId="shoppingItemDtoValidatorList" valueType="com.elasticpath.service.shoppingcart.validation.ShoppingItemDtoValidator">
            <ref bean="productSkuDelegateFromShoppingItemDtoValidator"/>
            <ref bean="quantityShoppingItemDtoValidator"/>
            <ref bean="cartItemModifierShoppingItemDtoValidator"/>
            <ref bean="bundleStructureShoppingItemDtoValidator"/>
            <ref bean="bundleMaxSelectionRulesShoppingItemDtoValidator"/>
            <ref bean="inventoryShoppingItemDtoValidator"/>
    </extensibleList:create>
    You can also create an extensible list that can be modified, in the extension project, as in the following example:
    <extensibleList:modify overridableId="shoppingItemDtoValidatorList" parent="shoppingItemDtoValidatorListParent">
            <addToList>
                    <ref bean="customValidator"/>
            </addToList>
            <removeFromList>
                    <ref bean="inventoryShoppingItemDtoValidator"/>
            </removeFromList>
    </extensibleList:modify>

Cortex

  • Set the default setting for the format query parameter in Cortex Studio to format=standardlinks,zoom.nodatalinks to make the Cortex API responses smaller and more readable.
    Note: This settings does not change the default behaviour of Cortex API.
  • Added the ability for users to override shopping context evaluation date through a new Cortex trait called SHOPPING_CONTEXT_DATE_OVERRIDE. You can test promotions and price lists that are active in the future or past.
    Note: This trait only functions if the COMMERCE/SYSTEM/API/enableTrustedTraits setting is set to true.

New Cortex Resources

Category Resource Name Description
Navigation offersearches.sort-attribute-selector Provides the ability to select the sort order of navigation results returned in offersearches.offer-search-result.
Offer Search offersearches.sort-attribute-selector Provides the ability to select the sort order of offer search results returned in offersearches.offer-search-result.

Upgrade Notes

The Upgrading Elastic Path guide provides general instructions on upgrading Elastic Path projects. The upgrade instructions specific to the 7.5.1 release are listed in the following sections:

Database Changes

  • The following database tables are added for catalog syndication:
    • TCATALOGPROJECTIONS: Contains the latest version of each catalog projection.
    • TCATALOGHISTORY: Contains previous versions of catalog projections.
  • For catalog syndication, Elastic path uses Spring Batch to manage execution of scheduled and on-request jobs. Spring Batch creates the following tables:
    • BATCH_JOB_INSTANCE
    • BATCH_JOB_EXECUTION
    • BATCH_JOB_EXECUTION_CONTEXT
    • BATCH_JOB_EXECUTION_PARAMS
    • BATCH_STEP_EXECUTION
    • BATCH_STEP_EXECUTION_CONTEXT
  • Sorting of search and navigation results adds the following database tables:
    • TSORTATTRIBUTE
    • TSORTLOCALIZEDNAME

Catalog Syndication

The catalog syndication framework generates Java Message Service (JMS) events when you add, update, or delete catalog objects. ActiveMQ must be running when Data Population and Import/Export are executed.

Ensure that you do the following when you upgrade:
  • Upgrade to a compatible CloudOps version

Database Transaction Isolation Level

The configuration for transaction isolation level is removed from jpa-persistence.xml, and a run time check is added that returns an IllegalStateException with the following message:
 "The database transaction isolation must be READ_COMMITTED" if an incorrect isolation level is detected.
Ensure that you do the following when you upgrade:
  • Configure all databases with a transaction level of READ_COMMITTED. By default, CloudOps configures databases correctly. However, manually created databases might have incorrect transaction levels.

XA Transaction Manager

Catalog Syndication uses the Atomokos Transactions Essentials JTA/XA transaction manager to ensure consistency between catalog database changes and corresponding JMS events. This involves the following updates:
  • Adding new XA JNDI resources to Tomcat context.xml files
  • Adding new parameters to Data Population, Import/Export and Data Sync CLI configuration files
  • Updating Spring configuration to reference the XA data sources
Ensure that you do the following when you upgrade:
  • Update any manually created configuration files

    CloudOps updates all necessary configuration changes automatically.

Bug Fixes

Core Commerce

  • Resolved the issue where the tax calculation cache was not being used correctly during checkout, resulting in unnecessary tax calculation calls. This fix improves performance during checkout.
  • Resolved the issue where the Drools classloader used for promotion evaluations was not initialized correctly, resulting in ClassNotFound errors when attempting to extend promotions functionality in Elastic Path.
  • Resolved the issue where a large number of unnecessary database calls were being made to set transaction isolation level to READ_COMMITTE.
  • Resolved the following issue:

    Both products and SKUs have an enable date and disable date. For single-SKU products, the SKU enable or disable dates are invisible in Commerce Manager and must be ignored by all validations. The implementation included these dates when determining if you can add a single-SKU product to cart, which resulted in some edge-case bugs.

Cortex

  • Resolved the issue where an anonymous customer without an email address gets the Coupon is not valid error when applying a valid limited use coupon. The new and appropriate error message is Email address is required for <coupon-code> coupon, where the <coupon-code> code is the coupon that the customer enters.
  • Resolved an issue to log all NullPointerExceptions in Cortex logs.

Commerce Manger

  • Resolved multiple issue with user interface styling, labels, and icons.

Documentation Changes