Elastic Path 7.4.0 Release Notes
Elastic Path 7.4.0 Release Notes
Release highlights
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 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.
tab in Commerce Manager, merchandisers can set the product
attributes in the store catalog as facetable in the storefront. In the
- 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
- Legacy Cortex programming
model.
For more information, see Dispatcher Deprecation Notice.
- diskPersistent property in the default cache.
For more information, see Resolving Ehcache diskPersistent Error section.
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.
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
- Enabled caching of static resources with the following
configuration:
- 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
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
- Enabled the Cortex-Cucumber test suits to be used from other modules. For more information, see Testing Commerce Manager Functionality and Extending System Tests in Cortex.
Third-Party Library Changes and Upgrades
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
- 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.