One of the things that shocked me when I started working with Virtuemart was the fact that if you use Paypal (I would guess probably 80% of Virtuemart users?), a customer attempting a transaction on your site would receive an order confirmation email BEFORE their Paypal payment was even processed!!
That’s not how an ecommerce site shoudl behave and thankfully, there’s a solution!
How VM ‘works’
Here’s the out of the box Virtuemart (VM) behavior:
- Customer adds product(s) to cart
- Customer checks out
- Once all info is confirmed, customer is sent to the Paypal processing page and as soon as that happens, VM send a order confirmation email with a status of ‘pending’ to the customer!!!
- Hopefully customer completes their transaction with Paypal
- Then the customer receives another order confirmation email with a status change of ‘confirmed’
- Customer is really confused!
Now, if at any point, Paypal doesn’t let the customer complete their transaction (and Paypal LOVES to kick your customers down!), the user is returned to your site and they still have an order in your system even though they have never completed the transaction. Now, Pending vs. Confirmed might make sense to you VM/Joomla developer, I can assure you that it confuses the hell out of your customer! Customer is confused, looses trust in your product/service, contacts you and the viscious support cycle of life begins!
How every other cart solution works
- Customer does not successfully complete a transaction, customer does not get a receipt email.
- No need for anything beyond step 1
The Swiss to the rescue!
Thankfully, a company called B-Planet has graciously created a patch that stops VM from creating the order until Paypal confirms the payment. Then the transaction (that’s stored in a temporary table) actually gets moved to a real order. If the user’s payment on Paypal’s page is unsucessful, no order is created.
You can find B-Planet’s patch here. It’s free and their support forum is also pretty good. The install is relatively easy as long as you follow every step to the letter (and of course, ALWAYS make a backup before you do and never work on the live site).
I’ve been using it for 6+ months and it’s worked great. I even had someone modify the patch to generate a Google Ecommerce transaction. My modified file can be found in my post on their forum. Keep in mind that this patch is for version 1.1.5 of VM but B-Planet’s has apparently, a version of the patch working with VM 1.1.6 here (I have not tested it yet).
It’s a pain to have to do hacks like that to get Joomla’s “standard” cart solution to behave properly… It makes upgrading much harder and at the end of the day is always a hack. It’ll satisfy my needs for the time being and I hope it works out for you too.