Troubleshooting SXA Storefront

Version: 9.2

The following tables list common issues related to SXA Storefront along with proposed solutions. You can find answers to other questions you have in the Frequently Asked Questions.

Installation

Issue

Solution

Override templates for existing tenants are not present after an upgrade to the latest version of Sitecore XC.

You must add the override templates to existing sites manually. See Configure the override catalog templates. For information about creating a catalog template or enabling direct navigation for custom catalogs or upgraded solutions, see Configure direct navigation on existing sites.

Storefront backend

Issue

Solution

Contact profiles and engagement values not applied to contacts who navigate storefront categories and products.

When you use wildcards to render catalog items, contact profiles and page events with engagement values are not taken into consideration. In Sitecore Commerce (XC) 9.1 and greater, you can use direct navigation, in which case whenever a category or product is visited, the engagement value is applied. See Enable direct navigation.

Error when creating subsites (with virtual folders) that use the same hostname as the main site.

Open the SXA Site Manager and ensure the subsites (and virtual folders) are listed above the main site in the list.

How do I exclude APIs from being tracked in xDB in order to reduce the number of records being written to the database?

Modify the configuration settings to include an excludeUrlTracking section.

How do I configure product list caching?

See Configure the Product List cache.

How do I turn off HTML caching?

You can turn off HTML caching for the entire storefront site from the Content Editor by navigating to sitecore/Content/<tenant>/<site>/Settings/Site Grouping/<site>. On the Content tab, in the Flags section, clear the Cache Html check box.

I cannot find scripts that I have used in the past. Have they been renamed or moved?

Some scripts have been renamed or moved. See Extend the Storefront Branded theme.

Indexing of catalog items is taking a very long time.

Configure global commerce templates to inherit from the SearchableWithoutRelatedItems template; otherwise, the time it takes to index catalog items degrades exponentially to the size of the catalog.

Layout and components cannot be edited in the Experience Editor when opening the catalog item directly or when navigating to the catalog item. You can, however, edit some of the text.

Open the Category and Product pages in the Experience Editor by navigating to /sitecore/content/Sitecore/Storefront/Presentation/Partial Designs/Default Main Category Page or /sitecore/content/Sitecore/Storefront/Presentation/Partial Designs/Default Main Product Page Content

Alternatively, you can open the product detail page by clicking Details from the Promoted Products component.

The Promoted Products rendering does not render any content.

Because Commerce renderings are dependent on the Antiforgery meta rendering, you must include the Antiforgery meta rendering on all storefront pages to ensure that the Commerce renderings behave as expected.

Toolbox is empty and displays the message "No renderings can be added to the page at this time".

Open the Category and Product pages in the Experience Editor by navigating to /sitecore/content/<tenant>/<site>/Presentation/Partial Designs/Default Main Category Page or Content/sitecore/content/<tenant>/<site>/Presentation/Partial Designs/Default Main Product Page Content

Why is the ChildProducts property of the ProductListRenderingModel rendering (\Views\Commerce\Catalog\ProductList.cshtml) always NULL even when the category contains products?

The ProductList rendering was a Razor rendering previously and used the ProductListRenderingModel.ChildProducts property as the data source for the products list. In Sitecore 9.2, the rendering changed to use an Ajax call to load the products (from the CatalogController.GetProductList endpoint) and it now uses the ProductListJsonResult type instead of the ProductListRenderingModel type as the Ajax response that contains the ChildProducts property. Currently, the ProductListRenderingModel type is used only as a rendering model for the ProductList rendering to pass the configuration parameters, but no product data is carried through. The ProductListRenderingModel holds only the values of the UseLazyLoadingMaxPageSize, and CurrentCatalogItemId configuration parameters. The other properties are legacy and to be deprecated. The logic in the view file is also a legacy and is never executed because the Model.ShowNoResultMessage property is always set to false. For customization, debugging, or manipulation of the ProductList rendering data flow, use the ProductListJsonResult and the associated Knockout js model.

The VisitedProductDetailsPage event incorrectly sets the ProductId to the product item id (ItemId) in xDB when using wildcard navigation.

This issue is caused by the VisitedProductPage rendering, which passes the ItemId instead of the ProductId. To fix this issue, override the logic in the VisitedProductDetailsPageRepository.RaisePageEvent method. In the call for CatalogManager.VisitedProductDetailsPage, make sure to pass the ProductId instead of ItemId.

Storefront frontend

Issue

Solution

All countries/regions appear on the Storefront regardless of the configuration settings.

See Knowledge Base article.

Can I implement a different identifier for the Storefront sign-in?

Out-of-the-box the Storefront only supports email address as the identifier. Furthermore, if a customer enters the wrong email address when registering, there is no out-of-the-box account purging process that allows the customer to correct the email address.

"Catalog is not configured" error even though catalog has been configured.

Ensure you have defined navigation settings on the Commerce Navigation rendering variant.

Duplicate partial designs have the same name.

To change the display name, on the ribbon, on the Home tab, click Display name and change the name of the partial design. Alternately, in the Content Editor, select the partial design and, on the Content tab, in the Appearance section, type a new name in the Display name field.

Duplicate products display in search results.

See Configure catalogs in SXA Storefront and Configure site searches in SXA Storefront.

Emails being sent even though the cart has been purged from Commerce Engine.

Re-configure the PurgePolicy according to the timeout values in the campaign.

Forgot Password functionality does not work on SXA Storefront sites.

See Knowledge Base article.

I can access products from another site.

If you use the Catalog Item Container rendering, you can associate it with any item in content regardless of whether it is under the same tenant or not. Restricting access to a particular site requires changes to the LinkProvider.

When the path to the targeted item falls outside the current site, Sitecore uses the full path from /sitecore/Content.

Note

Aim to share content between sites only when they are under the same tenant.

Logo used in the Default Commerce Header partial design does not display in mobile/responsive mode when using the Storefront Branded theme.

Open the partial design in the Experience Editor, resize the browser window until the Storefront logo displays.

Navigation on the live storefront disappears when switching languages.

Verify that all languages have been published to the live site.

New item added to catalog does not appear on the storefront site.

See Manually update cache and indexing.

Performance on the storefront has degraded.

To alleviate this issue, enable CMS-only mode.

Performance when retrieving the contents of the mini-cart is poor.

Disable mini-cart recalculation.

Product appears in multiple categories resulting in duplicates in search results.

See Configuring catalogs and Configure site searches in SXA Storefront.

Is pricing or promotion information indexed and available when creating a Price or On Sale sort order?

No. It is not possible to sort search results by price or promotion.

SXA Storefront site is missing or displays without the navigation bar.

Verify the following:

  • Catalog and Start Navigation Category fields ( sitecore/Content/<tenant>/<site>/Settings/Commerce/Catalog Configuration) have the correct values if you are using the Commerce Category Navigation. See Select the categories to display on the storefront.

  • Host Name field (sitecore/Content/<tenant>/<site>/Settings/Site Grouping/<site>) is correct and set to sxa.storefront.com. If the host name value specified does not match the default storefront hostname, the default storefront site cannot load.

  • Override templates have been assigned. Step through the following topic: Walkthrough: Configure direct navigation on an existing site.

After which, publish your updates and rebuild the Solr index. You can find solutions to issues you are troubleshooting in the Installation Guide for On Premise.

I cannot configure the environment for an individual storefront site. Environment field is missing.

You can manually create the missing field, which will be used by Sitecore.Commerce.Engine.Connect.EngineConnectUtility.GetShopEnvironment.

In the Content Editor, go to /sitecore/Templates/CommerceConnect/Sitecore Commerce/Commerce Control Panel/Storefront Settings/Storefront/<site>. Right-click Commerce Control Panel and click Insert, Template field. In the Message dialog box, enter Environment and click OK.

In the Content Editor, go to /sitecore/Commerce/Commerce Control Panel/Storefront Settings/Storefronts/<site>, click the storefront site and, on the Content tab, in the Commerce Control Panel section, assign a value to the Environment field, for example, HabitatShops. Save and publish your changes.

Start the storefront site and verify that the HTTP OData calls the Commerce Engine and that the Environment HTTP header value is using the environment value you defined. If not, it should fallback to the one set in the C:\inetpub\wwwroot\xp0.sc\App_Config\Include\Y.Commerce.Engine\Sitecore.Commerce.Engine.Connect.config file, for example, <defaultEnvironment>HabitatShops</defaultEnvironment>.

Analytics

Issue

Solution

Report data does not include all customer activities.

This could be because the MaxPageIndexThreshold is too low. Once the maximum is reached, no further customer activity is recorded. See Page events, goals, outcomes, and custom analytics data.

Analytics do not include all orders.

For all orders to be included in analytics, you must deploy marketing definitions.

Visited product and category page events are not recorded in xDB.

In order for product or category visits to be recorded in xDB with detailed information on the category and product respectively, you must add the Visited Product Page rendering or the Visited Category Page rendering to the page. These renderings are not visible on the live storefront but are visible in the Experience Editor.

To add the Visited Category Page Events rendering to a category page for example, in the Content Editor, select the category page (sitecore/Content/<tenant>/<site>/Presentation/Partial Designs/Category Page Content) and, on the ribbon, on the Presentation tab, click Details. In the Layout Details dialog box, click MVC Layout and then in the list to the left of the dialog box, click Controls. In the list of controls, click Visited Category Page, and click OK. In the Layout Details dialog box, click OK again.

Important

Do not enable the events from the Optimization tab because custom values on the event will not be included in xDB.

Errors

Issue

Solution

ECM.Pages.Message. ImagesAreNotAvailable

The Commerce marketing automation campaigns use a pre-configured email template that includes a company logo. To resolve this error, upload the logo you want to use to the Media Library.

When performing searches in the Content Editor, SOLR error is recorded in the Search.log.

In the Content Editor, go to /sitecore/System/Settings/Buckets/Facets/CommerceConnect/Inventory. For each of the items listed (In-Stock Locations, Orderable Locations, Out-of-Stock Locations, and Pre-Orderable), on the Content tab, in the Facet section, clear the Enabled check box. On the ribbon menu, save your changes.

AJAX call to site virtual directory causes an error.

This occurs when the AJAX call appends the virtual directory folder name to the URL and the folder name contains upper case letters. To resolve this issue, change the folder name to lowercase.

Export of Storefront themes is only partially complete. Index.html files contain "Object moved" message.

Verify that the sxa.storefront.com certificate or a valid certificate for the hostname in use with the storefront is being used.

"GUID should contain 32 digits with 4 dashes" error when navigating or searching products.

Rebuild the master and web indexes.

Commerce marketing automation campaigns do not work.

To set up a Commerce marketing automation campaign, you must have xDB installed and enabled.

"The hostname could not be parsed" error when accessing the Checkout page.

In the Content Editor, go to sitecore/Content/<tenant>/<site>/Settings/Site Grouping/<site> . On the Content tab, in the Host Name field, ensure only one hostname is defined. Do not include multiple values separated by | (pipe), for example habitat.dev.local|storefront.dev.local. Instead, create multiple site definition items under Site Groupings.

"The layout for the requested document was not found" error occurs when trying to view page in the Experience Editor.

See Configure direct navigation on existing sites.

Unable to register accounts on newly created SXA Storefront sites.

Edit the JSON configuration file for the environment in use and set the value of the Domain property for the policy Sitecore.Commerce.Plugin.Customers.CustomerPropertiesPolicy to include newly created domain names, which match the names of the Storefronts by default.

Do you have some feedback for us?

If you have suggestions for improving this article,