Highlights of the bug fixes
While we’re working on the big Ucommerce 9.5 launch with the new User Interface of the revamped Promotions App, the most recent release includes dramatically improved performance of the Marketing Foundation experience on checkout operations. We wanted to tune up the soon-to-be Promotions App so that the engine is as good as possible before revamping it in the upcoming release.
We’ve also developed better support for a scaled Elasticsearch environment. Thanks to this fix, you can expect higher performance and more extensive scenarios supported by Elasticsearch. If you want to find out more about Elasticsearch and when it’s best to use it, check out our CPO’s talk on it from the Ucommerce 9.4 Launch Event.
Various performance improvements to the indexing of user-defined fields, variant properties, and relationships between stores and catalogs, were also added in this release.
Some of our users were running into scenarios when some special characters were creating problems when generating URLs. For Ucommerce 9.4.2, we fixed it by allowing non-Latin characters.
Among other essential fixes, you will notice that catalog library methods are now paginated and return by default 64 items, custom controllers no longer clash with the ones that come with Ucommerce, and there is no more “Internal Server Error” when deploying to Sitefinity Cloud.
Full List of improvements
The fixes highlighted above do not include everything we’ve implemented for this release. You can check out all the improvements on the list below or by going to our release notes page where we update changes to each release systematically.
If you want to stay up-to-date with our latest releases, events, and announcements, make sure to subscribe to the Ucommerce Round-Up!
✨ Updated the debug pipelines that were using the "ScratchIndexer" component to use the "DefaultScratchIndexer" component. ➙ Debug pipeline component name has been prefixed with “Default”
✨Deleted selection options (enum) values will no longer be displayed in the UI.
✨ObjectDisposedException when using Elasticsearch clusters. Introduced a new way of configuring our Elasticsearch search provider (see this article). ➙ A new way of configuring Elasticsearch connections for developer setup and cloud/cluster production setup.
✨Selecting the "Default" domain in the Stores app would result in failing to resolve the ProductCatalogGroup resulting in a NotSupportedException. ➙ Selecting the “Default” domain in the Stores app no longer errors out.
✨Indexing and searching in user defined fields with the value `null` now works as expected.
✨Not Found exception when a present MVC or Web API controller would have a naming clash with an existing Ucommerce API Controller by prefixing them with "Ucommerce". Freeing up names such as "ProductController" or "CategoryController". ➙ The Ucommerce MVC or Web API controllers have been prefixed with “Ucommerce” to avoid clashes with custom controllers.
✨The "ProductCatalogGroup" property was not mapped to the ProductCatalog search model, breaking URL generation for multiple product catalogs. ➙ The URL generation for multiple product catalogs is no longer broken (a relation to a Store was missing)
✨Translated values for products are now correctly displayed for non-admin users.
✨Variants will no longer be indexed, when the ParentProduct's DisplayOnSite is set to false, and when the ParentProduct's DisplayOnSite is set to true, only variants who's DisplayOnSite is also set to true, will be indexed. ➙ Variants are only indexed when the “DisplayOnSite” on the Parent Product and on the specific variants is set to true.
✨Lucene search APIs now return 64 documents by default instead of 100.
✨'Ucommerce.Api.CatalogLibrary.GetCategories' ignored the skip and take parameters, always returning all results without pagination.
✨'Ucommerce.Api.CatalogLibrary.GetProducts' when called with a categoryId ignored the skip and take parameters, always returning all results without pagination.
✨'Ucommerce.Api.CatalogLibrary.GetProducts' when called with a list of productIds ignored the skip and take parameters, always returning all results without pagination.
✨'Ucommerce.Api.CatalogLibrary' methods that return multiple items now default to returning 64 items instead of 300. ➙ Catalog library methods “GetCategories”, “GetProducts” are now paginated and by default return 64 items (instead of 100), just like the Lucene search APIs.
✨Performance drastically improved on checkout operations while using Marketing rules.
✨Added support for non-Latin characters in the products titles and the URL slugs associated with them.
✨Fixed indexing and de-indexing of relationships. Eg. Removing the relationship between a ProductCatalog and a ProductCatalogGroup, if the ProductCatalog has been deleted.
✨GetRateForAllCurrencyExchangeRatesTask no longer floods the log files with null reference when a currency code is missing. ➙ When updating currency exchange rates and the currency code is missing, the log file is no longer flooded
✨Product properties marked as "Variant property" were being displayed on the parent product editor in the Products App. ➙ Variant properties are no longer displayed on the parent product.
✨No longer add unnecessary <httpModules> and <httpHandlers> entries to web.config upon installation, which would result in an "HTTP Error 500.23" when deploying to Sitefinity Cloud. (Sitefinity) ➙ Deploying to Sitefinity Cloud no longer fails with “HTTP Error 500.23 - Internal Server Error”
✨Changing the language when editing a product variant now correctly updates the value of multilingual product variant fields.
✨Creating a store or catalog as a non-administrator user will now correctly grant permissions to the newly created entity.
To see fixes, breaking changes, and new features for all CMS’s and to all Ucommerce versions, check out our release notes page.