Hi there!
We are running into perfomance issues when we are using product items on our customer solutions.
The following method loads item group data from DB on every requests.
It would be nice if we could introduce caching of these product data retrieved from:
Dynamicweb.Ecommerce.Products.ProductItem.LoadItemGroupProducts() and Dynamicweb.Ecommerce.Products.ProductItem.LoadProductItems
Possible?
SQL (from LoadItemGroupProducts):
SELECT EcomProductItems.*, EcomProducts.* FROM EcomProductItems LEFT JOIN EcomGroupProductRelation ON EcomGroupProductRelation.GroupProductRelationGroupID = EcomProductItems.ProductItemBomGroupID LEFT JOIN EcomProducts ON EcomGroupProductRelation.GroupProductRelationProductID = EcomProducts.ProductID WHERE EcomProductItems.ProductItemProductID IN ('PROD117478','PROD124175','PROD2615','PROD118088','PROD114526') AND (EcomProductItems.ProductItemBomGroupID IS NOT NULL AND EcomProductItems.ProductItemBomGroupID <> '') AND (EcomProducts.ProductVariantID IS NULL OR EcomProducts.ProductVariantID = '') ORDER BY EcomProductItems.ProductItemSortOrder, EcomProductItems.ProductItemProductID, EcomProductItems.ProductItemID, EcomGroupProductRelation.GroupProductRelationSorting
Void LoadItemGroupProducts(System.Linq.ILookup`2[System.String,Dynamicweb.Ecommerce.Products.Product], System.String) (Dynamicweb.Ecommerce.dll) in :0
Void LoadProductItems(System.Collections.Generic.IEnumerable`1[Dynamicweb.Ecommerce.Products.Product]) (Dynamicweb.Ecommerce.dll) in :0
System.String ListProducts(Dynamicweb.Ecommerce.Products.ProductCollection, System.String, Boolean) (Dynamicweb.Ecommerce.dll) in :0
System.String GetProductsFromIndexQuery(Dynamicweb.Ecommerce.Frontend.ProductCatalogShowType) (Dynamicweb.Ecommerce.dll) in :0
System.String EcomRender() (Dynamicweb.Ecommerce.dll) in :0
System.String GetContent() (Dynamicweb.Ecommerce.dll) in :0
System.String GetModuleOutput(Dynamicweb.Content.Paragraph, Dynamicweb.Frontend.PageView) (Dynamicweb.dll) in :0
Void RenderParagraph(Dynamicweb.Rendering.Template, Dynamicweb.Frontend.ParagraphViewModel) (Dynamicweb.dll) in :0
System.String RenderParagraph(Dynamicweb.Content.Paragraph, Dynamicweb.Frontend.ContainerInfo) (Dynamicweb.dll) in :0
System.Collections.Generic.IDictionary`2[System.String,System.String] CreateContent(System.Collections.Generic.IList`1[Dynamicweb.Content.Paragraph]) (Dynamicweb.dll) in :0
System.Collections.Generic.IDictionary`2[System.String,System.String] CreateContent(Int32) (Dynamicweb.dll) in :0
Dynamicweb.Frontend.PageViewModel CreateInstance(Dynamicweb.Frontend.PageView) (Dynamicweb.dll) in :0
Void SetPageTemplateValues() (Dynamicweb.dll) in :0
System.String Output() (Dynamicweb.dll) in :0
Void ProcessRequest(System.Web.HttpContext) (Dynamicweb.dll) in :0