Release: 5.2.2508.2025+sts
The following is a list of the release's bug fixes and enhancements. Some bug fixes may address existing support articles. A comprehensive list is at the bottom of this page.
Release highlights
.NET 8.0 is now generally available. The benefits of migrating include the following:
- Improved performance – Optimizely's internal testing indicates that Configured Commerce is 40% faster.
- Faster iteration on local development – Improved startup and build times give you quicker development and testing cycles so you can make changes faster.
- Improved stability – Optimizely's .NET 8.0 infrastructure runs on Linux containers with faster startup times, allowing autoscaling of containers during periods of high volume.
See .NET overview to learn more about this update and how you can migrate to .NET 8+.
Both .NET 4.8 and .NET 8+ are supported going forward until Optimizely decides when to end-of-life .NET 4.8.
Breaking changes
Binary breaking changes do not necessarily require code changes but rather just a recompilation of the project. This section describes breaking changes to method signatures or method behaviors in Optimizely Configured Commerce.
High risk
-
Fixed an upgrade conflict with
BouncyCastle.Cryptography– The 2412 release updated SSH.NET from 2024.1.0 to 2024.2.0, introducing a transient dependency onBouncyCastle.Cryptography. This caused a conflict with the previously usedPortable.BouncyCastledue to identical internal namespaces. SincePortable.BouncyCastleis now obsolete, the solution is to switch entirely toBouncyCastle.Cryptography. This change is breaking; extension DLLs usingPortable.BouncyCastlewill no longer function, and minor code adjustments may be necessary for compatibility withBouncyCastle.Cryptography.This is only a high risk for those who directly use
Portable.BouncyCastle.
Low risk
- Updated real-time pricing and inventory on request thread – Previous releases used a separate thread for real-time pricing and inventory requests, blocking the user's API request until completion or timeout. This led to thread safety risks and excessive background thread use. Now, real-time pricing and inventory run on the user request thread, aligning with other features and reducing thread pool starvation risks. However, the application is less tolerant of slow real-time sources, so ensure external systems perform well. Parameter objects now include a
CancellationTokenfor terminating slow API calls. You can restore the legacy behavior if needed by customizing the code to use a separate task and the cancellation token. - Set shared cache to always enabled – The previous None configuration for the shared cache used a high-performance local memory cache. Now, the only option is the SqlServer setting, which was already used by most environments for consistent real-time pricing and inventory across web servers. Sites previously using None may experience performance issues if they relied on local memory cache, which will be evident in the sandbox environment, prompting you to review customizations before production deployment.
- Fixed extra renders when redirected from the search bar – The query parameter on the
displayProductsmethod is now optional, and there is a new optional parameter calledqueryString.
Partners/Developers: At the bottom of this page, you can view a cumulative list of breaking changes, including Spire breaking changes. The spreadsheet has two tabs: one for cumulative breaking changes and one for Spire breaking changes.
API updates
New endpoints
Search
Added the endpoint GET /api/v1/search/redirect to redirect a search term to the appropriate search results page. This improves search efficiency and user experience.
- Query parameters
-
term(string, required) – The search term to be redirected.
-
Data model changes
WebsiteSettingsModel
Removed the following properties from the Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel:
-
allowSocialPostGeneration(boolean) -
contentPagesMetadataGeneration(boolean)
Enhancements
Spire
- Added a button to the Spire CMS that lets an authenticated user run the translation import job on demand for custom blueprints. See Translate static content in blueprints for information.
Other
- Released .NET 8.0 for general availability. See the .NET overview.
- Improved deadlock handling with VMI Orders using the CSD connector.
- Updated the login lockout message to show "Account is locked out" for correct username and password combinations and "Invalid Username/Password" if the password is incorrect.
- Improved Real-Time Inventory threading efficiency by disabling running real-time inventory on a background thread.
- Updated Real Time Service Unavailable Retry Minutes to Real Time Service Unavailable Retry Seconds for more flexibility in configuring real time pricing and inventory. The default is now 300 seconds. See Real time pricing and inventory for information.
Bug fixes
- Fixed an unhandled error that occurred when you added a large list with an invalid item to the cart.
- Fixed an issue where the Product Carousel - Recommended Products widget did not show all products returned by Product Recommendations.
- Fixed an issue where the
GetCarthandler triggered real-time pricing using an invalidOrderLine.UnitOfMeasure, resulting in a 500 error from P21. - Fixed a caching issue with the slideshow widget.
- Fixed an issue where reading all integration job logs during status reporting caused a lockup.
- Fixed an error that occurred when you tried to access the CMS from a quick link on the Dashboard.
- Fixed an issue where the Wish List and VMI PDF features did not respect website-specific templates when they sent emails.
- Fixed an issue where the application did not retry health check failures when it experienced transient SQL connection issues during routine health checks.
- Fixed an issue where Product Recommendations sent duplicate events to the tracking page after a page reload.
- Fixed an issue where some users were missing roles when you exported website users with a roles column.
- Fixed an issue where URL fields on products within the catalog did not populate with valid values after you reindexed with Commerce Search v3.
- Fixed an issue where you could not select an API version in Swagger.
- Fixed an issue where you could set multiple default records during import.
- Fixed an issue where the Bambora gateway connector did not send the Customer IP field when calculating the risk score
Related Support Articles
None.
Please sign in to leave a comment.