Elastic Path 7.6.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.6 since its release date. To learn how to consume the updates, see Consuming Support Fixes.
- 61f2aa76: Build stability improvements. (27-Nov-2024)
- 376d9fa5: Improved Oracle
reset-db
script to ensure that the tablespace is created automatically. (19-Jul-2024) - 68080177: Build stability improvements. (15-May-2024)
- 4d53abb7: Updated failsafe plugin to use alphabetical ordering instead of default filesystem ordering. (14-Feb-2024)
- b100c932: Reduced the amount of logging produced when running Selenium tests. (10-Jan-2024)
- 00bbd988: Added null check in
SolrQueryFactory
to avoidNullPointerException
if an expected attribute key does not exist. (9-Jan-2024) - 18cde70d: Fixed Cucumber tests that fail if test run order is changed. (13-Dec-2023)
- a5108471: Updated
individual-settings.xml
to use secure Nexus URLs. (11-Dec-2023) - b7d2988a: Fixed issues in
set-ep-versions.sh
script and Maven settings used for builds. (4-Oct-2023) - 528f2169: Fixed ep-core-tool test failures. (4-Oct-2023)
- db44d615: Standardized Cucumber test configuration across modules. (28-Sep-2023)
- 779fc10a: Removed problematic and unnecessary
ep-core-cucumber-itests
module. (20-Sep-2023) - bfbc2f44: Fixed bug in
verifyDebugMessage
method used by Cucumber tests. (29-Aug-2023) - 3a69993e: Resolved local Cortex startup warning
The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or ""
. (13-Feb-2023) - 68bca857: Fixed issue with changeset list resetting to page one when locking or publishing changesets. (7-Feb-2023)
- 6194db17: Fix for "Device is disposed" error in Commerce Manager. (30-Jan-2023)
- 34a801c0: Increased "Remove Abandoned Monitor" timeout for all services. (27-Jan-2023)
- 151ab60c: Fix for intermittent failure in "Import Data Policies with existing Data Policies" test. (26-Jan-2023)
- 4ded322d: Fixed issues with the re-population of
skuOptionsCache
which caused the cache to become ineffective after the TTL expires. (26-Jan-2023) - 5c135534: Fixed error in failed orders cleanup job that can occur if the order contains bundles. (25-Jan-2023)
- 0839161d: Fixed issue with empty facet name when assigning available facets to a store in Commerce Manager. (9-Jan-2023)
- 5a35eeb7: Addressed
api-platform
build issue on M1 MacBooks. (19-Dec-2022) - 3d999f1a: Returned default JMS max active session per connection size back to 25. (16-Dec-2022)
- 482ab825: Updated
api-platform
project's Maven version to 3.6.2. (16-Dec-2022) - d778a539: Upgraded
ehcache-openjpa
from version 0.2.0 to 0.2.0-ep1.0 to address potentialConcurrentModificationException
. (16-Dec-2022) - d91a8ac2: Fixed SonarQube linter errors in
api-platform
source. (15-Dec-2022) - 3c95015f: Fix for intermittent "Create category in existing category" selenium test failure. (15-Dec-2022)
- 48e3fdb4: Upgraded
plexus-utils
from version 2.0.4 to 3.0.24. (15-Dec-2022) - 6bfc2c0c: Fixed typo in "Modified Cortex to allow it to continue functioning normally if ActiveMQ is overloaded or offline" backport. (7-Dec-2022)
- a1e3ce07: Content root in some EPC modules was not appropriate for IntelliJ. (7-Dec-2022)
- 82d90d7f: Fixed reliability issue with
ShoppingCartServiceImplTest#testTouch
. (5-Dec-2022) - 42faec72: Refactored additional logging calls from using Log4j2 classes to SLF4j classes to allow these log messages to appear properly in Cortex (which uses Logback for logging). (28-Nov-2022)
- a4dc3fa9: Performance improvement to avoid loading a full shopping cart when updating the last-modified date. (28-Nov-2022)
- 10da8b2b: Removed leftover references to customer SOLR index. (28-Nov-2022)
- ae865829: Fixed an issue where a free item promotion triggered by a coupon was not activated. (25-Nov-2022)
- 54a25eec: Fix for search server race condition that can prevent indexes from building. (17-Nov-2022)
- f96be4c2: Changed log level in
PriceListPriceScoreDocComparator
to prevent logs from being flooded during search indexing. (15-Nov-2022) - e4cc50b4: Modified
RelayOutboxMessageBatchProcessor
to inject the producer template via Spring instead of@EndpointInject
annotation to improve reliability. (15-Nov-2022) - 0981ac99: Fixed potential
NullPointerException
that can occur when the7.5.0-decouple-customer-userid-from-email
changeset is executed. (14-Nov-2022) - d2b7ae47: Modified
EpEmailValidator
to accept empty values to be consistent with other validators. (11-Nov-2022) - bb79ab42: Fixed issues with the
7.6.0-torder-make-cart-order-guids-unique
changeset. (7-Nov-2022) - 8be525d9: Fixed primary key data type on
TOUTBOXMESSAGE
table to prevent overflow. (4-Nov-2022) - 53dd7b6b: Enabled application caching in search and integration server. (31-Oct-2022)
- 0524a583: Corrected invalid JMS connection pool attribute names in
context.xml
. (27-Oct-2022) - 98ff90e6: Improved customer and order search user interface in Commerce Manager. (26-Oct-2022)
- 62b5605f: Fixed issue where the price list drop-down on the product bundle price adjustments tab isn't populated. (26-Oct-2022)
- 5dc05c57: Upgraded
commons-text
from version 1.9 to 1.10 to address CVE-2022-42889. (24-Oct-2022) - 2397c55a: Replaced
libsass-maven-plugin
to resolve build errors on Mac M1 machines. (19-Oct-2022) - d95bcf38: Upgraded
commons-validator
from version 1.6 to 1.7. This allows Cortex to recognize recent new DNS top-level domains when validating email addresses. (19-Oct-2022) - 167b99e9: Upgraded Guava from version 24.1.1-jre to 31.1-jre. (11-Oct-2022)
- f91de8bf: Modified Commerce Manager product and category display name localization so that only intentionally specified values are displayed and saved. (6-Oct-2022)
- a00e7e88: Fixed issue where promotions that can apply to multiple cart items but are limited in number would apply the discount correctly but the
appliedPromotions
resource would show it applying to both. (5-Oct-2022) - 05023ae5: Improvement to cart line item promotion allocation to allow code to determine how much of a discount the promotion applied to each line item. (5-Oct-2022)
- aeaace77: Improvements to Selenium test suite run time. (30-Sep-2022)
- d54808ae: Removed a duplicate
ep.release.version
property in the rootpom.xml
. (29-Sep-2022) - b4a12c60: Upgraded Apache SOLR from version 7.4 to 8.11.1. (15-Sep-2022)
- 70d2253f: Upgraded Spring Core from version 4.3.25.RELEASE to 4.3.30.RELEASE. (15-Sep-2022)
- 37f40b46: Fixed issue with product not being automatically added to cart by free item promotion action. (13-Sep-2022)
- c3f48e5b: Operational Insights is a tool for validating the configuration and health of an Elastic Path Commerce environment. This patch adds an API endpoint to the Integration Server that can be used by the Operational Insights front-end. (13-Sep-2022)
- 005c053a: Updated Catalog Syndication projection builder to ensure that projection and projection history records are persisted in separate transactions to prevent deadlocks. (13-Sep-2022)
- bb77d4ed: Modified Cortex to allow it to continue functioning normally if ActiveMQ is overloaded or offline. (12-Sep-2022)
- c5f4c18d: Build stability improvements. (8-Sep-2022)
- 35825035: Upgraded Apache Shiro from version 1.3.2 to 1.8.0. (2-Sep-2022)
- 1dd30979: Separated indexing pipelines by type to ensure that long queues in one pipeline doesn't delay indexing in another. (1-Sep-2022)
- 9f90cc6e: Allow business users to add "not sold separately" products as associations. (1-Sep-2022)
- 1f40dc82: Disabled an intermittently failing Selenium test. (31-Aug-2022)
- 5e5422b5: Upgraded Jackson from version 2.12.3 to 2.12.7 to address jackson-databind security vulnerability. (31-Aug-2022)
- 47345e3b: Modified gift certificate creation process to send GIFT_CERTIFICATE_CREATED instead of processing ORDER_SHIPMENT_CREATED to reduce number of times order record is loaded from the database. (31-Aug-2022)
- 218d68e1: Disabled an intermittently failing Selenium test. (24-Aug-2022)
- 43e725e9: Upgraded Jackson from version 2.10.2 to 2.11.2 to address jackson-databind security vulnerability. (24-Aug-2022)
- 44a56a1c: Removed the Top Seller quartz job and corresponding sales count field on products. This job was only intended for use in demos, and was causing optimistic locking errors in the Data Sync Tool. (23-Aug-2022)
- c3af170b: 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. (22-Aug-2022)
- 0e39687a: Modified "I search for an order by number" Cucumber expectation to wait until all Outbox messages are consumed to resolve intermittent test failures. (22-Aug-2022)
- de64cc6c: Upgraded Spring Web from version 4.3.25.RELEASE to 4.3.30.RELEASE. (21-Aug-2022)
- c46e4ee5: Fixed issue with multiple Cortex OSGi bundles exporting the same package, leading to potential instability at startup. (19-Aug-2022)
- 34892efc: Upgraded Jackson from version 2.9.8 to 2.9.10 to address jackson-databind security vulnerability. (19-Aug-2022)
- 1e73c3ca: Increased the size of the fields used to hold catalog syndication content. (17-Aug-2022)
- e12fa182: Removed duplicate database indexes from the
TORDERADDRESS
table. (16-Aug-2022) - 782a7040: 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). (16-Aug-2022)
- 2f71674a: Use embedded web server to reliably serve test mail attachment for Cucumber
emailFileAttachments.feature
. (7-Aug-2022) - 0ad21b68: Fixed an issue where unrelated items were returned when searching for SKUs by SKU code in Commerce Manager. (29-Jul-2022)
- af7318dd: Fix merge conflict indicators in
FulfillmentPluginResources.properties
. (21-Jul-2022) - 12aa5b28: 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. (21-Jul-2022)
- fc6f1ddc: Added missing indexes to
TCARTDATA
table. (20-Jul-2022) - d132cead: Significantly improved the performance of customer, account, and order searches in Commerce Manager. Also fixes several bugs in these searches and adds support for search by billing and shipping address fields. (13-Jul-2022)
- 80c8427e: Upgraded JDBC driver to
ojdbc8-19.9.0.0
for Oracle 19. (4-Jul-2022) - db3a2293: Improved thread safety around promotion rule compilation. (26-May-2022)
- bdab68e3: Fix for intermittent issue in safeguard to prevent duplicate orders from being submitted for the same cart. (17-May-2022)
- cd4750a5: Fixed an issue where service logs were not being written to the correct location. They are now always written to
[user.home]/ep/logs
. (6-May-2022) - e4367b3a: 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)
- 496f98cf: Fix for potential
NullPointerException
while Cortex is validating attribute value data type compliance. (26-Apr-2022) - 21962fec: Improved the reliability of the
AbstractPageObject.rightClick
method used by Selenium tests. (20-Apr-2022) - 32f5e7e3: Corrected the password hash for Commerce Manager test users. (13-Apr-2022)
- 6bdcf783: Extended the expiry date for Commerce Manager test users. (5-Apr-2022)
- 35d6849d: Upgraded Log4j 1.2.17 to Log4j 2.17.1. (18-Mar-2022)
- 2073ecbd: Removed unneeded
maven-failsafe-plugin
version definition. (8-Mar-2022) - 31b87586: Fixed dependencies on test database projects. (4-Mar-2022)
- c54903b6: Corrected typo in
LICENSE.txt
. (4-Mar-2022) - 7aeb149a: Fixed an issue with
AbstractPageObject
where it would miss a button’s state change, causing test instability. (1-Mar-2022) - 9bf457b3: Improved Commerce Manager performance for catalogs with large volumes of base amounts. (1-Mar-2022)
- 193fe395: Support rerun failing tests count option. (28-Feb-2022)
- a0cb5fe0: Fixed an issue where the Commerce Manager would show duplicated Administration sections. (25-Feb-2022)
- eef1491f: Prevent multiple threads from falling through
CachingRuleServiceImpl#findChangedStoreRuleBases
simultaneously. (24-Feb-2022) - 7dc19ba5: Fix for failing email file attachments Cucumber test due to change in
place-hold.it
URL. (23-Feb-2022) - 540d08aa: Fixed issue in cli applications where unconsumed output on
System.err
could cause the application to hang. (13-Jan-2022) - 65e6d5fa: Allow base amounts to be added/edited/deleted without first adding the price list to the changeset. (29-Dec-2021)
- ec213e2b: Upgraded Tomcat to version 9.0.50. (14-Dec-2021)
- 5fa1a6e1: Upgraded Quartz and Servicemix Quartz dependencies to version 2.3.2. (10-Dec-2021)
- ee7bf267: When a promotion can apply to multiple cart line items, this fix ensures that the
appliedpromotions
resource shows the promotion for all of the applicable line items. (1-Dec-2021) - 6e453639: Fixed issue with Cortex showing incorrect pagination results when retrieving recommendations. (1-Dec-2021)
- ca8fd634: Performance fix for
ShipmentDetailsIdParameterServiceImpl
that previously retrieved each shipment in the user’s order history to determine if theshipment
resources should be accessible. (Oct 4, 2021) - 66a41a44: Improved Selenium test reliability for User Role lists in Commerce Manager. (Oct 5, 2021)
- c9391a3c: Fix for IndexBuildStatusUpdater so that threads are shut down gracefully instead of being terminated mid-process. (Sep 29, 2021)
- 028af4e2: Build stability improvements. (Sep 28, 2021)
- 85794992: Build stability improvements. (Sep 27, 2021)
- d6cbf28e: Fixed potential thundering herd issue when promotions cache is initially populated. (Sep 21, 2021)
- 91d485b0: Prevented locking of disposed Commerce Manager sessions. (Sep 20, 2021)
- 6728c528: Build stability improvements. (Sep 14, 2021)
- 5a8882c9: Updated promotion rule retrieval so that all other rules in the ruleset are not eagerly loaded. (Aug 16, 2021)
- c82db161: Reduced excess databases queries that were generated for cart and order modifiers. (Aug 9, 2021)
- 5940db13: Offer lookup no longer returns products that are outside the enabled date range. (Jul 7, 2021)
- 5413864a: Fixed issues with the
_scrollToTableItemWithText
function in theep-test-support.js
file that caused intermittent Cucumber test failures. (Jul 6, 2021) - 46d93dfd: Set the query list parameters correctly through
Query.setParameter()
. (Jun 24, 2021) - 960861d4: Backported the
mvnmin.xml
file to maintenance releases. (Jun 22, 2021) - 585dfc95: Fixed error when viewing failed orders. (Jun 18, 2021)
- a640bd1f: Improved catalog projection clean-up performance. (Jun 9, 2021)
- a84ba5c1: Change
mobee-test-data
andshared-test-data
changeset to run on every update and remove*-release-data
. (May 26, 2021) - 52d36695: Removed customer Solr index. (May 27, 2021)
- f3ffa276: Allow groovy-maven artifacts to be downloaded from Maven central and removed duplicate versions. (May 17, 2021)
- db6fa55c: Updated
maven.springframework.org
with anhttps
protocol. (May 11, 2021) - 46190a99: Implemented proper initialization of
TaxOperationResolvers
in theElasticPathTaxProviderPluginImpl
file. (Apr 19, 2021) - 74cc8a27: Fixed
CustomerRepository
method calls to enable caching values. (Apr 15, 2021) - c77097ff: Removed the skipped
OrderSearch.feature
file as it was a duplicate. (Apr 9, 2021) - 810463e9: 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 9, 2021) - 14d4d195: Updated product name search with special characters in Commerce Manager. (Apr 1, 2021)
- 2be8e37a: Fixed CSV Import and Change Set issues. (Mar 25, 2021)
- 69cb9121: Improved
LifecycleEventFilter
to further reduce events and ensure that different entity classes with the same guid are not treated as duplicates. (Mar 23, 2021) - cf7c0597: Removed the exception for
IndexBuildStatusUpdater
from the error log to prevent it from dying. (Mar 16, 2021) - ca9d5e43: Commerce Manager now displays orders in the
FAILED
state. These orders were previously hidden. (15-Mar-2021) - a3a251a4: Fixed intermittent failures in the Fit tests (Framework for Integrated Test). (26-Feb-2021)
- 1fb060f1: Replaced XA with Outbox pattern. (24-Feb-2021)
- 7637684f, 68675682: 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) - 5f5b70cc: Ensure that cart descriptor values do not remain on default cart after checkout. (8-Feb-2021)
- 07055ea0: 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)
- 7aad1837: Updated the import job to display an error when product data is not imported due to an invalid product SKU. Also improved the consistency of validation rules and made it possible to override them. (11-Jan-2021)
- 44ab5f52: Fixed a failing catalog integration test. (8-Jan-2021)
- fff8a7b7: Fixed an issue where products were not re-indexed in search after changing category assignments. (3-Dec-2020)
- a0ac5a61: Fixed an issue where prices are missing from the storefront for some customers due to a thread-safety issue in
LogicalTreeBuilder
. (26-Nov-2020) - 163c314e: 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. (23-Nov-2020)
- cfa62475: Fixed an issue where the offer lookup fails when the
productByUidCache
andproductUidByGuidCache
are not synchronized. (13-Nov-2020) - e814ee56: Improved the performance of customer search-master indexing. (6-Nov-2020)
- ae3fea5f: Improved the performance of the customer index by adding pagination to the rebuild and reducing resource requirements. (6-Nov-2020)
- a3b56492: Fixed a 500 error (duplicate entry) error that sometimes occurs when retrieving default cart after completing an order. (30-Oct-2020)
- 18d77423: Fixed an issue where Limited Use Coupons are automatically added to new orders. (27-Oct-2020)
- 9c420495: Improved performance by fixing multiple identical
AttributeImpl
queries inSubmitOrder
. (26-Oct-2020) - ee65cb1a: Improved cart performance by removing unnecessary cart re-pricing calls. (15-Oct-2020)
- 590cf5dd: Enabled caching for the
COMMERCE/SYSTEM/API/enableTrustedTraits
setting. (1-Sep-2020) - 3c875ea2: 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)
- adf3db12: 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. (17-Aug-2020) - 2642c389: 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) - 82642fbb: Fixed an issue where the Data Population tool runs out of memory when importing very large data sets. Increased the default heap size from 1.5 GB to 2 GB. The
FileFilterer
class was improved by using streams rather than reading the entire file into memory before processing. (5-Aug-2020) - 4a23bf99: Fixed intermittent failures in the Email tests. Added mailbox cleanup before running the tests. (30-Jul-2020)
- f181a3b1: 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) - 1bf56058: Fixed multiple data synchronization issues. (28-Jul-2020)
- 27c1f7c6: 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. (24-Jul-2020)
- df4c50f6: 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. (23-Jul-2020)
- 20b366c7: 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) - 8493263b: Fixed an issue where the
featuredoffers
resource was returning offers in arbitrary order instead of the order specified in Commerce Manager. (23-Jun-2020) - 6536d091: 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)
- 101caac4: Commerce Manager now displays decimal places in the shipment summary details. This issue occurs when using Oracle as the data store. (25-May-2020)
- 79d0024a: Fixed the intermittent
ActiveMqVirtualTopicConsumptionITest
test failure. (25-May-2020) - f347fcd7: Fixed an issue where navigation results using featured product sort were not respecting the defined featured product ordering. Changed the "featured" sort type for navigation results so it sorts based on featured product ordering, rather than just separating featured and non-featured products. (7-May-2020)
- 4e6e0a85: Fixed intermittent failures with the Purchases test. Removed the
skuOptionsCache
from theehcache-5-seconds.xml
file. (29-Apr-2020) - 96630de7: Fixed an issue with retrieval of SKU Options and SKU Option Values when reading products, which resulted in unnecessary database queries, increased memory consumption, and potential system instability. For more information, see Optimizing Performance. (29-Apr-2020)
- 3b55f7ac: Moved the creation of dynamic Java Persistence Query Language (JPQL) queries to a single place. (29-Apr-2020)
- c13d6281: Fixed the cache name used in the
ehcache-5-seconds.xml
file to beskuOptionsCache
. (29-Apr-2020) - b5127511: Fixed intermittent failures with the promotion Cucumber test. Added a new method
isPromotionExists()
and updatedverifyPromotions()
. (29-Apr-2020) - a95fb1ae: Fixed an issue where uninitialized Configurable items have a null value in a wishlist. This issue occurs when using Oracle. (29-Apr-2020)
- 25617135: Fixed some intermittent test failures by updating the demo data Data Policy retention period. (27-Apr-2020)
- d59bd0c7: Fixed a Data Sync Tool webapp issue where the webapp may miss messages. A misconfigured bean definition was causing changset publish event messages to be read from a JMS topic instead of a queue. (27-Apr-2020)
- 59e2b282: Improved the Order API documentation and replaced needinfo links with advisors (25-Mar-2020)
- 2d94b505: Fixed an issue where search-master indexing did not recover after loss of network/db connection. (24-Mar-2020)
- e192b9db: Fixed an issue where sub-categories marked as
not store visible
are shown when navigating to the visible parent category. The fix includes delegating to theCategoryImpl
class to determine availability. (23-Mar-2020) - bec1e604: Fixed a
NullPointerException
that can occur in Cortex when sorting on localized attributes. AddedLocaleUtils.getCommerceLocalCode
to ensure valid codes. (18-Mar-2020) - 8cd9ae62: Fixed an issue where Cortex hides Multi-SKU Pre-order Products when the remaining quantity is zero. (27-Feb-2020)
- ae366d84: 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) - d8b1aa02: Updated the Maven Central URL to secured HTTPS version. (4-Feb-2020)
- c495316c: Implemented eager loading of SKU options and values using Ehcache. (21-Jan-2020)
note
The following commits are included in the 7.6.1 release commit. If you update to this release, you get these changes automatically.
- f7563717: Added Amazon Relational Database Service (Amazon RDS) for Oracle to ep-commerce deployments. (14-Jan-2020)
- 66c5aad0: Added support for B2B buyer email in order exchange. (14-Jan-2020)
- c7bd1ae1: Added support for B2B buyer email in order return receipt. (14-Jan-2020)
- d756946d: Fixed an issue where confirmation emails were sent only to the email address of the buyer account, not to the buyer. Now, both the buyer account and the buyer get order and shipment confirmation emails. Also, both buyer and the buyer account get email notifications on return and exchange. (10-Jan-2020)
- 25422a12: Added Data Policy support for the California Consumer Privacy Act (CCPA). (9-Jan-2020)
- befa6642: Fixed an issue where automation tests fail because of expired data policies. Extended the expiration date of default data policies. (9-Jan-2020)
Changelog Announcements
Enabled Application Caching in Search Server and Integration Server
Until now, Application Caching using EhCache was only enabled for Cortex and the Import/Export tool. Now we’ve also enabled application caching for the Search Server and Integration Server. This significantly improves the performance of search indexing, asynchronous checkout operations, and Integration Server APIs.
With the application cache enabled in Search Server, the number of queries required to index the mobee
test store was reduced from ~400,000 to ~50,000.
note
This change can cause some services to return dirty reads; in other words, if a cached result is returned then it might be an out-of-date representation of the object. If certain customizations are sensitive to dirty reads, you can reference the non-caching versions by adding nonCaching
prefix to the reference in your service bean definition. For example, references to the storeService
bean can be changed to nonCachingStoreService
. You can also completely disable application caching for a service by setting the -Dnet.sf.ehcache.disabled=true
JVM parameter.
For more information, see Application Caching using EhCache.
Significantly improved the performance of customer, account, and order searches in Commerce Manager
When the customer SOLR index was removed, the way that Commerce Manager looks up customer details was refactored to lookup customer and account details in the database instead of using SOLR. However, since many of the search fields need to do case-insensitive searches and/or partial matches, database indexes were not being leveraged effectively. This lead to very slow response times when the database contains a large number of user, account, or order records. The search queries have been updated to effectively use the database indexes, even for lookups that are case-insensitive or prefix (searches for results starting with the specified value).
The tables below show the type of search that is used for each search field.
Searchable user fields:
Field | Search Type |
---|---|
Shared ID | Exact Match |
Case Insensitive Match | |
Username | Case Insensitive Match |
First Name | Case Insensitive Prefix Match |
Last Name | Case Insensitive Prefix Match |
Zip / Postal Code | Case Insensitive Match |
Phone Number | Case Insensitive Match |
Store | Exact Match |
Searchable account fields:
Field | Search Type |
---|---|
Shared ID | Exact Match |
Business Name | Case Insensitive Prefix Match |
Business Number | Case Insensitive Prefix Match |
Phone Number | Case Insensitive Match |
Fax Number | Case Insensitive Match |
Zip / Postal Code | Case Insensitive Match |
Searchable order fields:
Field | Search Type |
---|---|
Order Number | Exact Match |
User Shared ID | Case Insensitive Match |
User First Name | Case Insensitive Prefix Match |
User Last Name | Case Insensitive Prefix Match |
User Email | Case Insensitive Match |
User Phone Number | Case Insensitive Match |
Account Shared ID | Exact Match |
Account Business Name | Case Insensitive Prefix Match |
Account Business Number | Case Insensitive Prefix Match |
Account Phone Number | Case Insensitive Match |
Billing Address First Name | Case Insensitive Prefix Match |
Billing Address Last Name | Case Insensitive Prefix Match |
Billing Address Phone Number | Case Insensitive Match |
Billing Address Fax Number | Case Insensitive Match |
Billing Address Zip / Postal Code | Case Insensitive Match |
Shipping Address First Name | Case Insensitive Prefix Match |
Shipping Address Last Name | Case Insensitive Prefix Match |
Shipping Address Phone Number | Case Insensitive Match |
Shipping Address Fax Number | Case Insensitive Match |
Shipping Address Zip / Postal Code | Case Insensitive Match |
Order Status | Exact Match |
Shipment Status | Exact Match |
Store | Exact Match |
Product SKU Code | Exact Match |
RMA Code | Exact Match |
Additionally, the following bugs were fixed:
- The "Account details" fields on the order search tab now works properly (these fields were being ignored).
- The "Shipping zip / postal code" field on the order search tab was actually searching for billing zip/postal code.
- The customer search sort by username was actually sorting by shared ID.
- The progress indicator in the bottom right corner of Commerce Manager now indicates when a search is in progress.
Replace XA with Outbox pattern
XA transaction support was added to Elastic Path Commerce 7.5.1 to ensure that domain event messages are published if and only if transactions containing these database updates are 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.6.1
Released: January 15, 2020
Release Highlights
Enabled compliance for California Consumer Privacy Act
Elastic Path now supports compliance with the California Consumer Privacy Act (CCPA). With this enhancement, the seller administrator can do the following in Commerce Manager:
- Delete customers data on customer request.
- Generate customers data report on customer request.
Fixed Issues
Core Commerce
- Fixed an issue where confirmation emails were sent only to the email address of the buyer account, not to the buyer. Now, both the buyer account and the buyer get order and shipment confirmation emails. Also, both buyer and the buyer account get email notifications on return and exchange.
- Fixed an issue where automation tests failed because of expired data policies by extending the expiration date of default data policies.
Cortex
- Added missing API documentation sections for Orders API.
7.6.0
Released: November 25, 2019
Release Highlights
Multiple carts for each buyer
Buyers have the flexibility to create multiple shopping carts on their accounts. The cart names are user-defined, which means the names can represent the purpose for the cart, such as business division or function. Buyers can create and save an order within each of the multiple carts simultaneously, without the need to complete an order. For more information, see Multiple Carts.
Cortex Studio Zoom Builder
With Zoom Builder, development teams have a faster and easier way to explore the Cortex hypermedia API, build zoom expressions, and view the contents of resources. Zoom Builder offers an interactive visual representation of API resources, which accelerates understanding of Cortex API and streamlines interactions.
Cortex customer profile attributes
Dynamic attributes for shoppers are now exposed through Cortex. Attributes can be defined as internal-only, read-only, or read/write. Shoppers can update the values of read/write attributes for their own profiles.
Tag management
Tags and tag groups can now be managed by through the Commerce Manager and the Import/Export tool. After tags are defined, values can be passed to Cortex using the X-Ep-User-Traits
header, which can be used to determine product availability, pricing, and promotions.
Increase transaction throughput with horizontal database scaling (Beta)
Horizontal database scaling increases transaction throughput by directing read requests to a cluster of read-only database replicas rather than to the master database. It is supported only on Amazon Aurora MySQL databases and can be enabled when deploying an Author/Live environment using Elastic Path CloudOps for AWS. For more information, see Horizontal database scaling.
This a Beta feature that is undergoing further testing and performance tuning.
Announcements and Notices
Removed Features
Feature | Notes |
---|---|
The standalone demo package in the extensions/packager/standalone-demo/ module | Use Elastic Path CloudOps to deploy demo environments instead of using the standalone demo package |
System Requirements and Compatibility
Elastic Path Commerce 7.6.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 |
New in This Release
In addition to the Release Highlights, this release contains the following updates.
Core Commerce updates
- Included
ShoppingItem
fields inShippableItem
to allow shipping calculation plugins to access cart item modifier values for each cart line item. - Added custom Shopping Cart fields, which can be created for cart identification or as an option within the checkout flow.
- Added ability to separate secure production configuration that is managed by operations from non-secure configuration that is managed by development teams.
- Updated the required Apache Maven version to 3.6.2.
Cortex API updates
- Updated customer addresses and payment methods to modify the default billing address, shipping address, and payment method on a customer profile.
- Added links from the item resource to offers to retrieve details about an offer from each item.
- Added a link on cart lineitem resources to dependent
lineitems
. - Added an
order.already.submitted
structured message that is returned if thesubmitorderaction
is executed more than once.
Reference Storefront updates
- B2B barcode scanner
- Integration with the Reference Chatbot (Amazon Lex)
- Re-skinnable header icons
- Dynamic bundle enhancements
- Request timeouts for Cortex and Account Management
- Branding and style updates
Upgrade Notes
The upgrading Elastic Path guide provides general instructions on upgrading Elastic Path projects.
Apache Maven upgraded to version 3.6.2
To install Apache Maven 3.6.2 in your local development environment, follow the instructions in Requirements for Setting up your Developer Environment - Apache Maven.
Shopping carts for B2B are cleared during upgrade
When you upgrade Elastic Path Commerce to this release, all carts owned by associates are cleared. Associates are users who log in to Commerce through Account Management.
Previously, all associates in a buyer organization shared a cart. The shared cart no longer exists. Instead, each associate gets their own cart. They can also create additional carts. For more information, see Multiple carts for each buyer.
Note: Users who log in to Commerce without Account Management are not affected.
PersistenceEngine
invocation
Improved The following changes to PersistenceEngine
invocations were made to support horizontal database scaling and to simplify the handling of load tuners and fetch plans.
PersistenceEngine
interface: The interface contains the following new methods:withLoadTuners()
,withLazyFields()
,withCollectionOfLazyFields()
,JPAPersistenceEngineImpl
class: Read operations that don’t require a new session are moved to specialized query executors and no longer throwEpPersistenceException
.OpenJPAFetchPlanHelper
class: This class is no longer used for individual load-tuner configuration. Instead, each load tuner is responsible for its own configuration. This class is mainly used as a proxy when calling the newwith
methods and the final configuration and cleaning of a fetch plan.PersistenceEngine()
methods:EpPersistenceException
is no longer part of the method signature and does not need to be caught.
Before the upgrade:
public List<SomeType> findXByY(params) {
configureLoadTuner();
try {
return persistenceEngine.retrieve();
} catch (Exception e) {
throw new EpPersistenceException(e);
} finally {
clearFetchPlan();
}
}
After the upgrade:
public List<SomeType> findXByY(params) {
return persistenceEngine.
.withLoadTuner(loadTuner)
.retrieve();
}
When upgrading
For custom code that calls PersistenceEngine
methods, remove exception handling for EpPersistenceException
and use the following methods to provide load tuners and fetch plans.
withLoadTuners()
withLazyFields()
withCollectionOfLazyFields()
Database Changes
Ensure that the database is updated as required when you upgrade Elastic Path Commerce to the current version. The following database tables are updated:
- Removed the
CATALOG_UID
column in theTMODIFIERGROUP
table. This table is calledTCARTITEMMODIFIERGROUP
in earlier releases. - Changed the column name
CART_ITEM_MODIFIER_GROUP_UID
toMODIFIER_GROUP_UID
in theTMODIFIERGROUPLDF
table. This table is calledTCARTITEMMODIFIERGROUPLDF
in earlier releases. - Change the column name
CART_ITEM_MODIFIER_GROUP_UID
toMODIFIER_GROUP_UID
in theTMODIFIERFIELD
table. This table is calledTCARTITEMMODIFIERFIELD
in earlier releases. - Changed the column name
CART_ITEM_MODIFIER_FIELD_UID
toMODIFIER_FIELD_UID
in theTMODIFIERFIELDLDF
table. This table is calledTCARTITEMMODIFIERFIELDLDF
in earlier releases. - Changed the column name
CART_ITEM_MODIFIER_FIELD_UID
toMODIFIER_FIELD_UI
in theTMODIFIERFIELDOPTION
table. This table is calledTCARTITEMMODIFIERFIELDOPTION
in earlier releases. - Changed the column name
CART_ITEM_MOD_FIELD_OPTION_UID
toMODIFIER_FIELD_OPTION_UID
in theTMODIFIERFIELDOPTIONLDF
table. This table is calledTCARTITEMMODIFIERFIELDOPTNLDF
in earlier releases. - Renamed the column name
CART_ITEM_MOD_GRP_UID
toMOD_GRP_UID
in theTPRODTYPECARTITEMMODIFIERGRP
table. - Added a unique constraint to
CART_ORDER_GUID
in theTORDER
table.
Fixed Issues
Core Commerce
- Fixed an issue where multiple orders can be placed from a single cart if the Cortex
submitorderaction
is executed multiple times - Eliminated an unnecessary delay in refreshing the cache for promotion rules <!--SUP-211>
- Eliminated an unnecessary caching of expired promotion rules
- Fixed a failure in generating the Customer Personal Data Report when the data point
ORDER_PAYMENT_CARD_HOLDER_NAME
is included - Fixed a stuck thread that occurred when deleting a coupon
- Fixed a null
parentItemUid
that occurred when adding a child item to a cart <!--SUP-149> - Fixed a problem with authorizing an additional payment amount when processing an exchange in Commerce Manager
- Fixed an incorrect invoice price on the Commerce Manager order details page
- Fixed a null pointer exception that occurred when you create a global product attribute and then edit product types for a category
Cortex
- Resolved the issue that all the RelOS dependencies needed to be specified in
ext-cortex-webapp
.ext-cortex-webapp
was refactored and now contains only the dependencies for resources being loaded in RelOS. By default, all RelOS dependencies are added as shown in the following sample:
<dependency>
<groupId>com.elasticpath.cortex</groupId>
<artifactId>ep-relos-runtime-webapp</artifactId>
<type>war</type>
</dependency>
- Fixed an issue where null pointer exceptions were not being logged by Cortex
ReactiveAdaptor
- Improved the reliability of Blueprint bundle instantiation vetoes when starting Cortex
- Removed the linked categories that are marked as excluded from navigation results