I would notify a possible bug, the product name in return request email template not working correctly and show the prodcut name only in english (Standard lang).
The effected email template: NewReturnRequest.CustomerNotification The effected Token name: %ReturnRequest.Product.Name% The store languages: English, Arabic >> Arabic token for the product name not working. The store nop version: 4.30
To me, it seems that the possible bug is that the MessageTokenProvider does not resolve a localized product name:
var product = _productService.GetProductById(orderItem.ProductId); ... tokens.Add(new Token("ReturnRequest.Product.Name", product.Name));
whereas other services (e.g. PDFService) would lookup the localized product name //product name var name = await _localizationService.GetLocalizedAsync(product, x => x.Name, lang.Id);
As a test, check that your product does have a Name value on the first tab, and try again.
(or for that matter, in other Add...Tokens methods in MessageTokenProvider.cs ;)
publicvirtualvoid AddProductTokens(IList<Token> tokens, Product product, int languageId) { tokens.Add(new Token("Product.ID", product.Id)); tokens.Add(new Token("Product.Name", _localizationService.GetLocalized(product, x => x.Name, languageId)));
It seems as if the same AddReturnRequestTokens is used by both CustomerNotification and StoreOwnerNotification. It probably needs additional (and maybe optional) LanguageId param/