1. Issue :Ravensburger [49417] 3.5. ORDER FAILURE – E-MAIL
2. Issue: Versalert 3.7. PRODUCT LIST/DETAIL PAGE – REQUEST TO ADD/DELETE ITEM FROM FIXED ORDER LIST
Ravensburger [49417] 3.5. ORDER FAILURE – E-MAIL
1. create a Template Name
public virtual string GetOrderFailedMailTemplateName() { return "OrderFail"; }
2.Get Email Address and Create Order Mail Method on ExtendedCheckoutApi.
/// <summary> /// [49417] 3.5. ORDER FAILURE – E-MAIL /// This method will send the Order Failed Mail /// </summary> /// <param name="order">order</param> /// <param name="basket">basket</param> /// <param name="errorMessage">error message</param> private void SendFailedOrderMail(IOrder order,IBasket basket, string errorMessage) { //Set Order Total values from Basket Values. SetOrderTotalPrice(order, basket); //Get Admin Setting Order Failed Email address var settings = (CommerceFrameworkBase.ShopSettings.GetSettings(SettingsKeys.General)); var ws = ObjectFactory.Create<Sana.Commerce.Shop.IWebsiteSettings>(); ws.Initialize(settings); var list = ((ExtendedWebsiteSettings)ws).OrderFailedEmailAddress.Split(';'); if (list != null) { List<MailAddress> addressList = new List<MailAddress>(); foreach (var item in list) { if (!string.IsNullOrEmpty(item)) { addressList.Add(new MailAddress(item)); } } ((Sana.Commerce.Order.Order)order).OrderFailedErrorMessage = errorMessage; var templateName = GetOrderFailedMailTemplateName(); var mail = ServiceManager.GetInstance<ExtendedOrderConfirmationHelper>().GetOrderFailureMail(templateName, order, null, addressList); ShopApi.Mail.Send(mail); } }
3.
ExtendedOrderConfirmationHelper > GetOrderFailureMail
Email creation has done from here.(set order template, Replace tags,BCC,CC, receipts )
public virtual MailMessage GetOrderFailureMail(string templateName, IOrder order, NameValueCollection additionalReplaceTags = null, IList<MailAddress> recipients = null) { var shopContext = ShopContext.GetCurrent(); var settings = shopContext.Settings; var fromAddress = new MailAddress(settings.FromEmailAddress); var replaceTags = GetFailOrderReplaceTags(shopContext, order); if (additionalReplaceTags != null) { additionalReplaceTags.AllKeys.Each(tagName => replaceTags.Add(tagName, additionalReplaceTags[tagName])); } var additionalData = new Dictionary<string, object>(); additionalData.Add("OrderDetails", CreateOrderDetailsModel(shopContext, order)); if (recipients == null) { recipients = GetEmailAddresses(shopContext, order); } var mail = ShopApi.Mail.Render(fromAddress, recipients, templateName, replaceTags, additionalData); if (settings.BccEmailAddresses != null) { settings.BccEmailAddresses.Each(bcc => mail.Bcc.Add(new MailAddress(bcc))); } return mail; }
4.
ExtendedOrderConfirmationHelper > GetReplaceTags()
protected virtual NameValueCollection GetFailOrderReplaceTags(ShopContext shopContext, IOrder order) { var currentUserAccount = CommerceFramework.ShopAccounts.GetShopAccount(shopContext.ShopAccount.Id, true); var customer = CommerceFrameworkBase.Customers.GetCustomer(shopContext.CommerceContext.AccountId); var replaceTags = base.GetReplaceTags(shopContext, order); replaceTags.Add("CUSTOMER_NAME_LABEL", CommerceFrameworkBase.SanaTexts.GetSanaText("CustomerNameLabel", "Customer Name")); replaceTags.Add("CUSTOMER_ID_LABEL", CommerceFrameworkBase.SanaTexts.GetSanaText("CustomerIdLabel", "Customer Id")); replaceTags.Add("SHOPACCOUNT_EMAIL_LABEL", CommerceFrameworkBase.SanaTexts.GetSanaText("ShopAccountEmailLabel", "Shop Account Email")); replaceTags.Add("SHOPACCOUNT_NAME_LABEL", CommerceFrameworkBase.SanaTexts.GetSanaText("ShopAccountNameLabel", "Shop Account")); replaceTags.Add("CUSTOMER_NAME", customer.Name); replaceTags.Add("CUSTOMER_ID", customer.Id); replaceTags.Add("SHOPACCOUNT_EMAIL", shopContext.ShopAccount.Email); replaceTags.Add("ORDER_ERROR_MESSAGE", ((Sana.Commerce.Order.Order)order).OrderFailedErrorMessage); return replaceTags; }
5. Add new email Template
~/Views/Default/MailTemplates/OrderFail.cshtml
6.Update Language packs Mail templates
\Ravensburger\@data\packages\LanguagePack_de-DE.9.3.5.0\MailTemplates
2. Versalert 3.7. PRODUCT LIST/DETAIL PAGE – REQUEST TO ADD/DELETE ITEM FROM FIXED ORDER LIST
ExtendedProductListController > SendRequestToAddToFixedOrderList
3.Bachofen : QuoteEmailAddress
If Need to Create Admin setting also :- search :
Add Admin Setting , Add new Email Section to Admin
add field to ExtendedStoreInfoModel ,ExtendedWebsiteSettings