August 2019 – released Sitecore Experience Commerce 9.2 Initial Release
Sitecore Commerce 9.2 focuses on increased solution performance and ability to scale, along with functional enhancements and corrective content.
New features/improvements
Area | Description | TFS no. |
---|---|---|
Performance | Optimized the Commerce data storage and access layer to improve performance of data access intensive operations, e.g. fetching sellable items. Added relational entity storage with a new unique identifier (versus the existing resource intensive built-up ID). Added more entities and lists tables by entity types to share the load. New entity table for storing the entities’ json separately, making the tables sizes smaller. These changes enable related improvements to operations including: - Read: One call to get the entity and related entities (e.g. LocalizationEntity), query entity by new unique identifier, load list of entities with their related entities. - Insert: One call to insert the entity, its localization entity and it's versioning entity. One call insert an entity to multiple lists, and to insert multiple entities to a list. - Update: One call to update the entity and its localization entity. - Delete: One call to delete the entity, the entity’s lists memberships, the entity’s localization entity. | 311097 |
Performance Storefront | The Storefront shopping cart count can now be cached on the client browser to avoid unnecessary calls from each page to the Commerce Engine if no cart operations have been performed. This client-side caching is configurable, and active by default. This caching in most scenarios contributes to reduced wait times on the Storefront when the system is heavily loaded. However, there may be scenarios where performance would be optimized with this caching disabled, for example if many promotions affecting the cart are updated frequently, like every minute. | 319589 |
Performance Storefront | In the Storefront you can now disable unnecessary re-calculation of the Commerce Minicart component upon fetching a fresh copy of cart information from the Commerce Engine. This is now configurable. By default the Storefront continues to re-calculate the minicart every time, to maintain backwards compatibility with the previous release. However, in most scenarios it is recommended that you disable unnecessary minicart recalculations to reduce wait times on the Storefront when the system is heavily loaded. There may be scenarios where performance would be optimized with continued minicart re-calculation, for example if many promotions affecting the cart are updated frequently, like every minute. | 320306, 318837 |
Performance Storefront | The Commerce Product List component result-set from the AJAX call to get the products can now be cached on the client browser. This caching is configurable. By default caching is disabled to maintain backwards compatibility. However, in most scenarios it is recommended that you enable this caching to reduce wait times on the Storefront when the system is heavily loaded. Link to documentation on configuring the Product List cache. | 280874 |
Performance Storefront | API routes for individual Storefront AJAX calls to Connect can now be configured so they are not tracked for analytics and interpreted as page requests. It is recommended that each particular AJAX call not be routed to analytics if analytics is not required for that call. In most scenarios wait times on the Storefront can be reduced when the system is heavily loaded. By default four AJAX calls have been configured to avoid analytics tracking, because these four in particular are not used in analytics. Link to documentation on excluding APIs from being tracked | 251371, 319240 |
Performance | Added compression/decompression of Commerce Engine Connect (CE Connect) json files, to reduce network traffic and contribute in increased performance. Link to documentation on API response compression | 321604, 328491 |
Performance | Reduced the request wait time at the Storefront pertaining specifically to shipping methods. | 275976 |
Performance | Overcame a potential performance bottleneck in the GetSellableItemBlock that had previously been the result of needing to include a clone operation. | 322831 |
Performance | Added the ability in Commerce Engine Connect to load all languages for an entity in one call, to reduce network traffic and contribute to increased performance. | 319396 |
Performance | Removed unnecessary Commerce fields from the whitelist for indexing Azure search, in CE Connect, to optimize for performance. | 333934 |
Redis Caching | Added centralized caching via Redis, enabling robust caching in distributed deployments, where Commerce Engine environments (Shops, Authoring, Minions, Ops) may deployed on separate hardware/resources. Redis is now required in production environments, and is required by default. Redis is the default, but single development environments can be configured to use cache in local memory instead. Link to Commerce Engine Caching documentation | 320006 |
Marketing Automation Campaign | For the existing Abandoned Cart marketing automation campaign, the Storefront now includes renderings that include personalized content, including name and cart contents. So, the email sent to the customer can now include the entire contents of the abandoned cart. To implement, select this campaign module during the Storefront scaffolding stage, which will create an instance of the campaign. Create an automated email message and associate it with this campaign. Link to Commerce Marketing Automation Campaigns documentation | 231750, 319704 |
Marketing Automation Campaign | Added a New Order Placed marketing automation campaign. The Storefront now includes renderings that include personalized content, including name and order content. So, the email sent to the customer can now include the entire contents of the placed order. To implement, select this campaign module during the Storefront scaffolding stage, which will create an instance of the campaign. Create an automated email message and associate it with this campaign. Link to Commerce Marketing Automation Campaigns documentation | 303910, 198736, 270977 |
Search Storefront | The behaviour of search results, multiple or single, can now be configured in the Sitecore Control Panel. The default configuration returns multiple instances of the same product, one instance for each catalog category the product is associated with. This is by design because the appearance of the product might be styled differently for each instance; it can appear differently. A product could also be boosted in a particular category to appear at the top of its search results. Alternatively, the business may prefer displaying only one instance of the product in search results. Note that when duplicates set to be excluded, the search result does not display which instance was selected. Link to documentation on configuring site searches in SXA Storefront | 304076, 304073 |
Storefront | The standard SXA navigation component can now be used in place of the Commerce navigation component for rendering the top-level categories. This SXA component is now used by default for new sites. Considerations: - The SXA navigation component default markup is framework agnostic and does not support Bootstrap or mobile by default; it requires direct navigation. - The Commerce navigation component uses Bootstrap in order to support mobile devices with limited screen sizes. Link to documentation on navigation methods | 268853 |
Storefront | Added the ability to configure which Storefront pages are publicly available versus those that are private requiring authentication. Link to documentation on restricting page access with security roles | 276759 |
Storefront | Security domains can now be created and deleted remotely on Content Delivery and Content Management instances. In distributed environments the Storefront and hence a Sitecore security domain is recreated on CD instances during the scaffolding stage, so the CD instance can authenticate customers properly when running live. The security domain is recreated on additional CM instances when there are multiple CM instances. | 280818, 280850 |
Storefront | The customer's preferred language is now updated upon language selection when using the Commerce Language Selector component. The information is registered on the corresponding contact facet. The updated language is used when sending mail using EXM, so the customer receives mail in their preferred language. | 318742 |
Solr | Commerce Engine indexes now support basic solr authentication for search within the Business tools. Link to Commerce documentation on Solr authentication. Link to XP documentation on protecting Solr over HTTP. | 277146 |
Packaging | Commerce packages for on-premises installations are now deployed using Web Deploy Packages (WDPs) instead of .zip files. The Commerce package containing its Sitecore Installation Framework (SIF) scripts has been updated to support WDPs accordingly. Commerce install tooling now requires using WDPs instead of .zip files. .zip files are included on the download page only because they are needed for the in-place upgrade procedure. | 309002 |
Deployment | Added the ability to un-install XC, by providing a script that is implemented using the Sitecore Installation Framework (SIF). The procedure to uninstall Commerce is described in the "Installation Guide - WDP for On Premise" that can be downloaded from the main Experience Commerce 9.2 - Initial Release download page. Link to Experience Commerce 9.2 download page | 277108 |
Upgrade | Commerce 9.2 includes a supported upgrade path from Commerce 9.1. The upgrade instructions incorporate scripts that perform the necessary data migration steps, e.g. for migration of data impacted by data layer performance optimizations. | 334358 |
Resolved issues
Area | Description | TFS no. |
---|---|---|
Performance | Cloning method in GetSellableItemBlock leads to performance degradation. The cloning of Sellable Item was previously required for in-memory caching. This is solved in Commerce 9.2 by the centralized caching via Redis improvement (listed above), which is the default configuration. The current pre-9.2 in-memory caching approach continues to be an option for single server non-production deployments. Caution, this bug is not resolved when using in-memory caching. | 322831 |
Performance Storefront | Removed duplicate AJAX requests that were executed when Sitecore Experience Form is used on a page with the "Storefront Branded Theme" commerce SXA theme. | 276334 |
Performance Engine | Resolved an issue where the Commerce async interval strategy gets stuck if products change frequently. For example, with a 10,000 products with variants, changing products' properties once every 20 seconds caused sellableItemsIntervalAsynchronousStrategy to never complete execution, and then caused other Commerce index update strategies to queue. Note: this fix is available also as a hotfix in Commerce 9.0.3. | 322755 |
Performance | Improved the time to publish a Storefront site with sub-items after a restart. The publishing time is generally expected to be under a minute but depends greatly on the site and number of products. However times of over 2 minutes were observed with a site supporting a cataloging of around 100K products. | 321999 |
Engine | Resolved an issue where the Minion was not correctly removed from the runningMinions bag if an exception occurred in the minion's Execute() method. If an exception occurred, it was expected that the failed minion is removed from the bag. | 337050 |
Commerce Engine Connect | Index rebuild failed when SellableItem is associated to more than one Catalog and one of the Catalog is not selected in Sitecore Content Editor. Note: this fix is available also as a hotfix in Commerce 9.1. | 347458 |
Merchandising | Resolved incorrect autocomplete results for sellable items when typing in Business Tools. For example, when the user searched for a sellable item to associate to a bundle in Merchandising, they keyed in the sellable item ID. As characters are keyed in, the returned list continued to change as expected, but when the full ID had been keyed in the expected sellable item did not display. On the other hand, if the entire ID was pasted in at once, the results were correctly displayed. | 327945 |
Merchandising | Resolved an issue where it was not possible to set decimal values in the Business Tools if both the Business Tools and the Commerce Engine pools used the same user with a culture where decimal separator is a comma. For example, with the Bus Tools and Engine both using the same user for their application pools, login with as the user and configure format setting to use for example the German language (or a language which has comma as decimal separator). Login to Bus Tools and try to add a decimal price into the Price Cart or a Sellable Item. As a result, the prices were added incorrectly. For example, it is not possible to enter a price of format 1,22 (with a comma). And, entering a price of 1.22 gets saved as 122. | 276950 |
Merchandising | Custom child-views were only loaded by CommerceDataProvider into Sitecore if they were associated via ItemDefinition. In Merchandising, open the Habitat catalog and add a custom sellable item. Open this sellable item and add a custom view and a custom property to the view. Open Sitecore and run… Clear CommerceCaches. Run update DataTemplates. Open the custom item under the HabitatCatalog item. The user should expect the custom property to be displayed, but it did not display. | 278080 |
Merchandising | Resolved the issue where SetCommerceEditorFormatter blocked the Translation command in the Content Editor. In the Content Editor, Versions tab, select the Translate button. The translation was not displayed in the Content Area as expected. | 278085 |
Merchandising | Resolved an issue where after a sellable item was dissociated from its category, the sellable item was not correctly removed the index during incremental indexing. | 288560, 342767 |
Merchandising | Resolved an issue where the element in databases/database/dataproviders configuration in the file /wwwroot/App_Config/Include/Y.Commerce.Engine/Sitecore.Commerce.Engine.DataProvider.config caused a duplicated __Standard Values' version. Note: this fix is available also as a hotfix in Commerce 9.0.3. | 318916 |
Merchandising | Resolved an issue where the wrong product template was on the Content Delivery server. Using the Commerce Composer feature, add a custom view to for example all the headphones. Delete/Update commerce templates. Refresh the Commerce templates and caches in the Content Editor. Publish. Recycle the app pool of the CD, or perform an IISReset. Put the attached get-product.aspx page on the CD server and request it in the browser. Find a headphones product item with the new template and use its ID on the test page. The expected result is the template of the item would be the new "headphones", but the actual result was the template was "Commerce Product". | 316250 |
Orders | Resolved an issues where the Hold Order action did not resolve currency correctly. Open the /sitecore/Commerce/Commerce Control Panel/Shared Settings/Currency Settings/Currency Sets/Default item in the Content Manager. Set CAD Canadian Dollar value to the Default Currency field. Select any product in the Merchandising application and set its price only in Canadian Dollars. Login to the Storefront and buy this product. Open this order in the Orders application and make sure that order details reflect the correct price in CAD. Click the Hold Order button. The expected result is that CAD currently is displayed, but the actual display was in USD. Note: this fix is available also as a hotfix in Commerce 9.0.3. | 276387 |
Storefront | It is now possible to configure SXA configured presentation styles and grid settings for all Commerce components, which was only the case for a few Commerce components previously. | 317520 |
Storefront | Creating the storefront security domain was previously a manual task in distributed environments, but it has been automated now. In distributed environments like Azure, the storefront security domain is re-created on CD instances during scaffolding, so the CD instance can authenticate customers properly. Domain is also re-created on additional CM instances in case of multiple CM instances. Link to documentation on security domains in SXA Storefront Link to documentation on cutomizing the site creation pipeline | 280818, 280850 |
Storefront | After installing JSS in Storefront site, the JSS Layout Service now functions as expected. | 301199 |
Storefront | SXA-related ComputedIndexField errors no longer appear in the indexing log. | N/A |
Storefront | Only one instance of JQuery is now loaded as part of the storefront themes. This avoids duplicates and decreases the size and load time of the themes. JQuerycookie.js and JQueryplaceholder.js have been removed from the Commerce core library theme. | 317790 |
Storefront | Landing on a wildcard page for either product or category when in Direct Navigation mode no longer throws an exception. | 328029 |
Storefront | The SXA Search Box component is no longer failing when used on a Commerce Page page design. The JavaScript issue has been resolved. | 328840 |
Storefront | Fixed a bug in SXA to resolve missing Creative Exchange export assets. Creative Exchange export assets are no longer missing. | 309933 |
Storefront | Indexing errors and exceptions have been removed: "Could not compute value for ComputedIndexField: ispoi ...", "Could not compute value for ComputedIndexField: sxacontent ...", "Could not compute value for ComputedIndexField: urllink ..." | 276625, 329812, 318838 |
Storefront | The Product Price component now shows the correct price regardless of whether there are variants associated with the product and despite the order of the Product Variant and Product Price components on the page. | 324031 |
Storefront | "Use Index File for Product Status in Lists" setting did not function because it relied on fields that did not exist in sitecore_master\web_index. The setting field has been removed as it was no longer supported by the Commerce Engine. | 329913 |
Storefront | A hardcoded path in the Storefront Minicart component has been removed and replaced with a component setting to configure the image to use for progress indicator. | 323583 |
Storefront | Hardcoded labels in the Order Lines component has been resolved. Variant options for color and size have been replaced with dynamic labels for variant options present. | 324389 |
Storefront | Resolved the scenario where the Media node displayed the Habitat media folder multiple times. Note that for previous Commerce releases, a work-around to the issue includes manually removing the duplicate references to the media folder. | 317019 |
Storefront | Landing on the canonical URL in Direct Navigation mode threw an exception. This has been resolved. | 328029 |
Connect | Anonymous shoppers no longer break personalization rules. Personalization rules for anonymous shoppers now functions as expected. | 323837 |
Solr | Resolved errors occurring when searching, where SolrUrl ends with uppercase "SOLR". Open CommerceAuthoring_Sc9\wwwroot\data\Environments\PlugIn.Search.Solr.PolicySet-1.0.0.json. Provide the following value into SolrUrl field: "https://localhost:8983/SOLR". Bootstrap the config changes. Search for any entity in BizFx. The search is expected to work correctly, but instead an error was logged, "Problem accessing /SOLR/CatalogItemsScope/select". | 335828 |
App Insights | Resolved the issue where App Insights data for the Commerce Engine could not be accessed from the Azure Portal. | 337367 |
Deployment | Resolved an issue were a non-default Experience Platform password caused the Commerce deployment to fail. If the user changed the default XP admin password in XP, it caused the XC deployment to fail during bootstrap and the EnsureSyncDefaultContentPaths task. | 329413 |
Breaking changes
Area | Description | TFS no. |
---|---|---|
Redis Caching | Added centralized caching via Redis where Commerce Engine environments (Shops, Authoring, Minions, Ops) may be deployed on separate hardware/resources. Redis is now required in production environments, and is required by default. Redis is the default, but single development environments can be configured to use cache in local memory instead. Link to Commerce Engine Caching documentation | 320006 |
Engine | Merged the Settlement minion into Release minion, to overcome risk of concurrency issues between the two minions. If out of box, then update the environment configuration to use the Release minion only, and bootstrap. Sales activities for federated payments are now settled by the ReleasedOrdersMinion, sales activities for gift cards payments are still settled by the PendingOrdersMinion. The ReleasedOrdersMinion tries to settle the federated payments only once. If Braintree fails to settle, the sales activity and the order will be mark as problem and move to the problem lists, if not the sales activity is marked as settled and move to the settled lists and the order is marked as completed and move to the completed lists. | 325520 |
Storefront | For new sites, the standard SXA Navigation component is now used for category navigation as it offers more functionality and supports rendering variants. However, the default semantic HTML does not support mobile devices in terms of responsive design. For mobile support do one of 2 things: 1) replace the SXA Navigation component with the Commerce Navigation component or 2) Create a custom view for the navigation component that supports responsive design using Bootstrap or similar. See "Commerce Navigation rendering variant" in the documentation. | 268853, 328654, 328655 |
Storefront | As part of supporting private sites and security configured on Home page item, the field on Home item referencing back to the control panel settings for the site has been moved under "{site}/settings/commerce/Control Panel Configuration". When upgrading from XC 9.1 -> XC 9.2, the new configuration item is created and set to the value from under Home item to support the new way of configuring control panel reference. | 276759 |
Storefront | Removed obsolete 3rd party JavaScript libraries changes: Removed jquery-321.js. Removed jquerycookie.js. Removed jqueryplaceholder.js. | 317790 |
Storefront | Method return types have changed. The return type of method "GetProductPriceRenderingModel" in ProductPriceRepoitory.cs has changed from "CatalogItemRenderingModel" to "ProductPriceRenderingModel". | 324031 |
Storefront | Updates related to creating security domains remotely. The "Set Site Domain" item has moved from "/sitecore/system/Modules/PowerShell/Script Library/Commerce Experience Accelerator/Functions/Commerce Site Features/Storefront Template" to " /sitecore/system/Modules/PowerShell/Script Library/Commerce Experience Accelerator/Functions/Commerce Site Features/Storefront Components". | 280818 |
Storefront | Scripts have been removed from the Storefront Branded Theme; it now contains only stylesheets. This change was made to ensure the upgrade of component themes (scripting) for future Storefront versions does not impact the customer who is extending the Storefront Branded Theme. Link to documentation on extending the Storefront branded theme | 311926 |
Known issues
Area | Description | TFS no. |
---|---|---|
Performance | Azure PaaS search logs of type INFO are written to the file system by default. Depending on conditions, this logging could impact maximum achievable Storefront page view rates and response times. To maximize performance consider removing the collection of INFO logs, for example by setting the logging threshold to WARNING or ERROR. | N/A |
Performance Counters | In an Azure Web Application deployment, Windows Performance Counters are not supported. However the Commerce Engine continues to write counters by default, causing an unauthorized access exception in the Commerce Engine log file. | 278992 |
Business Tools | Unable to create a custom qualification when the input field is the DateTime picker. For example, create a custom qualification plugin and set the property type to DateTimeOffset: public IRuleValue FutureEventStartDate { get; set; }. When creating a new promotion and adding a new qualification to it, after setting the "FutureEventStartDate" and "FutureEventEndDate" values, the custom qualification fails to be created. | 282057 |
Marketing Automation Campaigns | Order confirmation and Abandoned Cart emails are only sent to registered customers. These Marketing Automation Campaign emails are not sent to customers browsing or doing an anonymous checkout, despite having entered their email address at the billing step in the anonymous checkout. | 335975 |
Storefront | Storefront does not support SXA wireframe mode. Link to documentation on SXA Wireframe mode | 303826 |
Storefront | When Template Overrides are missing and direct navigation is enabled, the site does not function as expected. This can happen either when upgrading from a Commerce release earlier than Commerce 9.1, or when creating a new catalog and associating it with a storefront. To work around the problem: 1) create Page Designs and templates if not present (prior to 9.1), and 2) configure template-2-Page Design mappings. For more information see "Walkthrough: Configure direct navigation on an existing site" | 311594 |
Storefront | An error message "Invalid catalog Id" appears when searching a new site without a catalog associated. | 281284 |
Storefront | Created theme is not showing in the Select Theme option in EE upon creating a site with that has Commerce module/s selected. To work around the issue, configure the missed theme after site creation by navigating to "{site}/Presentation/Page Designs" and update the value for field Theme under section Styling. | 316056 |
Storefront | If customers in extreme cases places orders so fast that the order confirmation has not been processed by the New Order Placed Marketing Automation campaign and Email Experience Manager, the following orders will customer will not re-enter the campaign the second time and as a consequence no order confirmation is sent out. | 319996 |
Storefront | Personalization rules are not functioning when "product id" used as a condition. When trying to add a personalization rule for the Shopping Cart page by using "product id" in any conditions, the personalization page is not correctly applying the rules. The result is that the text is displayed always, instead of as defined by the rule. | 204586 |
Storefront | No category is displayed in the Category Navigation component in an Azure PaaS environment. Navigate to the QA page in the Experience Editor, after drag/dropping the Category navigation component, no Category displays. To work around the issue, restart the CD. Note that this issue functions correctly on the live site after publishing. | 341397 |
Storefront | Following an upgrade, when selecting the Dashboard link on the footer of the Storefront page, the link incorrectly navigates to the Sitecore sign in page, instead of the Storefront sign in page. To work around the issue, select Sign In from the top menu bar of the Storefront page. | 319848 |
Storefront | Within the QA page in Experience Editor mode, the "Show more text" button displayed below the promoted products is not actually display the "Show more text" message on the button. | 321662 |
Connect | Orders do not display correctly in the Experience Analytics and Experience Profile reports applications, for example the Experience Profile report under the Commerce > Orders tabs. To work around the issue, re-instate the processor TriggerOrderOutcome that is commented out in the “/App_Config/Include/Sitecore.Commerce.Orders.config” file, under the pipeline “commerce.orders.submitVisitorOrder”. The root cause is the processor that triggers the Product Purchase outcome in Connect is disabled, which causes the outcome not to be triggered and reports depending on the outcome not to show any data. | 234685 |
Deployment | A scaled deployment may encounter issues with verification of long running commands through the API call. The task ID used to check if the long running command is completed is tied to a specific instance, so this will not work correctly in a scaled environment. | 340148, 323216 |
Deployment | After a deployment the user is unable to retrieve a catalog item from the Context Database. To work around the issue, restart the Content Delivery server. | 333936 |
Documentation updates
Area | Description | TFS no. |
---|---|---|
Performance Storefront | Added a topic on excluding APIs from being tracked in xDB. Link to documentation | 319240 |
Develeper Reference | Added new topics on working with Commerce pipelines and blocs. Link to documentation | N/A |
Develeper Reference | Added a new topic on describing elements of Commerce engine plugin. Link to documentation | N/A |
Develeper Reference | Added a new topic describing the content of the Sitecore Commerce Engine SDK. Link to documentation | N/A |
DevOps Reference | Added a new topic on explaining concepts of the Commerce Engine environments. Link to documentation | N/A |
DevOps Reference | Added a new topic on Commerce Engine policies. Link to documentation | N/A |
DevOps Reference | Added a new topic on how to install translation files for the Business Tools. Link to documentation | N/A |
DevOps Reference | Added a new topic describing the content of the Sitecore Commerce Engine SDK. Link to documentation | N/A |
Storefront | Added a topic on building a Commerce email message template. Link to documentation | 316072 |
Storefront | Added a topic on changing the styling of a Commerce email. Link to documentation | 316072/td> |
Storefront | Added a topic on Commerce Navigation rendering variants. Link to documentation | 268853 |
Storefront | Added a topic on configuring the minicart rendering. Link to documentation | N/A |
Storefront | Added a topic on configuring the Product List cache. Link to documentation | 280874 |
Storefront | Added a topic on customizing the Commerce Navigation rendering variant. Link to documentation | 268853 |
Storefront | Added a topic on customizing the site creation pipeline. Link to documentation | N/A |
Storefront | Added a topic on extending the Storefront Branded theme. Link to documentation | N/A |
Storefront | Added a topic on getting started with Storefront for business users. Link to documentation | N/A |
Storefront | Added a topic on getting started with Storefront for developers. Link to documentation | N/A |
Storefront | Added a topic on rendering the catalog on the Storefront. Link to documentation | N/A |
Storefront | Added a topic on restricting page access with SXA Storefront security roles. Link to documentation | 276759 |
Storefront | Added a walkthrough topic on enabling direct navigation for customized Commerce entities. Link to documentation | N/A |
Marketing Automation | Added a topic on understanding Commerce Marketing Automation Campaigns. Link to documentation | N/A |
Marketing Automation | Added a walkthrough topic on Setting up a Commerce Marketing Automation Campaign. Link to documentation | N/A |