Elastic Path 8.0.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 8.0 since its release date. To learn how to consume the updates, see Consuming Support Fixes.
- 536306dd: Fixed issue with SKU selection dialog not allowing users to search after clicking the clear button. (19-Aug-2024)
- b5026bdf: Improved Oracle
reset-db
script to ensure that the tablespace is created automatically. (19-Jul-2024) - 16a124c1: Fix for intermittent Selenium test failure "Error forwarding the new session Empty pool of VM for setup". (10-Jun-2024)
- b003acf7: Build stability improvements. (15-May-2024)
- 37a17cef: Updated failsafe plugin to use alphabetical ordering instead of default filesystem ordering. (14-Feb-2024)
- 9b580795: Added null check in
SolrQueryFactory
to avoidNullPointerException
if an expected attribute key does not exist. (9-Jan-2024) - fc792643: Fixed Cucumber tests that fail if test run order is changed. (12-Dec-2023)
- 317510bf: Updated
individual-settings.xml
to use secure Nexus URLs. (11-Dec-2023) - 3ea3b96f: Fix for intermittent failure in "Payment Configuration" tests. (23-Nov-2023)
- 1dfab545: Fixed issues in
set-ep-versions.sh
script and Maven settings used for builds. (27-Sep-2023) - b1b7fcf0: Standardized Cucumber test configuration across modules. (26-Sep-2023)
- 04517563: Removed problematic and unnecessary
ep-core-cucumber-itests
module. (20-Sep-2023) - 3cd0a3df: Fixed bug in
verifyDebugMessage
method used by Cucumber tests. (29-Aug-2023) - bdc9b6c5: Improved parallelization of Import/Export Cucumber tests to generate directories using a UUID instead of a sequential number to avoid potential conflicts. (5-Mar-2023)
- c67d8950: Resolved local Cortex startup warning
The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or ""
. (13-Feb-2023) - 90079c8f: Fix to ensure that orders are correctly placed in the "Failed" state if an exception is thrown inside
CreateNewOrderCheckoutAction#populateOrder
. (9-Feb-2023) - ffb1f0c5: Reduced the amount of logging produced when running Selenium tests. (8-Feb-2023)
- d2e5c5fb: Fix for intermittent test failures in
PaymentConfigurations
Cucumber tests. (7-Feb-2023) - 0ee1c26a: Fixed issue with changeset list resetting to page one when locking or publishing changesets. (6-Feb-2023)
- 87d125b2: Fix for intermittent Selenium test failures due to thread safety issues. (6-Feb-2023)
- 6b574b9d: Fix for "Device is disposed" error in Commerce Manager. (30-Jan-2023)
- 81c4878b: Fix for intermittent failure in "Import Data Policies with existing Data Policies" test. (26-Jan-2023)
- b331132a: Increased "Remove Abandoned Monitor" timeout for all services. (26-Jan-2023)
- 2ef22b91: Fixed issues with the re-population of
skuOptionsCache
which caused the cache to become ineffective after the TTL expires. (19-Jan-2023) - 91e608bf: Fixed issue with empty facet name when assigning available facets to a store in Commerce Manager. (9-Jan-2023)
- a87c5758: Returned default JMS max active session per connection size back to 25. (16-Dec-2022)
- 5d8e103f: Upgraded
ehcache-openjpa
from version 0.2.0 to 0.2.0-ep1.0 to address potentialConcurrentModificationException
. (15-Dec-2022) - 816364e1: Fix for intermittent "Create category in existing category" selenium test failure. (15-Dec-2022)
- 1ce44eb0: Upgraded
plexus-utils
from version 2.0.4 to 3.0.24. (15-Dec-2022) - ea45e790: Addressed
api-platform
build issue on M1 MacBooks. (8-Dec-2022) - 340f775c: Fixed SonarQube linter errors in
api-platform
source. (8-Dec-2022) - 00219e00: When a data sync failure occurs, the log now contains details about which object failed. (8-Dec-2022)
- e6bd32c8: Modified coupon table to store coupon codes in uppercase so we can do a case insensitive lookups without a table scan. (5-Dec-2022)
- 5ecf663c: Fixed reliability issue with
ShoppingCartServiceImplTest#testTouch
. (5-Dec-2022) - e9e3364d: Fixed content root error appearing in IntelliJ for some modules. (1-Dec-2022)
- 351f4082: Performance improvement to avoid loading a full shopping cart when updating the last-modified date. (28-Nov-2022)
- 7c4d2a9b: 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)
- 87127059: Removed leftover references to customer SOLR index. (28-Nov-2022)
- be7c8a5b: Fixed an issue where a free item promotion triggered by a coupon was not activated. (24-Nov-2022)
- 8891706e: Fix for search server race condition that can prevent indexes from building. (17-Nov-2022)
- 2b63ea14: Changed log level in
PriceListPriceScoreDocComparator
to prevent logs from being flooded during search indexing. (15-Nov-2022) - 28603ce9: Modified
RelayOutboxMessageBatchProcessor
to inject the producer template via Spring instead of@EndpointInject
annotation to improve reliability. (11-Nov-2022) - 37499647: Fixed potential
NullPointerException
that can occur when the7.5.0-decouple-customer-userid-from-email
changeset is executed. (10-Nov-2022) - 09b3abfb: Modified
EpEmailValidator
to accept empty values to be consistent with other validators. (9-Nov-2022) - d76d38a5: Fixed issues with the
7.6.0-torder-make-cart-order-guids-unique
changeset. (4-Nov-2022) - 507aacde: Fixed primary key data type on
TOUTBOXMESSAGE
table to prevent overflow. (3-Nov-2022) - af29e6e6: Corrected invalid JMS connection pool attribute names in
context.xml
. (26-Oct-2022) - d26a6b76: Fixed issues with Integration Server that prevented payment plugins from being wired in correctly. (25-Oct-2022)
- 0ca02e72: Fixed issue where the price list drop-down on the product bundle price adjustments tab isn't populated. (25-Oct-2022)
- 318389e7: Improved customer and order search user interface in Commerce Manager. (25-Oct-2022)
- 76464645: Upgraded
commons-text
from version 1.9 to 1.10 to address CVE-2022-42889. (24-Oct-2022) - aa77a1bf: Replaced
libsass-maven-plugin
to resolve build errors on Mac M1 machines. (19-Oct-2022) - 69e3285f: 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. (18-Oct-2022) - 2bfefd0e: Modified Commerce Manager product and category display name localization so that only intentionally specified values are displayed and saved. (6-Oct-2022)
- cefce211: 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. (6-Oct-2022) - 383034e4: Upgraded Guava from version 24.1.1-jre to 31.1-jre. (5-Oct-2022)
- 1959ad98: Improvement to cart line item promotion allocation to allow code to determine how much of a discount the promotion applied to each line item. (30-Sep-2022)
- a3098a97: Improvements to Selenium test suite run time. (27-Sep-2022)
- b17066e7: Upgraded Spring Core from version 4.3.25.RELEASE to 4.3.30.RELEASE. (15-Sep-2022)
- 0bde52e6: Fixed issue with product not being automatically added to cart by free item promotion action. (14-Sep-2022)
- 4e13620c: Build stability improvements. (8-Sep-2022)
- 31ffc5d2: Separated indexing pipelines by type to ensure that long queues in one pipeline doesn't delay indexing in another. (5-Sep-2022)
- adb8f4f0: Updated Catalog Syndication projection builder to ensure that projection and projection history records are persisted in separate transactions to prevent deadlocks. (2-Sep-2022)
- 97df3efb: Allow business users to add "not sold separately" products as associations. (30-Aug-2022)
- e5ba2d0e: Upgraded Jackson from version 2.12.3 to 2.12.7 to address jackson-databind security vulnerability. (25-Aug-2022)
- 6d47d754: Disabled an intermittently failing Selenium test. (25-Aug-2022)
- ca90ab26: Disabled an intermittently failing Selenium test. (24-Aug-2022)
- 6a5e53cf: 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. (22-Aug-2022)
- 38510fd4: 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. (21-Aug-2022)
- d6b49bd8: Fixed issue with multiple Cortex OSGi bundles exporting the same package, leading to potential instability at startup. (19-Aug-2022)
- 32503b24: Increased the size of the fields used to hold catalog syndication content. (19-Aug-2022)
- 1c464429: Modified "I search for an order by number" Cucumber expectation to wait until all Outbox messages are consumed to resolve intermittent test failures. (18-Aug-2022)
- 01f58d6f: Removed duplicate database indexes from the
TORDERADDRESS
table. (18-Aug-2022) - 558299d3: Upgraded Spring Web from version 4.3.25.RELEASE to 4.3.30.RELEASE. (18-Aug-2022)
- 4b5911e1: 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. (18-Aug-2022)
- 2a986db4: 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. (17-Aug-2022)
- 5b453714: Fixed multiple issues with Liquibase changeset scripts. (17-Aug-2022)
- 8ffb538e: 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). (8-Aug-2022)
- 30e30632: Use embedded web server to reliably serve test mail attachment for Cucumber
emailFileAttachments.feature
. (8-Aug-2022) - 403e02cf: 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. (12-Jul-2022)
- 06783c70: Added missing indexes to the
TCARTDATA
table. (12-Jul-2022) - 343070e2: Upgraded JDBC driver to
ojdbc8-19.9.0.0
for Oracle 19. (4-Jul-2022) - 7dbcab00: Modified Cortex to allow it to continue functioning normally if ActiveMQ is overloaded or offline. (23-Jun-2022)
- a3538eed: Upgraded Apache Shiro from 1.3.2 to 1.8.0. (17-Jun-2022)
- fbf70513: Improved thread safety around promotion rule compilation. (26-May-2022)
- 7f0eb894: Improved messaging in the CM when a reservation fails during order modification. (16-May-2022)
- d58ec848: 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)
- 8953e77a: Fixed an issue where service logs were not being written to the correct location. They are now always written to
[user.home]/ep/logs
. (29-Apr-2022) - 067d6eb2: Fix for Selenium test failures that can occur in the last week of the year, where that week has one or more days in the next year. (26-Apr-2022)
- 963055f1: Fix for potential
NullPointerException
while Cortex is validating attribute value data type compliance. (26-Apr-2022) - c002ad2d: Corrected the password hash for Commerce Manager test users. (13-Apr-2022)
- aa54fe2c: Extended the expiry date for Commerce Manager test users. (13-Apr-2022)
- 097ecebe: Restored logging in Commerce Manager after Log4j2 upgrade. (25-Mar-2022)
- 22161e7b: Upgraded Apache SOLR from version 7.4 to 8.11.1. (17-Mar-2022)
- 2db7e8f5: Fixed dependencies on test database projects. (4-Mar-2022)
- 9058f7c6: Upgraded Log4j 1.2.17 to Log4j 2.17.1. (28-Feb-2022)
- ead625c6: Fix for Cortex 5XX error that can occur when multiple threads retrieve the default cart concurrently. (25-Feb-2022)
- 3938ac86: Fixed an issue with
AbstractPageObject
where it would miss a button’s state change, causing test instability. (25-Feb-2022) - 9b4fba85: Fix for failing email file attachments Cucumber test due to change in
place-hold.it
URL. (23-Feb-2022) - f3106e9f: Fixed an issue where unrelated items were returned when searching for SKUs by SKU code in Commerce Manager. (19-Jan-2022)
- a64cb835: Fixed issue in cli applications where unconsumed output on
System.err
could cause the application to hang. (13-Jan-2022) - bdcacbd2: Allow base amounts to be added/edited/deleted without first adding the price list to the changeset. (29-Dec-2021)
- df818ed5: Upgraded Tomcat to version 9.0.50. (14-Dec-2021)
- e28f9973: Upgraded Quartz and Servicemix Quartz dependencies to version 2.3.2. (10-Dec-2021)
- 5fe590b4: Fixed issue with Cortex showing incorrect pagination results when retrieving recommendations. (1-Dec-2021)
- 4fbad79d: 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) - 1a0ef084: Build stability improvements. (Sep 24, 2021)
- e3ee55be: Improved Commerce Manager performance for catalogs with large volumes of base amounts. (Sep 21, 2021)
- 9f7e5e24: Improve performance in cart item modifier field validator. (Sep 13, 2021)
- 0d0353b1: Removed unnecessary duplicate promotions caches and fixed potential thundering herd issue when promotions cache is initially populated. (Sep 8, 2021)
- 756fb70f: Fixed an issue with EP Core Tool logging. (Sep 3, 2021)
- 92c1b6be: Fixed an intermittent build failure where the index status was not set as expected. (Sep 2, 2021)
- 8c9833a7: Fixed an issue where Limited Use Coupons are automatically added to new orders. (Aug 26, 2021)
- 23303c0f: Performance fix for
ShipmentDetailsIdParameterServiceImpl
that previously retrieved each shipment in the user’s order history to determine if theshipment
resources should be accessible. (Aug 25, 2021) - 5a6926fd: Updated code to ensure that payment capture re-attempt failures are logged when the payment authorization has expired. (Aug 24, 2021)
- de2cd028: Updated promotion rule retrieval so that all other rules in the ruleset are not eagerly loaded. (Aug 18, 2021)
- 7bd1fffa: Reduced excess databases queries that were generated for cart and order modifiers. (Aug 9, 2021)
- e3d83163: Added support for a Maven option to define how many times to rerun failing tests. (Aug 10, 2021)
- 4896a2d5: Fixed a race condition in
SolrFacetAdapter
that was causing Cortex errors when retrieving faceted offer search results. (Jul 8, 2021) - e5392dde: Fixed issues with the
_scrollToTableItemWithText
function in theep-test-support.js
file that caused intermittent Cucumber test failures. (Jul 7, 2021) - 4c8511df: Backported the
mvnmin.xml
file to maintenance releases. (Jun 22, 2021) - cb90b233: Fixed error when viewing failed orders. (Jun 15, 2021)
- b464aeb8: Improved catalog projection clean-up performance. (Jun 9, 2021)
- 9b1598e0: Change
mobee-test-data
andshared-test-data
changeset to run on every update and remove*-release-data
. (May 26, 2021) - efa640ab: Fixed the
DataPolicyFromSystemConfigurationReporting
Cucumber Test Failure. (May 27, 2021) - 3667bd37: Removed customer Solr index. (May 17, 2021)
- 510d6de7: Allow groovy-maven artifacts to be downloaded from Maven central and removed duplicate versions. (May 11, 2021)
- c34af0cd: Updated
maven.springframework.org
with anhttps
protocol. (May 12, 2021) - bd16c61d: Implemented proper initialization of
TaxOperationResolvers
in theElasticPathTaxProviderPluginImpl
file. (Apr 19, 2021) - aa5f3037: Fixed
CustomerRepository
method calls to enable caching values. (Apr 14, 2021) - b5d9c33a: Prevented multiple threads from falling through the
CachingRuleServiceImpl#findChangedStoreRuleBases
file simultaneously. ( Apr 12, 2021) - 58e19998: 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) - d87baa7d: Updated Selenium tests due to failures with Order
testGivenName
andtestFamilyName
not existing. (Apr 8, 2021) - b39f8fcc: Updated product name search to use special characters in Commerce Manager. (Apr 1, 2021)
- d1dd0dcb: Fixed CSV Import and Change Set issues. (Mar 29, 2021)
- 897c0a8a: Improved
LifecycleEventFilter
to further reduce events and ensure that different entity classes with the same guid are not treated as duplicates. (Mar 23, 2021) - 5a4481a0: Commerce Manager now displays orders in the
FAILED
state. These orders were previously hidden. (12-Mar-2021) - f1026d51: Enhanced the orders search to support searching by user email. (3-Mar-2021)
- 38b9c0c8: Fixed intermittent failures in the Fit tests (Framework for Integrated Test). (24-Feb-2021)
- 1c06ac44: Improved the consistency of validation rules and made it possible to override them. (8-Feb-2021)
- 311afcda: Replaced XA with Outbox pattern.(3-Feb-2021)
- 44e1a8af: Editing default shipping address changes the cart’s selected shipping address. (29-Jan-2021)
- 14386ea9: Improved performance by fixing multiple identical
AttributeImpl
queries inSubmitOrder
. (27-Jan-2021) - a266a6ac: 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. (26-Jan-2021)
- a4deef25: Fixed a failing catalog integration test. (8-Jan-2021)
- 8ffbedd9: The
purchase-price-range
minimum price is now set to the lowest price, which can be either a sale price or a list price. Previously, it was always set to the lowest sale price. (17-Dec-2020) - 26ac28bd: Fixed the CloudOps for Kubernetes tests for the Payment API external plug-in. The fix included updating the JAR protocol to restrict the instantiation to once per VM. (17-Dec-2020)
- 9716f0fa: Fixed an issue where the offer lookup fails when the
productByUidCache
andproductUidByGuidCache
are not synchronized. (2-Dec-2020) - 7e503726: Fixed an issue where prices are missing from the storefront for some customers due to a thread-safety issue in
LogicalTreeBuilder
. (30-Nov-2020) - 2c0c401d: Improved the performance of customer search indexing. (26-Nov-2020)
- 6f47abc0: Improved cart performance by removing unnecessary cart re-pricing calls. (15-Oct-2020)
- 2015dc99: Fixed an exception that occurs when resetting or updating the database while the Object Auditing feature is enabled. (30-Sep-2020)
- 9bb47a33: 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. (30-Sep-2020) - d8d216af: Enabled caching for the
COMMERCE/SYSTEM/API/enableTrustedTraits
setting. (1-Sep-2020) - 94ff604d: 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)
- dcbaee99: 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) - 7a264c80: Improved the
cleanupExpiredOAuth2Tokens
batch job. (13-Aug-2020) - 3fc11fb5: 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) - 73eb412f: 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. (5-Aug-2020) - a9dd018c: 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)
note
The following commits are included in the 8.0.1 release commit. If you update to this release, you get these changes automatically.
- 414f448a: 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)
- 2bf76651: Fixed an issue where the
featuredoffers
resource was returning offers in arbitrary order instead of the order specified in Commerce Manager. (23-Jun-2020) - f218a332: Fixed an issue where the offer price range calculation included disabled products. Modified the offer price range calculation to include only displayable products. (16-Jun-2020)
- 9b9af531: 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)
- 5d394e2c: Improved checkout actions behavior by adding exception handling. If a checkout action threw an exception during rollback, remaining checkout action rollback methods were skipped. Now all rollback methods are executed even if one or more actions throw an exception. (9-Jun-2020)
- 503e6e38: Commerce Manager now displays decimal places in the shipment summary details. This issue occurs when using Oracle as the data store. (25-May-2020)
- 9d1a35f8: Fixed the intermittent
ActiveMqVirtualTopicConsumptionITest
test failure. (25-May-2020) - a48ccd6b: 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)
- 3fbfebd6: Fixed intermittent failures with promotion cucumber tests. Added the new method
isPromotionExists()
and updated theverifyPromotions()
method. (28-Apr-2020) - f9fe1384: Fixed the formatting of the description in the
paymentmethods
family. (28-Apr-2020) - 66111a46: Fixed some intermittent test failures by updating the demo data Data Policy retention period. (27-Apr-2020)
- 20e04b77: 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)
- 9c4ca018: Improved the Order API documentation and replaced needinfo links with advisors. (25-Mar-2020)
- 0b40c8df: 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. (24-Mar-2020) - 962410ff: Fixed an issue where search-master indexing did not recover after loss of network or database connection. (24-Mar-2020)
- c48e3478: Fixed the Data Policy test for user
automation_data_policy_user2
. (19-Mar-2020) - 82a21c9f: Fixed a
NullPointerException
that can occur in Cortex when sorting on localized attributes. AddedLocaleUtils.getCommerceLocalCode
to ensure valid codes. (18-Mar-2020) - 2d0619e2: Fixed an issue where Cortex hides Multi-SKU Pre-order Products when the remaining quantity is zero. (5-Mar-2020)
Changelog Announcements
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.
8.0.1
Released: July 2020
Release Highlights
Migration of payment data to new framework tables
In Elastic Path Commerce 8.0.0, a new payment framework was introduced. It stored payment method configuration, saved payment methods, and payment history data in different tables than previous versions of Elastic Path Commerce. Elastic Path Commerce 8.0.1 now contains Liquibase changesets that automatically transforms your payment data into the new table structure. This allows you to maintain payment history and existing purchases to continue the standard workflow, such as payment capture when physical items ship, modification of in progress orders, and issuing refunds, without errors.
The following diagrams illustrate the old and new data models, to compare the changes.
Elastic Path Commerce 7.6.x Payments Data Model
note
The red tables are removed or modified as of version 8.0.x.
Elastic Path Commerce 8.0.x Payments Data Model
note
The blue tables are new or modified as of version 8.0.x.
Expose cart modifiers on default cart
Elastic Path Commerce 7.6.0 added the ability to define cart modifiers which are fields associated with each custom shopping cart. Cart modifiers are used for shopping cart identification, such as cart name, or for storing additional information about the shopping cart, such as a store code for a pickup in-store scenario. One limitation of this feature was that cart modifiers did not appear on a user’s default cart.
Elastic Path Commerce 8.0.1 exposes cart modifiers in the default cart. This change also allows businesses to define a default value that is applied to the cart modifiers for default carts, so that these required fields don’t block checkout of a default cart.
For more information about how to configure cart modifiers including the default cart values, see the Store and Cart sections of the Import/Export documentation.
Support for multiple public keys for JWT token validation
Cortex allows clients to authenticate users by passing a JWT token into the Authorization
header. This JWT token is encoded and signed using an algorithm called HMAC-SHA256
and contains details of the user who should be authenticated. This token is only accepted by Cortex if the signature can be validated using a public key that was created at the same time as the private key used to sign and encode the JWT token.
In previous versions of Elastic Path Commerce, only one public key could be defined in ~/ep/conf/cortex/jwtTokenStrategy.config
as in the following example:
publicKey="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0bJzXyIto3wZwrqMtu49ZzGNvb1nWJ3ujROP7aFQyKYqADZ7Y4USa9kychzfs2tw/IQLzfOLQy8oKOVQTbt5KD0osca3T9fP6uMFEpvR1zwcuy5jHUDuyqlgOqAqvySnBCz1/BH6MMQJfITBdcCZCp56uAUBSGW0pfsXwEVad75jdm3tGKCU22cgx7/K1cF3YnbKMAWtKbvW3lLpueohXHvNDIB+xf2Eomp1RRO93n6whkvoKg5cKJug4S17s0cSLrn8oZRp85cmWJ59i7nYqVdY2DpDDTIwpZNIdqauQlzQvInzf1ZEFHl0trDaMV7JJgVQSrDf36hWEF0mQ54X7wIDAQAB"
Multiple public keys can be defined in this file, and Cortex will iterate across these until it finds one that decodes the JWT token successfully, or fails if none of the public keys is able to decode the token. Example of the new ~/ep/conf/cortex/jwtTokenStrategy.config
format:
publicKeys = [ \
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2S73WrOdWC95ifyLhZvr1J9eH0Md/XWKb4wtc3EiztRxi7llc/iZcteeaPTXc3nG1soYm+0kUbp2/PzIPe1yTsdL5zvFDPQtJZL9iv38sRJdjEXHDqKdo+7PKbTbER2bs/U8W5YloC//KbkEFD7MWLqG6ER8N82DLxuAILPnSkqbuhU3t+HOjgw6GpD+2J7FED8ABH18lFXOzqTssZTurJ6zKZb/Mys5Qerg/mqmwpHNKcxWFEh+zv6rTlQkbVHzauG7mWwGvqdTROY/HJRoYjtpWl0eNGoHCXxwo44g0ZdqSC3coPeskVxDnHysAmHb3V9aMxTcphM5vJtRxeQRLwIDAQAB", \
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr9/+ME1B2gPjoh1xLzZx+qx91uL3TGHrtTXXPXxkziVBJG44wSQTxTYlXFEyIMWW8Q/VKHVKEmnt/MivyaOey5swNc1EDRZ6igJfI8JpxgRbj7KzR261ATjRbZOn1LU09VYi96inlj6SdV6oP5sLwHZ63X305IA0b1oMsDypgbnWz+F3SiMmPG6DspTQ4HPdcI32SohU7b5ysJDlxt0hiTpz6Ucd1jIhHu3F1HsU9vjswgaIOlaxPnSkgFBjOCS3P8/5Ptyvuye2jNb/q77sLipQM9nm81uBwVue0AzntzgKin1OcXpiuo0TWCxYYtRh9O4ueJfrP/SFN7WjWAsROQIDAQAB", \
]
Support for customer identification based on profile attribute
At the start of every API request, Cortex uses an internal header called x-ep-user-id
to determine which customer is being authenticated. In past versions of Elastic Path Commerce, this was always interpreted as the customer GUID. However, now the way this value is interpreted depends on the value of the COMMERCE/SYSTEM/CUSTOMER/identifier
setting.
If this setting is set to GUID
, the database retrieves a customer record by looking up a record with the GUID
field matching the x-ep-user-id
value. If a customer record is not found, then one is created automatically.
If this setting is set to ATTRIBUTE_VALUE:CP_SOMETHING
, the database retrieves a customer record by looking up a record with a profile attribute value with key CP_SOMETHING
matching the x-ep-user-id
value. The value of CP_SOMETHING
can be changed to any configured profile attribute key. If a customer record is not found, then an error is returned by Cortex.
The setting also supports context values, where the context key must match the value of the iss
field contained within the passed JWT token. This allows you to have a different lookup strategy depending on which system created the JWT token. These context values are only supported by JWT tokens.
Depending on which authentication mechanism you are using, the internal x-ep-user-id
header is populated in different ways:
If you are using the standard OAuth mechanism, the
x-ep-user-id
value is populated from the customer GUID contained within theTOAUTHACCESSTOKEN
record that is retrieved by reading the identifier passed in theAuthorization
header.If you are using the Trusted Header Mode Accelerator, the public
x-ep-user-id
header is transformed from the customer’s user-id value into the customer’s GUID value.If the client passes a JWT token into the
Authorization
header, then thex-ep-user-id
value is populated from theprofile
field within the encoded JWT token.
System Requirements and Compatibility
Elastic Path Commerce 8.0.1
is compatible with the following Elastic Path releases:
Elastic Path Component | Compatibility |
---|---|
Elastic Path CloudOps for AWS (Amazon Web Services) | Compatibility Matrix |
Elastic Path CloudOps for Kubernetes | Compatibility Matrix |
Upgrade Notes
- If you previously ran Elastic Path Commerce in production with version 7.6.1 or earlier, ensure that the payment history on your orders and the saved payment instruments for each customer upgraded properly before upgrading production.
- Customizations to tables such as
TORDERPAYMENT
orTPAYMENTTOKEN
may cause the upgrade scripts to work incorrectly or could cause data to be lost unless the upgrade scripts are customized to account for this. - If your database contains a large number of
TORDERPAYMENT
records, this migration may take some time. Elastic Path testing shows that the upgrade scripts can process about 250,000TCUSTOMERPAYMENTMETHOD
records per minute and 400,000TORDERPAYMENT
records per minute. - After upgrading your Elastic Path Commerce database, all of the Payment Provider Configurations are in the
Draft
state. This is done so that you can ensure that the configurations contain all required values for the new payment plugins. Ensure to change these to theActive
state so that shoppers can use these as valid payment methods. - The format of the
jwtTokenStrategies.config
file has changed to support definition of multiple public keys. Ensure that all of these files use the format described in the precedingSupport for multiple public keys for JWT token validation
section.
The Upgrading Elastic Path guide provides general instructions on upgrading Elastic Path projects.
Fixed Issues
Elastic Path Commerce 8.0.1 contains the following fixed issues:
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.
Multiple Data Sync issues
Fixed NullPointerException while rendering the summary if an exception was thrown during change set publishing. This prevents the status message from being sent to the
ep.dst
queue.JPA relationship between BusinessObjectMetadata (
TOBJECTMETADATA
) and BusinessObjectGroupMember (TOBJECTGROUPMEMBER
) was one-to-one instead of many-to-one.Improved a
DST
debug logging to show both GUID and class type when looking up entities.Changed default sort order for changeset objects from object name to object ID due to localization bug that can occur when sorting by name.
Moved two DaoAdapter classes that were located in the wrong package and updated them to use the entity locator to retrieve objects.
Order shipment summary not showing decimals properly (Oracle)
Fixed issue when viewing the shipment summary details in Commerce Manager while using Oracle as the data store, in which decimal places are not displayed correctly.
DST
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.
Store invisible sub-categories were shown when navigating to the visible parent category
Fixed an issue where Cortex continued to return sub-categories marked as not store visible
.
Search master indexing did not recover after loss of network/db connection
Updated the search master to correctly recover after a database connection loss.
NullPointerException can occur in Cortex when sorting on localized attributes
Added LocaleUtils.getCommerceLocaleCode
to ensure valid locale codes are used.
Multi-Sku Pre-Order Product was not visible when remaining quantity is zero
Fixed an issue where Cortex hid pre-order products with no remaining inventory.
Offer lookup returned products that were not date enabled
Fixed offer lookup form returning products that have a future start date.
Imported the store visible value inverted
Fixed the Commerce Manager CSV import for products which treated the store visible
column value as a store hidden
flag.
Offer Price Range was empty if first child sku had no price
Fixed the offer price range result in Cortex so it returns a result even if some of the skus do not have a price assigned.
Issues with Import/Export of localized product attribute values
Localized product attribute values are now imported and exported in locale string format, such as en_US
, instead of language tag format, such as en-US
to be consistent with the rest of Import/Export. Also, error messages have been improved to differentiate between locales that are unsupported by the catalog versus unsupported by the system.
Expired shopping cart promotions were compiled unnecessarily
A performance optimization for customers with large numbers of expired promotions to make sure that the search server does not spend time compiling promotions that have expired.
If a checkout actions threw an exception during rollback, remaining checkout action rollback methods were skipped
A defensive change to ensure that if there is a checkout failure, that all rollback methods are executed even if one or more actions throw an exception.
Featured offers were returned by Cortex in arbitrary order
The featuredoffers
resource was returning offers in arbitrary order instead of the order specified in Commerce Manager.
Offer price range calculation included disabled products
Modified the offer price range calculation to only include displayable products.
Removed unused system configuration settings
The following unused system configuration settings were removed from the database:
COMMERCE/STORE/CATALOG/catalogViewPagination
COMMERCE/STORE/CATALOG/CatalogSitemapPagination
COMMERCE/STORE/SEARCH/searchCategoriesFirst
jwtTokenStrategies.config
to be compatible with the default Account Management private key
Updated default public key in the deployed Elastic Path has updated the public key deployed in the jwtTokenStrategies.config
file. The previous default public key deployed was not compatible with the default Account Management private key.
note
Only use the default private key in Account Management and the corresponding public key in Cortex for testing and not for production deployments. For more information about how to change these keys, see Account Management Requirements.
Improved batch server logging for catalog syndication jobs
The default log4j.properties
file now includes Spring Batch INFO
messages by default to make it more obvious when the batch server is working on rebuilding the catalog projections. This change also adds a warning to the logs if it attempts to build an offer projection but no related categories are found in the category projections.
Performance improvements for Import/Export products.xml imports
Importing products using Import/Export is now significantly faster. In some circumstances, there is up to a 10x performance increase when importing a significant number of products.
Intermittent test failures
- Fixed the user role selection to fix intermittent test failure.
- Fixed the intermittent
ActiveMqVirtualTopicConsumptionITest
test failure. - Fixed the intermittent promotion Cucumber test failure.
- Fixed the intermittent email Cucumber test failure.
- Updated the demo data Data Policy retention period to fix the intermittent test failure.
- Fixed the Selenium test that fails if the data policy
revoked consents
batch job runs before test executes. - 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)
Upgraded Libraries
The following libraries were upgraded as part of this release, primarily to address vulnerabilities detected within these libraries.
Library | Change |
---|---|
activemq-broker-5.15.12.jar | Version changed from 5.15.8 |
activemq-camel-5.15.12.jar | Version changed from 5.15.8 |
activemq-client-5.15.12.jar | Version changed from 5.15.8 |
activemq-console-5.15.12.jar | Version changed from 5.15.8 |
activemq-jms-pool-5.15.12.jar | Version changed from 5.15.8 |
activemq-kahadb-store-5.15.12.jar | Version changed from 5.15.8 |
activemq-openwire-legacy-5.15.12.jar | Version changed from 5.15.8 |
activemq-pool-5.15.12.jar | Version changed from 5.15.8 |
activemq-spring-5.15.12.jar | Version changed from 5.15.8 |
activemq-stomp-5.15.12.jar | Version changed from 5.15.8 |
activemq-web-5.15.12.jar | Version changed from 5.15.8 |
activemq-web-console-5.15.12.war | Version changed from 5.15.8 |
antisamy-1.5.8.jar | Version changed from 1.5.3 |
apache-jsp-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
apache-jstl-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
asm-commons-6.0.jar | Added |
asm-tree-6.0.jar | Added |
audience-annotations-0.5.0.jar | Added |
camel-core-2.23.4.jar | Version changed from 2.23.1 |
camel-core-xml-2.23.4.jar | Version changed from 2.23.1 |
camel-groovy-2.23.4.jar | Version changed from 2.21.1 |
camel-http-common-2.23.4.jar | Version changed from 2.23.1 |
camel-jackson-2.23.4.jar | Version changed from 2.23.1 |
camel-jms-2.23.4.jar | Version changed from 2.23.1 |
camel-jsonpath-2.23.4.jar | Version changed from 2.23.1 |
camel-mail-2.23.4.jar | Version changed from 2.21.1 |
camel-script-2.23.4.jar | Version changed from 2.21.1 |
camel-servlet-2.23.4.jar | Version changed from 2.23.1 |
camel-spring-2.23.4.jar | Version changed from 2.23.1 |
camel-swagger-java-2.23.4.jar | Version changed from 2.23.1 |
camel-test-2.23.4.jar | Version changed from 2.23.1 |
camel-test-spring-2.23.4.jar | Version changed from 2.23.1 |
checker-qual-2.10.0.jar | Added |
commons-beanutils-1.9.4.jar | Version changed from 1.9.3 |
commons-codec-1.14.jar | Version changed from 1.11 |
commons-daemon-1.2.2.jar | Version changed from 1.0.15 |
commons-fileupload-1.4.jar | Version changed from 1.3.3 |
commons-pool2-2.8.0.jar | Added |
error_prone_annotations-2.3.4.jar | Added |
failureaccess-1.0.1.jar | Added |
geronimo-jacc_1.1_spec-1.0.2.jar | Version changed from 1.0.1 |
geronimo-jta_1.0.1B_spec-1.0.1.jar | Removed |
greenmail-1.3.jar | Removed |
guava-24.1.1-jre.jar | Version changed from 18.0 |
h2-1.4.200.jar | Version changed from 1.3.170 |
hadoop-annotations-2.7.4.jar | Removed |
hadoop-auth-2.7.4.jar | Removed |
hadoop-common-2.7.4.jar | Removed |
hadoop-hdfs-2.7.4.jar | Removed |
j2objc-annotations-1.3.jar | Added |
jackson-annotations-2.10.3.jar | Version changed from 2.9.6 |
jackson-core-2.10.3.jar | Version changed from 2.9.6 |
jackson-core-asl-1.9.13.jar | Removed |
jackson-databind-2.10.3.jar | Version changed from 2.9.6 |
jackson-dataformat-xml-2.9.9.jar | Version changed from 2.9.7 |
jackson-dataformat-yaml-2.9.9.jar | Version changed from 2.9.7 |
jackson-datatype-joda-2.9.9.jar | Version changed from 2.9.7 |
jackson-datatype-jsr310-2.10.3.jar | Version changed from 2.10.2 |
jackson-jaxrs-base-2.10.3.jar | Added |
jackson-jaxrs-json-provider-2.10.3.jar | Added |
jackson-mapper-asl-1.9.13.jar | Removed |
jasypt-1.9.3.jar | Version changed from 1.9.2 |
jdk.tools-1.8.jar | Removed |
jdom2-2.0.6.jar | Version changed from 1.0 |
jetty-annotations-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-continuation-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-deploy-9.3.20.v20170531.jar | Removed |
jetty-http-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-io-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-jaas-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-jmx-9.3.20.v20170531.jar | Removed |
jetty-jndi-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-plus-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-rewrite-9.3.20.v20170531.jar | Removed |
jetty-runner-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-security-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-server-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-servlet-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-servlets-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-util-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-webapp-9.2.26.v20180806.jar | Removed |
jetty-webapp-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jetty-xml-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
jsr305-3.0.2.jar | Added |
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar | Added |
mailapi-1.4.3.jar | Removed |
nekohtml-1.9.22.jar | Added |
netty-3.10.6.Final.jar | Version changed from 3.10.5.Final |
okio-1.14.0.jar | Version changed from 1.14.1 |
org.apache.commons.codec-1.11.0.jar | Removed |
org.apache.commons.logging-1.1.1.v201101211721.jar | Removed |
org.apache.felix.webconsole-4.3.16.jar | Version changed from 4.3.4 |
org.apache.servicemix.bundles.spring-aop-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-beans-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-context-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-context-support-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-core-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-expression-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-jdbc-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-jms-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-security-core-4.2.13.RELEASE_1.jar | Version changed from 4.2.4.RELEASE_1 |
org.apache.servicemix.bundles.spring-tx-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-web-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
org.apache.servicemix.bundles.spring-webmvc-4.3.25.RELEASE_1.jar | Version changed from 4.3.19.RELEASE_1 |
rome-1.12.2.jar | Version changed from 1.0 |
rome-utils-1.12.2.jar | Added |
selenium-api-3.141.59.jar | Version changed from 3.14.0 |
selenium-chrome-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-edge-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-firefox-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-ie-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-java-3.141.59.jar | Version changed from 3.14.0 |
selenium-opera-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-remote-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-safari-driver-3.141.59.jar | Version changed from 3.14.0 |
selenium-support-3.141.59.jar | Version changed from 3.14.0 |
snakeyaml-1.23.jar | Removed |
spotbugs-annotations-3.1.9.jar | Added |
spring-aop-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-aop-4.3.26.RELEASE.jar | Version changed from 4.3.18.RELEASE |
spring-batch-core-4.0.4.RELEASE.jar | Version changed from 4.0.1.RELEASE |
spring-batch-infrastructure-4.0.4.RELEASE.jar | Version changed from 4.0.1.RELEASE |
spring-beans-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-beans-4.3.26.RELEASE.jar | Version changed from 4.3.18.RELEASE |
spring-context-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-context-4.3.26.RELEASE.jar | Version changed from 4.3.18.RELEASE |
spring-context-support-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-core-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-data-commons-1.13.22.RELEASE.jar | Version changed from 1.13.16.RELEASE |
spring-data-jpa-1.11.22.RELEASE.jar | Version changed from 1.11.16.RELEASE |
spring-expression-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-jdbc-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-jms-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-messaging-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-orm-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-retry-1.2.4.RELEASE.jar | Version changed from 1.2.1.RELEASE |
spring-security-config-4.2.13.RELEASE.jar | Version changed from 4.2.11.RELEASE |
spring-security-core-4.2.13.RELEASE.jar | Version changed from 4.2.11.RELEASE |
spring-security-oauth2-2.3.8.RELEASE.jar | Version changed from 2.3.5.RELEASE |
spring-security-remoting-4.2.13.RELEASE.jar | Version changed from 4.2.11.RELEASE |
spring-security-web-4.2.13.RELEASE.jar | Version changed from 4.2.11.RELEASE |
spring-test-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-tx-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-web-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
spring-webmvc-4.3.25.RELEASE.jar | Version changed from 4.3.19.RELEASE |
velocity-1.7.jar | Removed |
velocity-engine-core-2.2.jar | Added |
websocket-api-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
websocket-client-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
websocket-common-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
websocket-server-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
websocket-servlet-9.3.28.v20191105.jar | Version changed from 9.3.20.v20170531 |
woodstox-core-5.1.0.jar | Version changed from 5.0.3 |
xbean-spring-4.16.jar | Version changed from 4.2 |
xercesImpl-2.12.0.jar | Version changed from 2.9.1 |
xml-apis-1.4.01.jar | Added |
xml-apis-ext-1.3.04.jar | Removed |
xstream-1.4.10.jar | Removed |
zookeeper-3.4.14.jar | Version changed from 3.4.10 |
8.0.0
Released: February 27, 2020
Release Highlights
Payments
With the new Payments framework, Elastic Path provides the capability to easily create payment plug-ins for different payment providers and methods to support the changing needs of today’s shoppers and buyers.
The Payments framework provides a capability-based plug-in model that is designed to support traditional and non-traditional payment types. Plug-in developers only implement what is relevant for their use case, simplifying and reducing development efforts.
Available out-of-the-box is a CyberSource plug-in for Visa CyberSource customers, and a Purchase Order plug-in, available as source. Use the Purchase Order Plug-in to capture Purchase Order numbers in the checkout flow or customize it for your specific use case. For more information about the Payments framework and plug-ins, see Payments and Payments Plug-ins.
Announcements and Notices
Removed Features
Feature | Notes |
---|---|
The deprecated Cortex system tests in the extensions/cortex/deprecated-system-tests module were removed. | Cortex system tests are still available in the extensions/cortex/system-tests module. |
System Requirements and Compatibility
Elastic Path Commerce 8.0.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 Services) | CloudOps for AWS compatibility matrix | code.elasticpath.com | release/3.N.x where N is the minor version number |
Elastic Path CloudOps for Kubernetes | CloudOps for Kubernetes compatibility matrix | code.elasticpath.com | release/2.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
Added the Payments framework which provides a capability-based plug-in model that is designed to support traditional and non-traditional payment types. Plug-in developers only implement what is relevant for their use case, simplifying and reducing development efforts. For more information, see the Payments documentation.
Added the CyberSource plug-in: CyberSource customers can connect the plug-in to the Elastic Path Payments framework, configure in Commerce Manager and start accepting payments immediately. Customers can handle credit card payment processing and tokenization out-of-the-box,using either the Direct Post or Hosted Page methods provided by CyberSource. For more information, see the CyberSource Plug-in documentation.
Cortex API updates
- Support for payments resources in Cortex.
- Added the
paymentmethods order-payment-method
resource to show all the available payments methods. - Added the
paymentinstructions order-request-instructions-form
resource to retrieve the instructions from the payment plug-in. - Added the
paymentinstruments order-payment-instrument-form
resource to generate the payment instrument. - Added the
paymentinstruments order-payment-instrument-selector
resource to choose an available payment instrument and attach it to the order. - Added the
paymentinstruments payment-instruments
to get all the profile payment instruments. - Added the
paymentinstruments profile-default-payment-instrument-selector
selector to choose a default profile payment instrument. - Added the
paymentmethods profile-payment-method
resource to show all the available saveable payments methods. - Added the
paymentinstruments purchase-payment-instruments
resource to show all the payment instruments used to pay for an order. - Added the
paymentinstruments purchase-payment-instrument
resource to view the payment instrument used in the order.
Reference Storefront updates
- Added a dynamic style guide to Storybook from Invision
- Bug fixes
- B2B branding theme
- Quick order and Bulk order with Multi-cart
- Initial Payments 8.0.0 compatibility for Happy Path plug-in (a test credit card plug-in) if available.
- Payments with Purchase Order plug-in
CloudOps updates
- CloudOps for Kubernetes replaces CloudOps for Azure. CloudOps for Kubernetes is a re-engineering of CloudOps for Azure to add support for both Azure and AWS (Amazon Web Services) deployments using cloud agnostic tooling.
Upgrade Notes
The upgrading Elastic Path guide provides general instructions on upgrading Elastic Path projects.
Core Commerce
With the introduction of the new Payments framework, significant changes have been made to how Elastic Path stores payment transactions and how these transactions relate to orders. There is no out-of-the-box data migration that exists to move data from the old schema to the new schema. As a result, upgrading to 8.0.x without taking specific steps to migrate the data, can result in Commerce Manager users unable to execute the following behavior:
- Complete shipments from pre-existing orders. This is any order that pre-dates the upgrade.
- Modify an order total, by either increasing or decreasing on existing orders. This is any order that pre-dates the upgrade.
- Create a refund on pre-existing orders.
- Create and exchange on pre-existing orders.
The following behavior can also be present:
- Saved payment tokens on customer profiles are no longer be visible.
- Payment history on existing orders is not be visible in Cortex or through Commerce Manager.
If any of these behaviors impact you, contact your implementation partner and consider upgrading to a future release.
note
Existing data is not deleted. The issues mentioned relate to the pre-existing data format being incompatible with the new payments capabilities. New order and payment transactions are stored in the new schema and are unaffected.
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:
- Updated
TSHOPPINGCART
table to replace the individual indexes onSHOPPER_UID
andSTATUS
with a new composite index onSHOPPER_UID
plusSTATUS
.
The following database tables are added for payments:
TPaymentInstrument
: Represents the Payment InstrumentTPaymentInstrumentData
: Represents additional data associated with the payment instrument as key value pairsTPaymentProviderConfig
: Represents an association to payment provider configuration by GUID and nameTPaymentProviderConfigData
: Represents additional data associated with the payment provider configurationTCustomerPaymentInstrument
: Represents the payment instrument saved in profile for a customerTCustomerDefaultPaymentInstrument
: Represents the default profile payment instrument for a customerTCartOrderPaymentInstrument
: Represents the relationship between the chosen payment instrument and the cart orderTOrderPaymentInstrument
: Represents a payment instrument used in an orderTOrderPayments
: Represents a payment transaction on a payment instrumentTPaymentLocalizedProperties
: Represents a localized name for a payment provider configurationTStorePaymentProviderConfig
: Represents the relationship between the store and the payment provider configuration
For more information about database tables, see Payments.
Fixed Issues
Core Commerce
- Fixed an issue with the availability rule setting for a product in Commerce Manager. Previously, if the availability rule for a product is set to always available, you can’t change the rule to any other option. Also, if the rule is set to any other option than always available, you can’t change it to
always available
. Now, you can change the availability rule for a product as required. - Fixed 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. <!--PERF-228>
- Fixed issue where many duplicate copies of queries with an IN clause are cached, which resulted in increased memory consumption and potential system instability.
- Fixed performance degradation when shoppers have a large number of carts.
- Fixed product search indexing performance issues with a large number of stores and virtual catalogs.