October 11, 2019
Enhancements
Secondary User For PayFlow
Administration / Commerce
PayFlow Payment Gateway provides the provision of primary and secondary users where the primary user has all the access levels and the secondary user has limited access levels.
Earlier in Znode, only the provision of adding the primary user was available when creating a PayFlow payment method.
With this release, a new field User is introduced for PayFlow gateway, which allows admin users to associate a secondary user to the payment method.
To implement this enhancement, changes were made in the following files:
_Payflow.cshtml
Payflowcustomerprovider
Performance: Checkout Process
Shopper Experience
The code related to the Checkout process of the web-store has been optimized to a higher extent. This has increased the performance of the checkout process and the Checkout page.
To implement this enhancement, changes have been made in the following:
SetLoginUserProfile method of UserAgent.cs file
GetPortalApprovalDetails method of PortalService file
GetPortalApproverDetailsById call from CalculateShipping method of CartAgent file
ImageHelper file
SetTrackingUrl, GetPaymentDetails, GenerateOrderNumber and UpdateChangedAddressWithCart methods of CheckoutAgent file
GetSaveCreditCardCount method
GetOrderDetails method of OrderService file
GetPortal method in ZnodeShippingHelper file
SetOrderDiscount method
CustomerShipping method
Updated SetOrderData method
Performance: Log4Net Logging
Commerce
Earlier, generated logs used to immediately get saved in MongoDB simultaneously as they were generated. This continuous process used to sometimes slow down the response time of the web request.
Therefore, to enhance the performance of Log4Net Logging, a BufferingForwardingAppender is introduced which stores a certain number of logs in-memory, and saves them in MongoDB once the buffer-size reaches the given limit.
To implement this enhancement, changes were made in the following files:
Znode.Engine.Admin - log4net.config
Znode.Engine.Api - log4net.config
Znode.Engine.webstore - log4net.config
Performance: Admin - Product List
Administration
The product list page of the Znode admin application has been optimized to a higher extent. This has not only increased the performance but also has reduced the loading time of the product list page.
To implement this enhancement, changes were made in the following stored procedures:
Znode_ManageProductList_XML
Znode_GetOrderByPagingProduct
Znode_GetPimProductAttributeInventory
Znode_GetProductsAttributeValue_newTesting
Performance: Admin - Inventory List
Administration
The inventory list page of the Znode admin application has been optimized to a higher extent. This has not only increased the performance but also has reduced the loading time of the inventory list page.
To implement this enhancement, changes were made in the Znode_GetSKUInventoryList stored procedure.
Performance: Admin - Order List
Administration
The order list page of the Znode admin application has been optimized to a higher extent. This has not only increased the performance but also has reduced the loading time of the order list page.
To implement this enhancement, changes were made in the Znode_GetOmsOrderDetail stored procedure ZnodeUserPortal table.
Issues Resolved
[ZPD-6679/ZLMC-668] - Admin & Web store - Previously, the tax used to get calculated on the discounted subtotal amount. This implementation broke due to another implementation and was therefore fixed by making changes in the following files:
ZnodeCartPromotionAmountOffOrder.cs
ZnodeCartPromotionManager.cs
ZnodeCartPromotionPercentOffOrder.cs
ZnodeTaxSalesTax.cs
ZnodeProductBaseEntity.cs
ZnodeShoppingCartItem.cs
Web.Config
ZnodeCartPromotionType.cs
[ZPD-7166/ZLMC-784] - If the Server name and DB instance name is different then the Import and Publish process used to fail.
To resolve this issue, changes were made in the following stored procedures:
Znode_ImportData
Znode_GetPublishProcessStart
[ZPD-7504] - The log messages for MongoDB operations were not proper and were therefore changed through MongoRepository.cs file.
[ZPD-7150/ZLMC-780] - Admin - Swatch Images were not getting generated through Generate Image Scheduler.
To resolve this issue, changes were made in the GetImageList method of the ImageHelper file.
[ZPD-7259/ZLMC-810] - Username was not getting displayed in the Account Activation email notification sent to the customer (shopper).
To resolve this issue, changes were made in the SendAccountActivationEmail method of the UserService file.
[ZPD-7266/ZLMC-771] - Web store - No products were getting displayed on the PLP of the web store when filters were removed on Page 2 of PLP.
To resolve this issue, changes were made in the following:
GetFilterResult and RemoveFacet methods of Search.ts
GetZnodeSearchRequest method of SearchService file
[ZPD-7290/ZLMC-825] - Web store - Invalid validation message used to get displayed on the Checkout page when an incorrect address was added by the customers.
To resolve this issue, changes were made in the WebStore_Resources file.
[ZPD-7292/ZLMC-822] - Web store - Apart from the applied promotion name, other promotions with similar names were getting displayed on the Order page.
To resolve this issue, changes were made in the following:
GetCouponPromotionMessages method of ZnodeOrderHelper.cs file
SetOrderCoupons method of ZnodeShoppingCart.cs file
[ZPD-7303/ZLMC-838] - There was no Import Validation Logic to handle improper characters in Price List CSV and was therefore added by making changes in the Znode_ImportPriceList stored procedure.
[ZPD-7316/ZLMC-845] - Admin - Sitemap XML generation process did not display any loading sign or the success notification message.
To resolve this issue, changes were made in List.cshtml file.
[ZPD-7317/ZLMC-844] - Admin - NULL entries for SEO details used to get saved in the DB.
To resolve this issue, changes were made in the following:
ddSEODetials method of SEOService.cs file
GetPublishProductForSiteMap method of PublishProductService.cs file
CreateSEODetails method of SEOSettingAgent.cs file
Admin_Resources.Designer.cs file
[ZPD-7343/ZLMC-850] - Admin - Import process used to hang with large data and while the import was in progress, admin users were not able to update the details of products.
To resolve this issue, changes were made in the following stored procedures:
Znode_GetImportTemplateLogs
Znode_ImportPimProductData
[ZPD-7406] - Web store - Incorrect discounted amount used to get displayed on the Cart page for grouped products and add-ons.
To resolve this issue, changes were made in the GetCartSubTotal method.
[ZPD-7411] - Web store - Elements of profile base catalog were not getting displayed on the web-store due to the previously cached content.
To resolve this issue, a new method ValidatePageCache was added on OnActionExecuting.
[ZPD-7413] - Admin - Admin users were not being able to save updated roles and access rights.
To resolve this issue, changes were made in RoleAgent.cs file.
[ZPD-7437/ZLMC-870] - Web store - When a shipping method is changed, the shipping method or the loader did not use to show up immediately.
To resolve this issue, changes were made in the following:
ShippingOptions method of Checkout.ts file
_ShippingOptions.cshtml file
[ZPD-7438/ZLMC-869] - Web store - The Subtotal and Total amounts were not getting updated when the product quantity was updated.
To resolve this issue, changes were made in Cart_shoppingCart.cshtml file.
[ZPD-7476] - Web store - Invalid and unwanted search validation messages were getting displayed on the web-store.
To resolve this issue, changes were made in the CategoryContent method of the CategoryController file.
[ZPD-7498/ZLMC-887] - The Orders/GetOrderDetailsForInvoice API endpoint did not use to return all of the desired details for bundled products because of some missing properties.
To resolve this issue, changes were made in the FormalizeOrderLineItems method of the ZnodeOrderHelper.cs file.
[ZPD-6742/ZLMC-673] - Web store - Customer credit card was not getting charged because the order was not getting captured at Authorize.Net’s end and was getting captured at Znode’s end.
To resolve this issue, changes were made in the following:
BindOrderData method of OrderService.cs file
SubmitOrder and CapturePayment methods of CheckoutAgent.cs file
OrderViewModel.cs file
[ZPD-7384] - Web store - When customers used to upload the PO attachment through the Checkout page, internally, this process used to break.
To resolve this issue, a new method GetAppHeader was added in the CheckoutAgent.cs file and was used (instead of AjaxHeadersModel) in the GetAjaxHeaders action of CheckoutController.
[ZPD-7430] - Web store -When full page caching is on, the navigation, sorting and facets did not work properly.
To resolve this issue, changes were made in the following:
IsSkipCacheQueryStringExists method of ZnodePageCache.cs file
CategoryContent method of CategoryController.cs file.
[ZPD-7388] - There was a hardcoded value to display the default number of products on the PLP page.
To resolve this issue, a key was added in the web.config file using which developers will be able to set the value for the default number of products displayed on the web-store.
To implement this issue, changes were made in the following:
DefaultPageSizeForPLP key was added in ZnodeWebstoreSettings file
GetSearchProperties method of CategoryController file
[ZPD-7387] - Web store - Sort By Price sorting option used to sort only the products available on the same page of the PLP page. This issue has been resolved for a scenario when Index based settings are turned on at Catalog level.
To resolve this issue, changes were made in the following:
SaveProductInMongo method of PublishHelper.cs file
FullTextSearch, GetZnodeSearchRequest and GetSearchResponse methods of GetSearchResponseSearchService file
ElasticSearchRequest.cs file
IZnodeSearchRequest file
GetAllProducts and SetElasticProduct methods of SearchProductService.cs file
Important: This issue still exists for scenarios when Index based setting is off at the Catalog level.