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

This version of Elastic Path Commerce is no longer supported or maintained. To upgrade to the latest version, contact your Elastic Path representative.

Elastic Path 7.4.0 Release Notes

Elastic Path 7.4.0 Release Notes

Release highlights

Faceted Offer Search

Faceted offer search enables shoppers to refine the search results using the facet values based on the product attributes, such as category, price ranges, length, height, or other attributes, such as color or brand. For example, a shopper can view only the blue shirts in small size from all brands by selecting small in size and blue in color facets. For more information about selecting facet values, see Multiple Facet Selection section.

  • Commerce Manager: With the Configuration > Stores > Facet Configuration tab in Commerce Manager, merchandisers can set the product attributes in the store catalog as facetable in the storefront. In the Facet Configuration tab:
    • Facet names are set to facet or range facet.
    • Facet ranges are defined as applicable. For example, price ranges and other numerical ranges.
    • Facet display name is used to assign a different facet display name and the locale for the facet in Cortex API.
  • Cortex API: With the offer search Cortex API call, similar SKUs can be retrieved as a single offer, with the constituent SKUs for bundles offers. The offer search result consists of offers and each offer in the result consists of:
    • A unique offer code to identify the offer.
    • Price ranges for all SKUs.
    • Offer attributes.
    • Availability of SKUs.
    • Offer constituents if the offer is a bundle.

    Developers can access the search facets in a Cortex API call to improve the shopper search experience at any customer touch point.

  • Storefront: With the facets and facet values in the storefront, the shoppers refine the search results to view the exact item matching the buying criteria. For more information, see the Faceted Search Workflow section.

Source Code Delivery

For Elastic Path Commerce 7.4 or later versions, the source code is delivered on code.elasticpath.com. For more information about the source code distribution, see the Starting Construction guide.

Announcements and Notices

Deprecated Features

Removed Features

  • Apache Tomcat 7.

System Requirements and Compatibility

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

Elastic Path component Version Location Git branch or file name
Elastic Path CloudOps for AWS 3.1.x code.elasticpath.com release/3.1.x
Elastic Path Commerce Demo Package 7.4.0 support.elasticpath.com EP-Commerce-Demo-7.5.0.zip
Elastic Path Commerce for Adobe 1.7 http://support.elasticpath.com Internal release available upon request.

New in This Release

New Cortex resources for Offers and Faceted Search

  • Added new Cortex resources for offers and faceted search.

    Table 1. Offer and Facet Resources
    Category API name Description
    offer search searches.offer-search-form Provide the search form to query offers.
    searches.offer-search-result Returns offers as a result for a search query.
    faceted search searches.facets Provides the list of facets that are returned for the query submitted using searches.offer-search-form.
    searches.facet Represents a single facet in the list provided by the searches.facets resource.
    searches.facet-selector Provides a selector for each facet to select the facet values within the facet to filter search results. This resource links from the searches.facet resource.
    searches.facet-selector-choice Specifies whether the facet value is selected. The search result is refined for the selected facet values. This resource links from the searches.facet-selector resource.
    searches.facet-value Provides the facet value information. This resources links from searches.facet-selector-choice .
    /offers Offers.offer Represents an offer in the offers search result returned by the searches.offer-search-result resource. The result consists of a list of offers.
    Offers.code-for-offer Provides the unique code to identify the offer and inks from the offers.offer resource.
    Offers.offer-items Returns all items corresponding to an offer and links from the offers.offer resource.
    Offers.offer-components Provides the components of an offer if the offer is a bundle and links from the offers.offer resource.
    Offerdefinitions.offer-definition Provides information about an offer and links from the offers.offer resource.
    availabilities.availability-for-offer Provides information on an offers availability status and is a resource on the /availabilities. This resource links from the offers.offer resource.
    prices.offer-price-range Provides an offer's price range and is an offer price range resource on /prices. This resource links from the offers.offer resource.

Cortex

  • Added ETag support to Cortex to enable client caching. For more information about ETag support, see the HTTP Caching section.
  • Converted /items, /itemdefinitions, and /itemselections Cortex resources to the Helix programming model. For more information, see the Upgrade Notes.

Core Commerce

  • Upgraded Tomcat 7 to Tomcat 9.
  • Added cucumber tests defined in accelerators to run when executing Cortex system tests.
  • Added new caching of cart and catalog rule bases to optimize large carts retrieval.
  • Added a new shopping cart validator ShoppingItemNotAutoSelectedValidatorImpl to prevent deletion auto-selected bundle constituents that are added as line items. For more information about the validator, see Add-to-cart and purchase validation.

Commerce Manager

  • Added facet configuration tab in the store configurations.
  • Added additional parameters to PromotionRuleCreator.execute() to support creation of new rule actions in the extensions.

Upgrade Notes

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

Tomcat Upgrade Notes

Tomcat 9.0.10 upgrade supports Solr 7.2.1 and includes the latest security updates. For this upgrade, the changes made in the following tomcat configuration files are:

  • server.xml : Removed the Jasper Listener:
    <Listener className="org.apache.catalina.core.JasperListener" />
  • context.xml:
    • Enabled caching of static resources with the following configuration:
      <Resource cachingAllowed="true" cacheMaxSize="${ep.tomcat.maxcachesize}" />
      .
    • Updated the jdbc/epjndi resource to use Tomcat JDBC DataSourceFactory to fix issues with duplicate beans with the following setting:
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory
  • The Tomcat Maven plugin is upgraded to a customized version of the tomcat8-maven-plugin that is used to run Tomcat 9.

When you upgrade to Elastic Path Commerce 7.4:

  • Update the server.xml and context.xml files for any custom webapps.
  • Use tomcat8:run-war to start webapps from Maven command line.
  • Update the deployment infrastructure to use Tomcat 9 if you do not use Elastic Path CloudOps for AWS for the deployment.

Solr Upgrade Notes

Solr is upgraded to 7.2.1 to support the faceted search functionality. The solrHome directory structure is updated to support the upgrade and the corresponding changes to Solr replication configuration in CloudOps for AWS is also updated.

When you upgrade to Elastic Path Commerce 7.4 in non-CloudOps deployment:

  • Update the Solr replication configuration for the new directory structure.
  • Rebuild the indices.

CloudOps for AWS Upgrade Notes

For Elastic Path Commerce 7.4 that uses CloudOps for deployment, upgrade CloudOps to 3.1 or later versions to support:

  • Tomcat 9.0.10 upgrade
  • Solr directory structure changes

For more information, see CloudOps Compatibility Matrix.

Helix Programming Resource Conversion

The following resources are converted to the Helix programming model: The repositories associated with the resources are re-factored to return RxJava results. This re-factoring might impact the custom resources that depend on these repositories.

When you upgrade to Elastic Path Commerce 7.4:

  • Convert extension codes, if any, to the Helix programming model.
  • If you changed the permissions for the resources, modify the permission parameters to use the new fully-qualified names listed at Cortex Authorization. For example, the itemId parameter is renamed to items.item-id.
  • Do not hard-code resource link URIs in the your code. Even though the Helix conversions modified the resource link URIs, the rel: names are the same.
  • Start the Cortex webapp with the -DneedInfoEnabled=true flag to return legacy needinfo links for backward compatibility. The Structured messages are returned by the converted resources for all business state errors, validation errors, and needinfo conditions. For an InvalidBusinessStateException, Helix resources returns HTTP Status 409 Conflict instead of the Status 403 Forbidden in legacy programming model.

QA Automation

Database changes

The core-changelog.7.4.0.xml in the commerce-engine/liquibase module is updated with the changes in database for Elastic Path Commerce 7.4.0 release. The changes are:
  • Added the TFACETS table to store facet configuration information.

Third-Party Library Changes and Upgrades

For any customized version of Elastic Path Commerce 7.3 or earlier versions, ensure that the following requirements are met when you upgrade to 7.4:
Library New version Old version
Apache Tomcat 9 7
Jackson 2.9.6 2.9.5
jMock 2.8.4 2.8.1
JUnitParams 1.0.6 1.0.2
Lucene 7.2.1 4.5.1
Metrics 3.1.5 3.1.2
OSGI Resource Locator 1.0.2 1.0.1
Reflections 0.9.11 0.9.10
RxJava 2.2.2 2.1.17
Servlet 3.1.0 3.0.1
Shiro 1.3.2 1.3.0
Sisu 0.3.3 0.3.2
Solr 7.2.1 2.5.1
Zookeeper 3.4.10 NA

Bug fixes

Core Commerce

The following customer support issues are resolved in Elastic Path Commerce 7.4.0:
  • Removed timestamps from the commerce-engine/ep-query-analyzer unit test.
  • Resolved issues placing order with bundled SKUs cause by the getParent method in OrderSkuImpl.java.
  • Resolved the JPA exception that caused syncing of changes sets to live environment fail.
  • Resolved Elastic Path Commerce 7.3 unit tests failures in non Pacific timezone.
  • Resolved Elastic Path Commerce 7.3 unit tests failures when OAuth is disabled.
  • Resolved ep-core-itests failures in Elastic Path Commerce 7.3.
  • Resolved the unit test failures for ep-commerce/cortex-resources/rest-resources/carts module when built in Maven.
  • Removed the jackson-jaxrs-json-provider duplicate dependency from bill-of-materials/pom.xml path.
  • Resolved numerous blocking threads in OpenJPA.QueryImpl for heavy load.
  • Removed unnecessary database queries when checking usage of limited-use coupons.
  • Added support for HTML order shipment confirmation email and order shipment release failure email messages.

Cortex

  • Resolved the access restriction issues when a user logs in to a linked store twice.
  • Resolved the HTTP 500 error that Cortex returns when registered shopper's cart or order is accessed.
  • Added a setup parameter to enable or disable fade and blink animations in Cortex Studio when refreshing the display. Animations are disabled by default.
  • Added the max-age value that was missing in the Cortex resources when converted to Helix resources.
  • Resolved excessive number of RxComputationScheduler threads for heavy load.
  • Resolved the issue with request scope caching that is disabled if AspectJ cannot access DTD definitions on the Internet.
  • Improved error messages for duplicate resource URI rule.
  • Added support for Accept-Language header in Cortex-Studio.

Commerce Manager

  • Resolved authorization issue for back order during checkout. One dollar authorization is not performed when the product is in stock.
  • Resolved the shipping calculation issue for a cart when the sub-total changes. Shipping calculation is recalculated when the sub-total changes.
  • Updated COMMERCE/SYSTEM/SEARCH/searchHost setting in System Configuration of a store to -1. With this setting, you can set both master and slave contexts.
  • Updated import export tool configuration for stores to export all stores.