When an order is not an order

The short version:

Joomla shopping carts, please STOP sending pending order emails to customers BEFORE they had a chance to actually complete their transactions with Paypal (yes, I kind of expected this from VirtueMart but from you redShop? Really?)

The long version:

I’ve been looking for an alternative to Virtuemart for a while now and having spent some time looking at some other more ‘activel’ solutions, I zeroed in onto redComponent’s redSHOP.

To put things in context, I’m running an estore that sells large downloadable files to non-technical users all over the world (keep in mind the term “non-technical” since it is key to this discussion). Furthermore, being based in France and selling worldwide, I’ve settled on Paypal to handle all transactions since it’s very cost effective compared to any French based credit card processing options. We all tend to have a love/hate relationship with Paypal but even with all the pains and troubles we have to deal with, it is still the most used form of payment after Credit cards and usually works very well.

Back to redSHOP… From the several hours I have spent with it so far, I REALLY like it. It’s a modern Joomla app, it’s templating is very customizable, it’s backend management is pretty powerful and it’s very store owner focused (built-in Google e-commerce/googlebase support, full featured import/export of data, nice followup coupons/email promotions, etc…) Most importantly, it is extremely well supported via their forums/email and ALL that for a relatively low cost (max of 250 Euros/year).

I thought I had found the golden goose when after some tests, I ran into the 2 major flaws I had experienced with VM and had spent hours working around. I half-expected these issues from VM which is a pretty old project but from a brand new shopping cart, I was baffled. One of them had to do with how downloads are handled after purchase (which I’ll maybe put in another post at a later date) and, the big one, was the transaction workflow when paying via Paypal. After spending time in the redComponent forums and an exchange on Twitter with Ronni (the head of redComponent), I was pretty much told that this was “the way it should be”. Based on the last several years reading the VM forums and my experiences with other shopping carts, let me tell you why I don’t agree with this…

The VM/redSHOP out of the box workflow

  1. Customer adds product(s) to cart
  2. Customer checks out
  3. Once checkout is confirmed, customer is sent to the Paypal processing page and before the page refresh, an order invoice with a status of ‘pending/unpaid’ is emailed to the customer
  4. Hopefully customer completes their transaction with Paypal (which then notifies the store via IPN that the transaction has completed)
  5. Customer now receives a “Your order status has changed” email (telling them that the order is now paid)
  6. Customer receives a confirmation email from Paypal that their payment has gone through
  7. Customer receives a download email

If by any chance, the buyer does not complete the payment when on the Paypal page then they are left in Limbo with a order of status pending when they have not completed any transaction from their point of view.

ordernotplaced

Over the years, I’ve heard VM developers defend this workflow and, even last week, Ronni from redComponent said to me: “its the correct workflow :) quite a few orders gets in problems on the way – no confirmation before payment means a lost order :)” and ” 2-5% of all real payment attempts fail – no confirmation those orders are lost…”

Sure, from the point of the store owner, there’s a risk of loosing a sale but instead, why don’t we focus on creating a streamlined and simple purchasing experience for the other 95 to 97% ?

A confused buyer is not a happy user

Confused users make for bad purchasing experiences and these most often result in 2 things: confused non-returning customers or more support since these users will send you mail like (“I think I got charged twice”). I’ll argue that these will end up costing more than the potential of loosing 2-5% of sales.

Sadly, this is another example of designing for the corner cases :-(

In the VM community, there’s a pretty popular hack from b-planet that will hold off on creating an order until payment confirmation from Paypal is received. It’s so popular that it has it’s own forum and that the VM forum thread that initiated it has more than 150 posts! Unfortunately, it is a hack and therefore is an added burden on shop owners trying to update their cart and conflicts with other addons… It’s a bandaid solution.

But don’t just believe me…

  • Look at all the forums posts on this subject on the VM and redShop forums (a quick list can be found at the bottom of this post)
  • Look at other large shops out there: both from a dev point of view (like ZenCart or Shopify) and from a consumer point of view (Apple, Amazon, Adobe, etc…).
    None of these stores send you orders (even on the pending kind) before you have had a chance to pay… And what is good for Amazon tends to be good for me!

So… Joomla cart developers, how about we do this instead:

When a user pays via Paypal (or any external payment page like Google Checkout or 2CO), give him a chance to pay before you send him any email. If the transaction fails, let’s say if Paypal has not confirmed the transaction within 5-10 minutes after the user left your site, you could:

  1. just send an email with the pending order to the store owner so that they can choose to contact the potential buyer
  2. send an special type of email to the buyer saying something like: “we noticed you tried to purchase …” and offer steps to help them out

at the very least, if you are in the camp that believes users should receive a pending order email the instant they hit the pay by Paypal button, then make it an option in the store config for those of us who prefer not to confuse our buyers.

NOTE. Just wanted to make sure that even though I use redShop in this example, redShop is one of the best thing that has happened to Joomla since K2 and I have nothing but respect for Ronni and his team…

 

What do you guys/gals think about this?  I’d love to hear your opinions…

 

Reference:

B-planet’s VM Patch + VM thread that started the project

Here’s a small sample of threads by confused store creators:

http://redcomponent.com/forum/61-main/35464-answerchange-when-order-mail-is-sent-to-customer#38290

http://redcomponent.com/forum/18-subscriber-support/44551-answered-order-status#44551

http://redcomponent.com/forum/63-feature-requests/42732-pausedoption-to-control-when-order-email-is-sent#42732

http://forum.virtuemart.net/index.php?topic=80537

http://forum.virtuemart.net/index.php?topic=86677

http://forum.virtuemart.net/index.php?topic=78777

http://forum.virtuemart.net/index.php?topic=66035  (look at the quote from Singa in VM’s dev team)

http://forum.virtuemart.net/index.php?topic=66523 (even Dev team recommends installing b-planet patch)

http://forum.virtuemart.net/index.php?topic=57795