Just a note of thanks to the GrandNode team for making the Azure CDN integration so simple to get up and running. I set 3 AzureBlob config variables in appsettings.json, and it just worked. All images are now automatically uploaded to blob storage, saving us disk space on the web server. Images & thumbnails on the front-end are being served up from the Azure CDN. Very impressed.
We started with a new 4.40 database. We wrote a custom product import process to load our products, product tags, and categories. We use the following code to create new product tags:
var productTag = _productTagService.GetProductTagByName(tagName);
if (productTag == null)
//add new product tag
productTag = new ProductTag
Name = tagName,
Count = 0,
Deleting a product tag for a product is throwing a null reference exception if a tag contains uppercase letters.
System.NullReferenceException: Object reference not set to an instance of an object.
at Grand.Web.Areas.Admin.Services.ProductViewModelService.SaveProductTags(Product product, String productTags) in C:\dev\Grand.Web\Areas\Admin\Services\ProductViewModelService.cs:line 192
Also, adds lowercase tags to product record, essentially duplicating tags.
Thanks for the quick turnaround.
When deleting a product tag on the product edit admin page and saving changes, the tag is not getting removed from the product. Verified on local copy and GrandNode 4.40 demo site.
Congrats Patryk and Team! Look forward to working with the new release.
To sort product attributes by display order in the shopping cart, I also added an OrderBy to the following code in ShoppingCartViewModelService.cs:
public virtual string ParseProductAttributes(Product product, IFormCollection form)
string attributesXml = "";
#region Product attributes
var productAttributes = product.ProductAttributeMappings.OrderBy(x => x.DisplayOrder);
In v4.20 product attributes are not sorted by display order on both the product details page and quick view.