How can a customer pay for a "pending order"?
When using Paypal Standard, a user can create an order, select Paypal for payment, then abort the order either by using the "cancel and return to website" link on the Paypal page OR by simply closing the Paypal window before completing the transaction. Sitefinity still creates an order and even sends an email out telling the customer the order was accepted and shows "Payment" Paypal which further leads the customer to believe they have a valid order.
If the customer does want to complete the order, they have no way to access that "pending order" to complete the payment. So, wondering what if anything people are doing out there when this happens? Clearly we can cancel the order, email the customer and tell them the order is cancelled but that's pretty unconventional, not to mention time consuming.
Suggestions?
Thanks.
Hi Barbara,
This is the default behaviour and in if the order is placed but not paid - it should be recreated. You can also configure notifications for such pending orders. If needed they could be Deleted or Canceled in the backend. However there is a Feature Request logged for configure this here:
http://feedback.telerik.com/Project/153/Feedback/Details/160814-checkout-add-option-to-disable-enable-email-sent-to-customer-upon-order-placed
As workaround for this issue (intercept the emails and not send them) you can create a custom class to send emails for the eCommerce module:
using System;using System.Linq;using Telerik.Sitefinity.Web.Mail; namespace SitefinityWebApp public class EmailSenderCustom : StandardDotNetEmailSender public override void Send(string from, string to, string subject, string message) //Implement interception here and if the email is coming from the eCommerce skip the call to base.Send base.Send(from, to, subject, message); protected void Application_Start(object sender, EventArgs e) Bootstrapper.Initialized += Bootstrapper_Initialized;void Bootstrapper_Initialized(object sender, Telerik.Sitefinity.Data.ExecutedEventArgs e) if (e.CommandName == "Bootstrapped") ObjectFactory.Container.RegisterType<IEmailSender, EmailSenderCustom>("Standard"); private void SendEmail(string from, string to, string subject, string body) IEmailSender emailSender = EmailSender.Get(); emailSender.SendAsync(from, to, subject, body, null);