9.2.1.20 Release Notes

July 13, 2020

Enhancements

[ZPD-8991] - Provision To Enable Action Level Concurrent Request Handling

Shopper Experience

Znode now provides a provision to enable action level concurrent request handling. This will allow our clients to use this provision for any action(s) they want.

To implement this enhancement, 

  • Changes were made in Global.asax file

  • Following files were added:

    • ActionSessionStateAttribute.cs

    • SessionStateBehaviorControllerFactory.cs

[ZPD-10643] - Performance: Search/FullTextSearch API Optimization

Shopper Experience

Earlier, Search/FullTextSearch API used to respond slow when configurable products were searched. This was due to an unwanted database call, which has now been removed.

This will not only enhance the performance of the search and PLP but will also reduce the loading time of the search results displayed on the search results page.


To implement this enhancement, changes were made in the GetAssociatedProducts method of PublishProductHelper file.

[ZPD-10431] - Performance: Link Widgets

Shopper Experience

To improve the performance of the product list fetched and displayed in the link widget(s) on the PDP, a cache mechanism is implemented for WebStoreWidget/GetLinkProductList API so that the products available in the widgets can be cached. The products will then be fetched from the cache instead of the database, thereby improving the performance and reducing the loading time of the product list. 


To implement this enhancement, changes were made in  the following :

  • cache.config file of Znode.Engine.Api

OnPublishProduct method of ZnodeEventObserver.cs file


Note: The products cached for link widgets will get refreshed whenever any product is published directly or indirectly.


[ZPD-10432] - Performance: Keywords Redirect

Shopper Experience

To improve the performance of the web store search, a cache mechanism is implemented for Search/GetCatalogKeywordsRedirectList API so that the data from the Keywords Redirect can be cached. The data for the redirection URL will then be fetched from the cache instead of the database, thereby improving the performance and reducing the time required for the search to bring the results. 


To implement this enhancement, 

  • Changes were made in the following:

    • cache.config file

    • CreateSearchKeywordsRedirect, UpdateSearchKeywordsRedirect and DeleteSearchKeywordsRedirect methods of SearchService file

    • GetCatalogKeywordsRedirectList method of SearchCache file

  • OnKeywordsRedirectListChange method was added in ZnodeEventObserver.cs file


Note: The cached data from Keywords Redirect will get refreshed whenever any keyword redirect is added, updated, or deleted.

[ZPD-10434] - Performance: Cart Count

Shopper Experience

The count of products available in the cart is calculated and displayed on several pages. Earlier the count always used to get fetched from the database.

With this release, the count will be saved and fetched from the session for scenarios where there is no need for a DB call. This enhancement will not only improve the performance but also the experience of customers (shoppers) visiting the web store.


To implement this enhancement, 

  • Changes were made in the following:

    • GetCartCount method of CartAgent file

    • CartCount method of HomeController

  • ClearCartCountFromSession method was added in CartAgent file

[ZPD-10435] - Performance: Registering All Routes

Shopper Experience

Certain routes were identified which used to call the default route available in the route.config file. Due to which unwanted calls used to get initiated to SEO API, thereby making responses to the web store requests slower.

Therefore to improve the performance of the responses, the entries of such routes were added in the route.config file.

This enhancement has improved the performance of the web store.


To implement this enhancement, changes were made in the following:

  • Index method of the CategoryController file

  • RouteConfig.cs

[ZPD-10518] - Performance: JSON Minification

Shopper Experience

Earlier, API used to provide responses for properties with default or null values as well, which were not required. Due to which the size of responses used to increase, causing load on the network.

Therefore to avoid unwanted properties in response, JSON minification is introduced in Znode, which makes responses light. Also when initiating a request to the API, a Minified-Json-Response header will be set in the request and API will return the minified JSON if this header is present in the request.

This enhancement will reduce the load on the network.


To implement this enhancement, 

  • Changes were made in the following:

    • SetHeaders and SetMinifiedJsonResponseHeader methods of BaseClient file

    • InsertIntoCache method of BaseCache file

    • CreateOKResponse method of BaseController file

    • Global.asax.cs file

    • Web.config file

  • Following were added:

    • MinifiedJsonResponseHeader property and SetMinifiedJsonResponseHeader method were added in of BaseClient file

    • ToJson method in ApiHelper file

    • MinifiedJsonResponse property in ZnodeApiSettings file

    • ZnodeHttpHeaders file

    • GetHeaderFormattedString and GetHeaderValue methods in ZnodeHttpHeaders file

    • MinifiedJsonResponse property in ZnodeWebstoreSettings file

    • CreateOKResponse method in BaseController file


Note: Minified-Json-Response header will be set only for web-store requests

[ZPD-10582] - Performance: Donut Caching For Logged-In Users

Shopper Experience

Earlier, to improve the performance of the web store, a Donut cache mechanism was implemented for all the highly usable web pages (like the home page, product pages, category pages, etc) so that they can be served directly from the cache instead of the database.

This provision was available for guest customers (shoppers) but now will be available for logged in customers (shoppers) as well.


To implement this enhancement, changes were made in the following files:

  • ZnodePageCache

  • HomeController

  • CategoryController

  • ContentPageController

  • ProductController

  • _Layout.cshtml

  • ProductList.cshtml (for Maxwell’s Hardware theme)

[ZPD-10584] - Performance: Web Store Widgets

Shopper Experience

Ajax calls are used for Home page and product detail page widgets. When these pages are loaded for the first time, all the widgets request data simultaneously, causing the slowness.

Therefore to reduce the loading time and improve the performance of the widgets, non-Ajaxified calls will be initiated in scenarios where Donut caching is enabled.


To implement this enhancement, 

  • Changes were made in:

    • _Homecontent.cshtml

    • Event.min.js

  • The following widgets were converted to WidgetPartialAuto format:

    • LinkProducts widget

    • SubCategory (CategoryGrid) widget

  • A new method WidgetPartialAuto was added in HTMLExtensions.cs file


Note: Ajaxified calls will be initiated when Donut caching is disabled. 

[ZPD-10711] - API Cache Durations

Shopper Experience

The cache duration of all keys is set to 60 minutes.


To implement this enhancement, changes were made in the cache.config file of Znode.Engine.API

[ZPD-10779] - CurrentPortalCacheDuration Key Cache Duration

Shopper Experience

The duration of the CurrentPortalCacheDuration cache key is set to 20 minutes.


To implement this enhancement, changes were made in the web.config file of Znode.Engine.Webstore.

[ZPD-10851] - Performance: Published Category List Details

Shopper Experience

To improve the performance of the category list details, a cache mechanism is implemented for PublishCategory/List API so that the category list details are cached. The details will then be fetched from the cache instead of the database, thereby improving the performance and reducing the loading time of the published category list details. 


To implement this enhancement, changes were made in the cache.config file of Znode.Engine.API


Note: The data cached will get refreshed whenever any category is published directly or indirectly.

[ZPD-10778] - Performance: SearchAgent.GetSeoUrlDetail Method Optimization

Shopper Experience

The SearchAgent.GetSeoUrlDetail method is optimized so that unnecessary calls to the API can be avoided when registered users log in to the web store.

This enhancement has improved the performance of the web store in cases of slug URLs.


To implement this enhancement, a new property searchClient was added and used instead of _searchClient in SearchAgent file.

[ZPD-10842] - Performance: Published Category Details

Shopper Experience

To improve the performance of the category details, a cache mechanism is implemented for PublishCategory/GetPublishCategory API so that the category details are cached. The details will be then fetched from the cache instead of the database, thereby improving the performance and reducing the loading time of the published category details. 


To implement this enhancement, changes were made in the cache.config file of Znode.Engine.API


Note: The data cached will get refreshed whenever any category is published directly or indirectly.

[ZPD-10327] - Performance: Data From ERP Connector On Webstore

Shopper Experience


Earlier, all the information from the ERP Connector used to get fetched from the database and then used to get displayed on the web-store.

To improve the performance of the web store, caching is implemented for information fetched through ERP so that if the required data is available in the cache, the web store will fetch the data from there instead of the database. This has improved the performance and the page loading time of the web store.


To implement this enhancement, 

  • GetActiveERPConfigurationFromCache method was added in ERPConfiguratorService.cs file

  • Changes were made in the following:

    • GetActiveERPClassName, GetActiveERPClassId and GetERPClassName methods of ERPConfiguratorService

    • cache.config file

Here is the API path: ERPConfigurator/GetActiveERPClassName


Important: It is essential to clear the API cache when changes are made in ERP configurations from the Znode admin application.

[ZPD-10324] - Performance : Permanent URL redirections

Shopper Experience


Earlier, all the information from the GetUrlRedirectList method (UrlRedirect controller) used to get fetched from the database and then used to get displayed on the web-store.

To improve the performance of the web store, caching is implemented for information fetched through the GetUrlRedirectList method, so that if the required information is available in the cache, the web store will fetch the permanent URL redirections from there instead of the database. This has improved the performance and the page loading time of the web store.


To implement this enhancement, changes were made in the cache.config file.

Here is the API path: UrlRedirect/GetUrlRedirectList


Important: It is essential to clear the API cache when any changes are made in 301 URL Redirects from the Znode admin application.

[ZPD-10325] - Performance: Search

Shopper Experience


All the catalog related information searched on the web-store uses the GetSEOUrlDetails method. 

Earlier, all the information from the GetSEOUrlDetails method (Search controller) used to get fetched from the database and then used to get displayed on the web-store.

To improve the performance of the web store, caching is implemented for information fetched through the GetSEOUrlDetails method, so that if the required information is available in the cache, the web store will fetch the data from there instead of the database. This has improved the performance and the page loading time of the web store.


To implement this enhancement, changes were made in the cache.config file.

Here is the API path: Search/GetSEOUrlDetails


Important: It is essential to clear the API cache when any changes are made in the SEO Friendly URL of products and categories from the Znode admin application.

[ZPD-10326] - Performance: Store Experience Data

Shopper Experience


Earlier, all the information from the GetDisplaySetting method (Portal controller) used to get fetched from the database and then used to get displayed on the web-store.

To improve the performance of the web store, caching is implemented for information fetched through the GetDisplaySetting method, so that if the required information is available in the cache, the web store will fetch the store experience information from there instead of the database. This has improved the performance and the page loading time of the web store.


To implement this enhancement, changes were made in the cache.config file.

Here is the API path: Portal/GetDisplaySetting


Important: It is essential to clear the API cache when any changes are made in the Store Experience of products and categories from the Znode admin application.

[ZPD-10328] - Performance: Catalog Data

Shopper Experience


All the calls initiated to fetch CatalogId were made for the database.

To improve the performance of the web store, caching is implemented for such scenarios, so that if the required information is available in the cache, the web store will fetch the information from there instead of the database. 


To implement this enhancement,

  • GetPortalListFromCache, GetPortalPublishCatalogFromCache and GetPortalPublishCatalogFromCache methods were added in the BaseService.cs file.

  • Changes were made in GetUserPortal, GetPortalCatalogId and GetAvailablePortals methods of BaseService.cs file.


Important: It is essential to clear the API cache when any changes are made in the store URLs or when the store assignments of users are changed.

[ZPD-10331] - Performance: SEO Details From Web Store Cache

Shopper Experience


Earlier, to get the SEO information, the web-store used to initiate a call to check whether the required information is available in the API cache.

To improve the performance of the web store, the information will now be checked in the web store cache, so that the unnecessary call initiated to API can be eliminated.


To implement this enhancement,

  • GetSeoUrlDetailFromCache and GetSEODetailsFromAPI methods were added in SearchAgent.cs file

  • Changes were made in the GetSeoUrlDetail method of the SearchAgent.cs file.


Important: It is essential to clear the API cache when any changes are made in the SEO Friendly URL of products and categories from the Znode admin application.

[ZPD-10329] - Performance: Domain Information From Cache

Shopper Experience

Earlier, authorized domains for users in business frameworks were checked directly from the database.

To improve the performance of the web store, the information will now be cached so that if the required information is available in the cache, the web store will fetch the information from there instead of the database. 


To implement this enhancement, changes were made in the GetAutorizedDomain method of the ZnodeConfigManager.cs file.


Important: It is essential to clear the API cache when any changes are made in the store URLs or when the store assignments of users are changed.


Issues Resolved

[ZPD-10611/ZLMC-1347] - Web Store - When an item is added via the Quick Order pad, and then the shopping cart is updated, all products available in the shopping cart used to get removed.


To resolve this issue, changes were made in the CreateCart method of the CartAgent file.

[ZPD-10985/ZLMC-1456] - Duplicate content was getting displayed in Site Map when two same URLs were added under store with and without www.


To resolve this issue, changes were made in Znode_GetProductFeedList,Znode_GetContentFeedList and Znode_GetBlogFeedList & Znode_GetCategoryFeedList stored procedures.

[ZPD-11043] - Admin - Maxwell’s Hardware & Maxwell’s Fine Foods Themes - Configure button was not getting displayed for configuring Slider and Advertisement Banner in Home Content under Store Experience.


To resolve this issue, changes were made in ExtractFromString method of WidgetHelper.cs file

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.