Elastic Path 7.5.x Release Notes
Learn about changes to Elastic Path Commerce for this release and any subsequent patch releases. Fixes since the release are summarized in the changelog.
Changelog
The changelog contains the list of fixes and improvements made to Elastic Path Commerce 7.5 since its release date. To learn how to consume the updates, see Consuming Support Fixes.
- 743cdf60: Corrected invalid JMS connection pool attribute names in
context.xml
. (4-Nov-2022) - 5a7caa7b: Fixed primary key data type on
TOUTBOXMESSAGE
table to prevent overflow. (4-Nov-2022) - 27a5aeed: Replaced
libsass-maven-plugin
to resolve build errors on Mac M1 machines. (25-Oct-2022) - d715867c: Upgraded
commons-text
from version 1.9 to 1.10 to address CVE-2022-42889. (24-Oct-2022) - 9a176189: Modified Commerce Manager product and category display name localization so that only intentionally specified values are displayed and saved. (7-Oct-2022)
- 440988ac: Prevent locking of disposed Commerce Manager sessions. (6-Oct-2022)
- 8e4042fc: Improvements to Selenium test suite run time. (27-Sep-2022)
- b4034702: Fixed issue with Cortex showing incorrect pagination results when retrieving recommendations. (13-Sep-2022)
- 95ab1be9: Separated indexing pipelines by type to ensure that long queues in one pipeline doesn't delay indexing in another. (12-Sep-2022)
- 8be3667e: Build stability improvements. (8-Sep-2022)
- 25e3b088: Allow business users to add "not sold separately" products as associations. (30-Aug-2022)
- bdaab935: When importing product associations, if an matching product association was hidden or "not sold separately", a new association would be created instead of updating the existing association. (25-Aug-2022)
- 8803e0e3: Disabled an intermittently failing Selenium test. (24-Aug-2022)
- c5d08abd: Disabled an intermittently failing Selenium test. (24-Aug-2022)
- 559c3c41: Refactored most logging calls from using Log4j2 classes to SLF4j classes to allow these log messages to appear properly in Cortex (which uses Logback for logging). (18-Aug-2022)
- 5558ad04: Improved thread safety around promotion rule compilation. (16-Aug-2022)
- 60c0953c: Use embedded web server to reliably serve test mail attachment for Cucumber
emailFileAttachments.feature
. (7-Aug-2022) - 83f8c34e: Fixed an issue where service logs were not being written to the correct location. They are now always written to
[user.home]/ep/logs
. (2-Aug-2022) - 367427bf: Modified the coupon service to skip updating coupon usage values for unlimited use coupons to avoid concurrency issues under high load with unlimited public coupons. (25-Jul-2022)
- f69861ec: Upgraded JDBC driver to
ojdbc8-19.9.0.0
for Oracle 19. (4-Jul-2022) - 4f69de3f: Fixed search indexing to allow each index to commit as soon as it is complete instead of waiting for all indexes to complete. (4-May-2022)
- c0690230: Fix for potential
NullPointerException
while Cortex is validating attribute value data type compliance. (26-Apr-2022) - 530daa3b: Upgraded Log4j 1.2.17 to Log4j 2.17.1. (26-Apr-2022)
- 3f41e7dc: Improved the reliability of the
AbstractPageObject.rightClick
method used by Selenium tests. (20-Apr-2022) - 9b8ff4e0: Extended the expiry date for Commerce Manager test users. (12-Apr-2022)
- 42a8fc04: Fixed an issue with
AbstractPageObject
where it would miss a button’s state change, causing test instability. (1-Mar-2022) - 804beca4: Fix for failing email file attachments Cucumber test due to change in
place-hold.it
URL. (24-Feb-2022) - 3b2e0159: Fixed an issue where unrelated items were returned when searching for SKUs by SKU code in Commerce Manager. (19-Jan-2022)
- 0890c1b5: Fixed an issue where the Commerce Manager would show duplicated Administration sections. (18-Jan-2022)
- 1be5c647: Fixed issue in cli applications where unconsumed output on
System.err
could cause the application to hang. (14-Jan-2022) - 0130e134: Fixed issue where
cm-ruleset/checkstyle-cmclient-suppressions.xml
could not be found. (14-Jan-2022) - 8a371e00: Upgraded Tomcat to version 9.0.50. (14-Dec-2021)
- 27339f2b: Improved Selenium test reliability for User Role lists in Commerce Manager. (Nov 2, 2021)
- 27d60cf0: Upgraded xstream dependency to version 1.4.11.1. (#4215) (Oct 27, 2021)
- ce09a13a: Updated OpenJPA dependency from version 2.4.0-ep2.1 to version 2.4.0-ep2.3. Performance optimizations to avoid order by clauses when unnecessary and avoid queries that are known to return zero results. (Oct 5, 2021)
- 1ab00517: Build stability improvements. (Oct 4, 2021)
- 2c98446d: Added support for a Maven option to define how many times to rerun failing tests. (Oct 3, 2021)
- 1b3cd698: Build stability improvements. (Sep 29, 2021)
- a8fde6dc: When promotion caches are empty, multiple threads can fall through the cache simultaneously, leading to an out-of-memory situation. (Sep 15, 2021)
- 6d061d0b: Fixed an issue where Limited Use Coupons are automatically added to new orders. (Sep 12, 2021)
- d5d6b2c0: Build stability improvements. (Sep 13, 2021)
- e2ee5c01: Build stability improvements. (Sep 14, 2021)
- a368119b: Fixed offer lookup form returning products that have a future start date. (Jul 9, 2021)
- e36194be: Improved Catalog Syndication test coverage. (Jul 8, 2021)
- 49d0419c: Improved Maven property placeholders in
pom.xml
files. (Jul 7, 2021) - e5385eb6: Fixed issues with the
_scrollToTableItemWithText
function in theep-test-support.js
file that caused intermittent Cucumber test failures. (Jul 6, 2021) - 3805f2ec: Backported the
mvnmin.xml
file to maintenance releases. (Jun 22, 2021) - 1573b5e7: Fixed the error when viewing failed orders. (Jun 18, 2021)
- a089392c: Improved catalog projection clean-up performance. (Jun 15, 2021)
- c7bf7f3e: Removed customer Solr index. (May 28, 2021)
- bbee1c69: Allow groovy-maven artifacts to be downloaded from Maven central and removed duplicate versions. (May 19, 2021)
- c87856c0: Updated
maven.springframework.org
with anhttps
protocol. (May 11, 2021) - 2c21bdb6: Updated
CustomerRepository
calls to enable caching values. (Apr 15, 2021) - b74293f3: Updated the default batch size for the
TINDEXNOTIFY
table as the search primary tried to fetch all data from the table. TheTINDEXNOTIFY
table contains millions of records and was causing resource issues. (Apr 15, 2021) - c93dbed8: Removed tests that are not needed. (Apr 12, 2021)
- 17566d21: Updated the
SkuOption
instance to be detached if not null. (Mar 30, 2021) - 3d584041: Removed the exception for
IndexBuildStatusUpdater
from the error log to prevent it from dying. (Mar 31, 2021) - 3bb1dcbd: Updated product name search with special characters in Commerce Manager. (Mar 29, 2021)
- 120e27f6: Fixed CSV Import and Change Set issues. (Mar 26, 2021)
- 9d9b9913: Improved
LifecycleEventFilter
to further reduce events and ensure that different entity classes with the same guid are not treated as duplicates. (Mar 25, 2021) - f5fd0c1e: Implemented proper initialization of
TaxOperationResolvers
in theElasticPathTaxProviderPluginImpl
file. (Mar 22, 2021) - 4abbbc62: Commerce Manager now displays orders in the
FAILED
state. These orders were previously hidden. (11-Mar-2021) - a0c94bf4: Replaced XA with Outbox pattern. (1-Mar-2021)
- 9dcfcaa5: Fixed intermittent failures in the Fit tests (Framework for Integrated Test). (26-Feb-2021)
- 592ce157: Fixed deadlocks in the Cortex server instances that occur under very high load or when there is a large number of SKU options and values. The fix detaches the caching instance of
SKUOptionValue
from its state manager.(23-Feb-2021) - ca50e8d6: Improved the consistency of validation rules and made it possible to override them. (2-Feb-2021)
- 2fad4100: Consolidated the version and definition of
cargo-maven2-plugin
. (2-Feb-2021) - 666f7d4a: Fixed an issue where editing the default shipping address causes it to become the selected shipping address on all active shopping carts. (27-Jan-2021)
- 7fe1d9f7: Fixed an issue where Catalog Syndication does not update the values in existing Projections using the import/export tools. The fix includes adding missing domain events and preventing unnecessary events from being emitted. (27-Jan-2021)
- 79707c21: Fixed an issue where adding a new item to a dynamic bundle while that bundle is saved in a cart causes some or all of the bundled items to be removed from the cart. (27-Jan-2021)
- 40fed05b: Fixed a failing catalog integration test. (8-Jan-2021)
- 0c231eb1: Fixed an issue where Catalog Projection event messages were sent to the wrong queue. The messages are now sent to the
jms:topic:VirtualTopic.ep.catalog
queue, which is configured inCOMMERCE/SYSTEM/MESSAGING/CATALOG/channelUri
. (17-Dec-2020) - c7c11b4b: Fixed an issue where products were not re-indexed in search after changing category assignments. (3-Dec-2020)
- e3e2d862: Fixed an issue where the offer lookup fails when the
productByUidCache
andproductUidByGuidCache
are out of sync due to cache expiries. (10-Nov-2020) - a2742203: Improved the performance of customer search-master indexing. (9-Nov-2020)
- 0a6a1021: Fixed an issue where prices are missing from the storefront for some customers due to a thread-safety issue in
LogicalTreeBuilder
. (3-Nov-2020) - 561f72df: Improved performance by fixing multiple identical
AttributeImpl
queries inSubmitOrder
. (26-Oct-2020) - 4617890c: Improved cart performance by removing unnecessary cart re-pricing calls. (16-Sep-2020)
- 81b2b33d: Enabled caching for the
COMMERCE/SYSTEM/API/enableTrustedTraits
setting. (1-Sep-2020) - 606edb90: Improved the start-up time for Cortex when there are many blueprint bundles. (28-Aug-2020)
- 3ee17b4e: Fixed some integration tests that fail intermittently when run through Jenkins. The fix disables the OpenJPA data and query caches for all XA-dependent applications and tools, such as the integration server, import-export, and data synchronization tools. This change increases reliability at the expense of a slight performance loss. (18-Aug-2020)
- f9bfb092: Fixed a
ReportingSQLException
that occurs when the CSV import failure records do not fit into theTIMPORTFAULT
table. Increased theARGS
field size so that the failures could be reliably recorded. (6-Aug-2020) - c1646d83: Fixed issues with Object Auditing when XA is enabled. The auditing functionality, which populates the
TDATACHANGED
table whenever database changes are detected, stopped working when XA functionality was added in Elastic Path Commerce 7.5.1. (4-Aug-2020) - 906b55d1: Fixed intermittent failures in the Email tests. Added mailbox cleanup before running the tests. (30-Jul-2020)
- 3133f43d: Database transaction timeouts can now be configured differently for each application. The default
jta.properties
files are replaced with a singletransactions.properties
file. Within each webapp, projects can now add asrc/main/resources/jta.properties
file that overrides the XA transaction properties for that application. For more information about the list of all properties that can be configured, see Atomikos JTA Properties. (29-Jul-2020) - 80052c99: Fixed multiple data synchronization issues. For details, see the commit message. (28-Jul-2020)
- e693762b: Fixed a JUnit Catalog integration test failure. Constrained the heap size of each
itests
fork to 500 MB. (28-Jul-2020) - 31cec024: Fixed a JUnit Catalog integration test failure. Changed the entity lifecycle event listener and added a rule to control camel contexts start and stop programmatically. (27-Jul-2020)
- 688f24a4: Fixed an issue where the store visible value is inverted. Updated the Commerce Manager CSV import for products that treated the
store visible
column value as astore hidden
flag. (23-Jul-2020) - 6c9f127a: Fixed an issue in Commerce Manager where, when a CSV import fails, the error messages appear briefly and then close automatically without giving the user the opportunity to read the error. (22-Jul-2020)
- 8c7410b1: Removed the linked categories that are marked as excluded from navigation results. (16-Jun-2020)
- 0aad7671: Improved performance for shopping cart promotions where a store has many expired promotions. The search server does not spend time compiling promotions that have expired. (11-Jun-2020)
- a2caf183: Improved the reliability of the Cortex health check. (28-May-2020)
- a8407a95: Fixed an intermittent Selenium test failure that occurs when opening the Product Editor. Updated the
selectItemInCenterPaneFirstPageByCell()
method. (25-May-2020) - a285a1c1: Commerce Manager now displays decimal places in the shipment summary details. This issue occurs when using Oracle as the data store. (25-May-2020)
- a97d3735: Fixed the intermittent
ActiveMqVirtualTopicConsumptionITest
test failure. (25-May-2020) - 651aff49: Fixed an intermittent Selenium test failure that occurs when launching the Customer Service Panel. Created a thread-safe mechanism to protect the localization of enumerations. (29-Apr-2020)
- d7a51acd: Fixed a Data Sync Tool webapp issue where the webapp may miss messages. A misconfigured bean definition was causing changeset publish event messages to be read from a JMS topic instead of a queue. (27-Apr-2020)
- 9909a39f: Fixed intermittent failures with the promotion Cucumber test. Added a new method
isPromotionExists()
and updatedverifyPromotions()
. (24-Apr-2020) - 375412a5: Fixed an issue where search-master indexing did not recover after loss of network/db connection. (20-Mar-2020)
- f61c34ef: Fixed a
NullPointerException
that can occur in Cortex when sorting on localized attributes. AddedLocaleUtils.getCommerceLocalCode
to ensure valid codes. (17-Mar-2020) - 0099d8ab: Added missing sections to the Orders API documentation. (13-Mar-2020)
- ba658d11: Improved the Java Persistence Query Language (JPQL)
IN
query performance. For details, see the commit message. (27-Feb-2020) - 5d1f16da: Improved the stability and performance of jobs, such as the Catalog Syndication Projection job. Added the
ep-core-caching
module to the batch server. (5-Feb-2020) - c6a53650: Updated the Maven Central URL to secured HTTPS version. (4-Feb-2020)
- 119aabef: Implemented eager loading of SKU options and values using Ehcache. (21-Jan-2020)
- 6794ccb4: Fixed an issue where automation tests fail because of expired data policies. Extended the expiration date of default data policies. (10-Jan-2020)
- 80c85f27: Fixed a database communication error. Set
testWhileIdle="true"
in thecontext.xml
file. (20-Dec-2019) - d4671c9d: Separated the filtering properties used by development teams from those used by operation teams. (11-Dec-2019)
- 0e87a0a9: Enabled the testing of idle connections for the Search, Integration, and Commerce Manager servers. (12-Nov-2019)
- 1e20b8c7: Eliminated an unnecessary delay in refreshing the cache for promotion rules. (23-Oct-2019)
- 60205ead: Fixed an issue with completing an exchange in Commerce Manager using Cybersource. (16-Oct-2019)
- b69a313f: Fixed a failure to generate the Customer Personal Data report when the report includes the Data point [ORDER_PAYMENT_CARD_HOLDER_NAME]. (15-Oct-2019)
- e3957273: Fixed a
NullPointerException
that occurs when you create a global product attribute and then edit product types for a category. (25-Sep-2019) - 58680cef: Fixed a incorrect invoice price on the Commerce Manager order details page. (16-Sep-2019)
- 5458e1d8: Improved the performance of fetching the promotion rule set. (30-Aug-2019)
- 6bc55db1: Fixed a stuck thread that occurred when deleting a coupon. (13-Aug-2019)
- b789673b: Fixed a null
parentItemUid
that occurred when adding a child item to a cart. UsedShoppingItemService
to support faster and more logical handling of shopping items as well as dynamic bundle accelerator. (23-Jul-2019) - 789491eb: Fixed a JUnit Catalog integration test failure. Changed the entity lifecycle event listener and added a rule to control camel contexts start and stop programmatically. (11-Jul-2019)
- efd3f963: Synchronized the Glassfish jaxb version in the
pom.xml
files for Commerce and Cortex API. (4-Jul-2019)
note
The following commits are included in the 7.5.1 release commit. If you update to this release, you get these changes automatically.
- 421b915a: Added test data for the 7.4 to 7.5 upgrade. (7-May-2019)
- 0c0f5824: Fixed more intermittent test failures. (6-May-2019)
- 8e69388f: Fixed intermittent test failures. (6-May-2019)
- a3211523: Fixed a database upgrade issue when updating from 7.4 to 7.5. (6-May-2019)
- fa19cc63: Fixed an issue where nested shopping items could not have their
dependentlineitems
deleted. (6-May-2019) - 265e49b7: Fixed an issue where applying a coupon to shipping costs could result in a negative shipping value. After the fix, if the coupon value is greater than the shipping cost, the cost is treated as zero. (26-Apr-2019)
Changelog Announcements
Replace XA with Outbox pattern
In Elastic Path Commerce 7.5.1, XA transaction support was added. This was to ensure the publishing of domain event messages if only the transactions containing these database updates were committed to the database. This guarantee is essential to ensure that Catalog Syndication projections can be kept up-to-date.
This technology added significant complexity and boilerplate code into the Elastic Path Commerce framework. To reduce this complexity, we made the decision to replace XA with the Transactional Outbox pattern. This pattern requires the platform to insert a record into an outbox table in the same transaction as the catalog update. A separate job later reads the outbox records and relays them as the appropriate domain event messages.
The commit includes the following changes:
- Removes all library dependencies on Atomikos.
- Removes
ep-jta
module. - Removes
XaTransactionTestSupport
from all integration tests. - Removes support for
JVM
parameter-Dspring.profiles.active=non-xa
. - Removes all XA configuration from each webapp’s
context.xml
files - includingepjndi-xa
. - Adds
TOUTBOXMESSAGE
table to the database. - Adds
Relay Outbox Messages
Quartz job in Batch Server. - Adds support for
JVM
parameter-Dspring.profiles.active=disable-domain-events
.
Removed Customer Solr index
Elastic Path Commerce uses Solr for fast lookup of records based on advanced search criteria. This includes "DisMax" searches which return relevance-sorted results based on simple search criteria. For example, the Cortex keyword searches use the Product Solr index to find products and SKUs based on a keyword search.
The customer Solr index was only used by Commerce Manager, when searching for customers by specific fields, such as name, address, or phone number. These types of searches can be done just as quickly using SQL queries against indexed database fields.
Due to the fact that customer records are transactional, meaning that the number of records will grow over time as more users interact with the store. This can cause issues due to the size of the Solr index, or if the customer index ever needs to be rebuilt from scratch, which can be very time consuming.
For these reasons, we made the decision to remove the customer Solr index, and re-implement all Commerce Manager search functions as SQL queries. This functionality is seen in the new CustomerCriterionImpl
and CustomerSearchCriteria
classes in the source.
Upgraded to Log4j 2.x
Log4j 1.2 is an end-of-life product with multiple security vulnerabilities. To address this, we have upgraded to Log4j 2.17.1. This is a major upgrade that could impact your customizations.
While consuming this patch, make sure you follow the Log4j 1.x to 2.x upgrade notes.
7.5.1
Released: June 21, 2019
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:
- The standalone demo package in the
extensions/packager/standalone-demo/
module
note
Elastic Path recommends Elastic Path CloudOps to deploy demo and POC (Proof Of Concept) environments in AWS or Azure.
Removed Features
The following feature is removed in this release:
- Source code for the
devops/pusher-package/
module
note
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 | Locations | Git branch or file name |
---|---|---|---|
Elastic Path CloudOps for AWS (Amazon Web Service) | CloudOps for AWS compatibility matrix | code.elasticpath.com | release/3.N.x where N is the minor version number |
Elastic Path CloudOps for Azure | 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 toformat=standardlinks,zoom.nodatalinks
to make the Cortex API responses smaller and more readableNote: This settings does not change the default functionality 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 totrue
New Cortex Resources
Navigation
offersearches.sort-attribute-selector
- Provides the ability to select the sort order of navigation results returned inoffersearches.offer-search-result
Offer Search
offersearches.sort-attribute-selector
- Provides the ability to select the sort order of offer search results returned inoffersearches.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 projectionTCATALOGHISTORY
: 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 upgrade to a compatible CloudOps version when you upgrade.
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 PathResolved the issue where a large number of unnecessary database calls were being made to set transaction isolation level to
READ_COMMITTE
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 entersResolved an issue to log all
NullPointerExceptions
in Cortex logs
Commerce Manger
- Resolved multiple issue with user interface styling, labels, and icons
7.5.0
Released: April 24, 2019
Release Highlights
Featured Products
Featured products enable merchandisers to promote products on a category page by highlighting new or trending products in a category. Merchandisers can set the order in which the products appear in the category page by changing the settings in the featured products section in Elastic Path Commerce Manager.
Faceted Navigation
Faceted navigation enables shoppers to refine products on the category pages using the facet values based on the product attributes, such as price ranges, length, height, or other attributes. For example, in the men’s shirts category page, a shopper can view only the blue shirts in small size by selecting the facet values Blue, in Color facet and Small in Size facet. For more information about selecting facet values, see the Multiple Facet Selection section.
Facets in the Storefront
With the facets and facet values in the storefront, shoppers can refine products in a page to view the exact items matching the buying criteria.
Offer and Batch Offer Lookup
With offer lookup, you can look for a specific offer by the offer code. With batch offer lookup, you can retrieve multiple offers in one query using multiple offer codes.
Localized Attribute Names
You can now localize the customer, category, product, and SKU attribute names.
Automatic Dependent Items
The dependent item product association supports defining items that are automatically added to the cart when the related item is added to the cart.
Data Sync Webapp
The Data Sync Webapp enables immediate publication of change sets from an Elastic Path author environment to live environments.
Bulk Order and Quick Order
With the bulk order form, shoppers can place an order without navigating to the product details pages and can add multiple quantities of a product to the cart. In a B2B commerce site where shoppers purchase in bulk, shoppers can add SKU codes and the quantity in a text field for multiple items and complete the purchase with single add to cart action.
With the quick order feature, B2B shoppers can purchase different products without visiting every product page by reordering the products from previous purchases. Shoppers can reorder individual line item or complete order from an order that exists in the order history without visiting various product pages in the order again.
Large Cart Performance
Retrieval of carts with a large number of items is significantly faster.
Format Query Parameter
Added a new query parameter, format=zoom.nodatalinks
, to reduce the size of responses in a zoom query. This query parameter returns only the entity and the action links in the zoomed resources. An action link accepts POST
requests, such as, addtodefaultcartaction
.
Elastic Path Commerce Manager User Interface Update
A new Elastic Path Commerce Manager theme is introduced by adding RWT(RAP Widget Toolkit)/RAP(Remote Application Platform) user interface styling and labels. The icons in the older Elastic Path Commerce Manger interface is updated with new icons to match the theme.
Announcements and Notices
Removed Features
Support for the following features is discontinued in this release:
- Microsoft SQL Server - Elastic Path CloudOps uses Amazon Aurora Relational Database Service and Azure database for MySQL. A customer can also use Oracle if the deployments are managed by the customer
- Deployment using bash scripts in the
devops/pusher-package/
module - Elastic Path recommends using Docker and Kubernetes functionality from Elastic Path CloudOps for custom deployments - Oracle JVM(Java Virtual Machine) - Oracle has discontinued public security updates for Java 8. Elastic Path development and deployments now use Zulu JDK
System Requirements and Compatibility
Elastic Path Commerce 7.5.0
is compatible with the following Elastic Path releases:
Elastic Path Component | Versions | Locations | Git branch or file name |
---|---|---|---|
Elastic Path CloudOps for AWS(Amazon Web Service) | CloudOps for AWS compatibility matrix | code.elasticpath.com | release/3.N.x where N is the minor version number |
Elastic Path CloudOps for Azure | code.elasticpath.com | release/1.N.x where N is the minor version number | |
Elastic Path Commerce Demo Package | 7.5.0 | Support Portal | EP-Commerce-Demo-7.5.0.zip |
Elastic Path Commerce for Adobe | 1.7 | Support Portal | Internal release available upon request |
New in This Release
New Cortex Resources
Navigation
offersearches.offer-search-result
- Represents an offer in the navigation returned by the offersearches.offer-search-result resource. The result consists of a list of offersoffersearchresult
- Returns offers as a result for a navigation queryoffersearches.featured-offers
- Represents an offer in the navigation returned by theoffersearches.featured-offers
resource. The result consists of a list of offers
Lookups
offers.offer-lookup-form
- Returns an offer for the query submitted usingoffers.offer-lookup-form
offers.batch-offers-lookup-form
- Returns a list of offers that are returned for the query submitted usingoffers.batch-offers-lookup-form
Bulk add to cart
carts.add-items-to-cart-form
- Provides support for bulk order and quick order. For more information, see the quick order and bulk order sections.
Core Commerce
- Removed the
COMMERCE/SYSTEM/userIdMode
system setting. The user ID is now an identifier that is unique within a store. Anonymous customers get a random generateduser_id
and have no email address. The placeholder email addresspublic@ep-cortex.com
is removed and CP_EMAIL is now an optional attribute
Cortex
- The error message key
profile.email.already.exists
no longer exists. The error message keyprofile.userid.already.exists
is returned if an existing user ID is used to create a user account
Upgrade Notes
The upgrading Elastic Path guide provides general instructions on upgrading Elastic Path projects. The upgrade instructions specific to the 7.5 release are listed in the following sections:
New Java 8 Distribution
Elastic Path development and CloudOps deployments are now based on Zulu Open JDK(Java Development Kit). When upgrading, switch all developer environments to use Zulu JDK.
Data Sync Webapp
The Data Sync Webapp provides event-driven publication of change sets from an Elastic Path author environment to a live environment. The change set publication is initiated by the CHANGE_SET_PUBLISHED
event message.
Elastic Path CloudOps products now deploy the Data Sync Webapp instead of deploying the command line Data Sync Tool. For more information, see the Data Sync Webapp section.
Database Changes
The release includes database changes that are incompatible with zero-downtime deployments. During an upgrade the following database migrations take place:
- User ID Changes
- All anonymous customers in the system with the
userIdMode=1
setting are updated to have the GUID of the customer as the new user ID - The
CP_EMAIL
attribute for a customer is deleted if the value of the attribute ispublic@ep-cortex.com
- All anonymous customers in the system with the
- Localized Attribute Changes
- The values from the
TATTRIBUTE.NAME
column are copied to theTLOCALIZEDPROPERTIES
table, and theTATTRIBUTE.NAME
column is removed
- The values from the
- Cart Performance Changes
- The
CHILD_ITEM_CART_UID
andITEM_TYPE
columns are added to theTCARTITEM
table and populated with values
- The
Components and Security Upgrades
Library | Old version | New version |
---|---|---|
Java | Oracle 8u144 | Zulu 8u202 |
Jackson | 2.9.6 | 2.9.8 |
Apache ActiveMQ | 5.11.1 | 5.15.8 |
Spring Framework | 4.3.16 | 4.3.19 |
Spring Framework Security OAuth2 | 2.3.3 | 2.3.5 |
Apache POI | 3.0.1 | 4.0.1 |
Apache Batik | 1.6.0. v201011041432 | 1.11 |
Hibernate | 5.2.4 | 5.4.3 |
Tomcat | 9.0.10 | 9.0.16 |
OWASP(Open Web Application Security Project) ESAPI(Enterprise Security API) | 2.0.1 | 2.1.0.1 |
Glassfish jaxb codemodel | 2.3.0 | 2.3.2 |
Apache Commons-lang3 | 3.8 | 3.8.1 |
Groovy http-builder | 0.5.2 | 0.7.1 |
Javassist | 3.23.1-GA | 3.24.1-GA |
Json Web Token | 0.10.5 | 0.10.6 |
Jmock | 2.8.4 | 2.9.0 |
Mockito | 2.22.0 | 2.25.0 |
Apache Camel | 2.21.1 | 2.23.1 |
Spring Framework Security | 4.2.6 Release | 4.2.11 Release |
OSGi(Open Service Gateway Initiative) Resource Locator | 1.0.2 | 1.0.3 |
RxJava | 2.2.2 | 2.2.7 |
Bug Fixes
Core Commerce
- Resolved the issue with the response returned when a shopper accesses another shoppers address. The response returned is
403 Forbidden
instead of404 Not Found
- Resolved an issue with the form resources, such as add-to-cart-form, to include a
Cache-Control:private
,no-transform
,max-age=600 header
in all get requests. The forms are cached on the client side, which reduces the network traffic
Cortex
- Resolved the issue of excessive log messages for authentication failures on
Link
andAdvise
operations by lowering the log level fromWARN
toDEBUG
as the operations are passive - Resolved a bug to enable linking a legacy resource to a Helix Link Point resource