internal void UpdateOrderStatus(Order order, OrderStatusName orderStatusName, PaymentStatusName paymentStatusName) { OrderStatusName oldOrderStatus = order.OrderStatus; PaymentStatusName oldPaymentStatus = order.PaymentStatus; order.PaymentStatus = paymentStatusName; order.OrderStatus = orderStatusName; //if (order.PaymentStatus == PaymentStatusName.Completed && !(order.OrderStatus == OrderStatusName.Paid || order.OrderStatus == OrderStatusName.Completed)) //{ // order.OrderStatus = OrderStatusName.Paid; //} order.Save(); if (oldPaymentStatus != paymentStatusName) { //--- Payment Status has changed... if (paymentStatusName == PaymentStatusName.Completed && WA.Parser.ToBool(storeContext.CurrentStore.GetSetting(StoreSettingNames.SendPaymentCompleteEmail)).GetValueOrDefault(true)) { // send "PaymentCompleted" email EmailController emailController = new EmailController(); TokenHelper tokenHelper = new TokenHelper(storeContext); Dictionary <string, string> emailTokens = tokenHelper.GetOrderTokens(order, true); string emailResponse = emailController.SendEmailTemplate(EmailTemplateNames.PaymentCompleted, emailTokens, order.CustomerEmail, order.UpToStoreByStoreId); } } if (oldOrderStatus != orderStatusName) { // TODO Order Status has changed... send emails ?? } }
private void SendOrderEmails(CheckoutResult checkoutResult, Order submittedOrder, Dictionary <string, string> orderTokens) { try { EmailController emailController = new EmailController(); string adminEmailResponse = emailController.SendEmailTemplate(EmailTemplateNames.OrderReceivedAdmin, orderTokens, storeContext.CurrentStore.GetSetting(StoreSettingNames.OrderCompletedEmailRecipient), storeContext.CurrentStore); if (WA.Parser.ToBool(storeContext.CurrentStore.GetSetting(StoreSettingNames.SendOrderReceivedEmail)).GetValueOrDefault(true)) { string emailResponse = emailController.SendEmailTemplate(EmailTemplateNames.OrderReceived, orderTokens, submittedOrder.CustomerEmail, storeContext.CurrentStore); if (!string.IsNullOrEmpty(emailResponse)) { checkoutResult.Warnings.Add(string.Format(@"Something went wrong when we tried to email your order receipt. {0}", emailResponse)); } } } catch (Exception ex) { checkoutResult.Warnings.Add(string.Format(@"Something went wrong when we tried to email your order receipt. {0}", ex.Message)); } }
internal void SendShippingEmail(Order order) { // send "shipping update" email... try { TokenHelper tokenHelper = new TokenHelper(this.storeContext); var tokens = tokenHelper.GetOrderTokens(order, true); EmailController emailer = new EmailController(); emailer.SendEmailTemplate(EmailTemplateNames.ShippingUpdate, tokens, order.CustomerEmail, this.storeContext.CurrentStore); } catch (Exception ex) { Exceptions.LogException(ex); } }