Skip to main content
Version: 7.6.x

Elastic Path 7.6.x Release Notes

Learn about changes to Self-Managed 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 Self-Managed 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 avoid NullPointerException 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 potential ConcurrentModificationException. (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 the 7.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 root pom.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 a Self-Managed 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 the shipment 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 the ep-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 and shared-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 an https protocol. (May 11, 2021)
  • 46190a99: Implemented proper initialization of TaxOperationResolvers in the ElasticPathTaxProviderPluginImpl 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. The TINDEXNOTIFY 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 and productUidByGuidCache 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 in SubmitOrder. (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 Self-Managed Commerce 7.5.1. (17-Aug-2020)
  • 2642c389: Fixed a ReportingSQLException that occurs when the CSV import failure records do not fit into the TIMPORTFAULT table. Increased the ARGS 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 single transactions.properties file. Within each webapp, projects can now add a src/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 a store 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 the ehcache-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 be skuOptionsCache. (29-Apr-2020)
  • b5127511: Fixed intermittent failures with the promotion Cucumber test. Added a new method isPromotionExists() and updated verifyPromotions(). (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 the CategoryImpl class to determine availability. (23-Mar-2020)
  • bec1e604: Fixed a NullPointerException that can occur in Cortex when sorting on localized attributes. Added LocaleUtils.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:

FieldSearch Type
Shared IDExact Match
EmailCase Insensitive Match
UsernameCase Insensitive Match
First NameCase Insensitive Prefix Match
Last NameCase Insensitive Prefix Match
Zip / Postal CodeCase Insensitive Match
Phone NumberCase Insensitive Match
StoreExact Match

Searchable account fields:

FieldSearch Type
Shared IDExact Match
Business NameCase Insensitive Prefix Match
Business NumberCase Insensitive Prefix Match
Phone NumberCase Insensitive Match
Fax NumberCase Insensitive Match
Zip / Postal CodeCase Insensitive Match

Searchable order fields:

FieldSearch Type
Order NumberExact Match
User Shared IDCase Insensitive Match
User First NameCase Insensitive Prefix Match
User Last NameCase Insensitive Prefix Match
User EmailCase Insensitive Match
User Phone NumberCase Insensitive Match
Account Shared IDExact Match
Account Business NameCase Insensitive Prefix Match
Account Business NumberCase Insensitive Prefix Match
Account Phone NumberCase Insensitive Match
Billing Address First NameCase Insensitive Prefix Match
Billing Address Last NameCase Insensitive Prefix Match
Billing Address Phone NumberCase Insensitive Match
Billing Address Fax NumberCase Insensitive Match
Billing Address Zip / Postal CodeCase Insensitive Match
Shipping Address First NameCase Insensitive Prefix Match
Shipping Address Last NameCase Insensitive Prefix Match
Shipping Address Phone NumberCase Insensitive Match
Shipping Address Fax NumberCase Insensitive Match
Shipping Address Zip / Postal CodeCase Insensitive Match
Order StatusExact Match
Shipment StatusExact Match
StoreExact Match
Product SKU CodeExact Match
RMA CodeExact 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 Self-Managed 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 Self-Managed 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 - including epjndi-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​

Self-Managed 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​

FeatureNotes
The standalone demo package in the extensions/packager/standalone-demo/ moduleUse Elastic Path CloudOps to deploy demo environments instead of using the standalone demo package

System Requirements and Compatibility​

Self-Managed Commerce 7.6.0 is compatible with the following Elastic Path releases:

Elastic Path ComponentVersionsLocationsGit branch or file name
Elastic Path CloudOps for AWS(Amazon Web Service)CloudOps for AWS compatibility matrixcode.elasticpath.comrelease/3.N.x where N is the minor version number
Elastic Path CloudOps for Azurecode.elasticpath.comrelease/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 in ShippableItem 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 the submitorderaction 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 Self-Managed 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.

Improved PersistenceEngine invocation​

The following changes to PersistenceEngine invocations were made to support horizontal database scaling and to simplify the handling of load tuners and fetch plans.

  1. PersistenceEngine interface: The interface contains the following new methods: withLoadTuners(), withLazyFields(), withCollectionOfLazyFields(),
  2. JPAPersistenceEngineImpl class: Read operations that don’t require a new session are moved to specialized query executors and no longer throw EpPersistenceException.
  3. 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 new with methods and the final configuration and cleaning of a fetch plan.
  4. 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 Self-Managed Commerce to the current version. The following database tables are updated:

  • Removed the CATALOG_UID column in the TMODIFIERGROUP table. This table is called TCARTITEMMODIFIERGROUP in earlier releases.
  • Changed the column name CART_ITEM_MODIFIER_GROUP_UID to MODIFIER_GROUP_UID in the TMODIFIERGROUPLDF table. This table is called TCARTITEMMODIFIERGROUPLDF in earlier releases.
  • Change the column name CART_ITEM_MODIFIER_GROUP_UID to MODIFIER_GROUP_UID in the TMODIFIERFIELD table. This table is called TCARTITEMMODIFIERFIELD in earlier releases.
  • Changed the column name CART_ITEM_MODIFIER_FIELD_UID to MODIFIER_FIELD_UID in the TMODIFIERFIELDLDF table. This table is called TCARTITEMMODIFIERFIELDLDF in earlier releases.
  • Changed the column name CART_ITEM_MODIFIER_FIELD_UID to MODIFIER_FIELD_UI in the TMODIFIERFIELDOPTION table. This table is called TCARTITEMMODIFIERFIELDOPTION in earlier releases.
  • Changed the column name CART_ITEM_MOD_FIELD_OPTION_UID to MODIFIER_FIELD_OPTION_UID in the TMODIFIERFIELDOPTIONLDF table. This table is called TCARTITEMMODIFIERFIELDOPTNLDF in earlier releases.
  • Renamed the column name CART_ITEM_MOD_GRP_UID to MOD_GRP_UID in the TPRODTYPECARTITEMMODIFIERGRP table.
  • Added a unique constraint to CART_ORDER_GUID in the TORDER 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
  • 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
  • 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