Fixing checkout - failed orders are confusing!!!

I have seen this discussed before. How hard would it be to set up cs-cart like other carts and give users some feedback when their credit card is declined? :confused:



A customer’s card was just declined because of an incorrect CVV number. However, she didn’t have a clue why. The order appeared to complete, but with a Failed status. It doesn’t matter how much information I add to the failed page, the order is already recorded in the customer’s account. Not to mention people do not read messages. They only see what appears to be a completed order. Most customers (mine anyway) are leary of duplicate orders in their account because they think they’ll have to pay for them all. 9 times out of 10 they do not try again!



I think we really need to push cs-cart to fix this. Is this already in the bug tracker as a feature request? If so, please direct me to it, and let’s all add our input. If not, let’s compile a request and get this moving.

There is this item on the roadmap:

[QUOTE]Order placement improvement (the ability not to create an order if a real-time payment has failed)[/QUOTE]

[url]https://www.cs-cart.com/roadmap.html[/url]



There is also this really old entry in the bug tracker which touches on this issue:

[url]http://forum.cs-cart.com/vbugs.php?do=view&vbug_id=847[/url]



You might add any comments you have to that request and ask them to change the version number.



Bob

This is the most basic principle of any shopping cart. (not to process order without successful payment)… I cannot believe this is even an issue. Obviously there were some lazy programmers somewhere on the CS-Cart team. LOL

Would it really be that hard to come back to a page to say,



Unfortunately your payment has been declined, this could be due to an incorrect expiry date or CVV number.



Please enter your details again checking carefully.



If your payment fails again, please contact us so we can help you further.

[quote name=‘mdj101’]Would it really be that hard to come back to a page to say,



Unfortunately your payment has been declined, this could be due to an incorrect expiry date or CVV number.



Please enter your details again checking carefully.



If your payment fails again, please contact us so we can help you further.[/QUOTE]



I can’t understand how a cart system like CS-Cart can even let this continue…It is a joke…seriously.



This might be enough for me to turn off my trial and go else where. The ordering process is so critical not just for system integrity but also to ensure customers don’t get frighten and turn off to go else where and never come back to my site…!



Why should a order be processes with an order no. when the payment whether be it paypal, credit card, who care has failed…the only message that should get emailed to the user is to notify their order has been unsuccessful and try again…NOT send them a order email and create an order administration nightmare for the store manager.

I am pretty sure they DON’T get an email, but in their My Account area, an order is recorded. I made some changes so it says in huge red letters, “PAYMENT FAILED”. The part I find unacceptable is that it doesn’t tell the user WHY. On the backend, I can see that it was declined and a specific error such as CVV2, invalid card number, etc. but the user doesn’t see that. I added a message explaining the payment was unsuccessful and the card may have been declined due to any of those reasons, most commonly the 3 digit code and then I explain where to find the number, etc. I have noticed failed orders have decreased since I added even more to that page (which means the order fails and then it converts to a successful order… YAY.)



The only advantage to the way cs-cart does it is that the order stays there in their My Account area so they can re-try it at a later time. It is just confusing to the customer because other carts do not work this way.

Ogia,



Thanks for your comment & feedback.



I see this issue as an annoying factor in a almost perfect cart system.



I think this part of the order should be a bit more descriptive and logical to ensure users are not troubled or confused as to what might have happened to thier order. I can see confusion & frustration from a user perspective.



I have submitted a issue in bug tracker and hopefully with contribution from everyone, we could make this a priority for the developers. Pls contribute to the link below:



[url]http://forum.cs-cart.com/vbugs.php?do=view&vbug_id=1732[/url]

[quote name=‘sellon’]Ogia,



Thanks for your comment & feedback.



I see this issue as an annoying factor in a almost perfect cart system.



I think this part of the order should be a bit more descriptive and logical to ensure users are not troubled or confused as to what might have happened to thier order. I can see confusion & frustration from a user perspective.



I have submitted a issue in bug tracker and hopefully with contribution from everyone, we could make this a priority for the developers. Pls contribute to the link below:



[url]http://forum.cs-cart.com/vbugs.php?do=view&vbug_id=1732[/url][/QUOTE]



Added my $2 Bucks! Maybe we should start a donation for this particular fix. I think it would be huge for all of us for them to move this to #1 priority fix and money talks.

[quote name=‘Ion_Cannon’]Added my $2 Bucks! Maybe we should start a donation for this particular fix. I think it would be huge for all of us for them to move this to #1 priority fix and money talks.[/QUOTE]

It should not be necessary to bribe them and, in fact, would probably backfire down the road as they see delay as a type of extortion. Of course, if that happens, many users will bail.



They have acknowledged this is as an important issue. The best bet is to pile on in the Bug Tracker so that they realize that a lot of people are frustrated. The Bug Tracker is the only user voice we really have: politely make your points so the developers understand what a serious issue this problem is.



I think this may be fixed sooner rather than later (though not likely in 2.0.13).



Bob

The checkout is a really poor design. I’m sure they will fix this issue I just hope it is sooner rather than later. They really should have a small team of experienced website store owners (that use CS-Cart) be their consultants on the desired operation of features. I know not everyone has the same idea on how things should work but this would at least make the functionality acceptable.



I made changes to my cart so that on a failed/declined order it does not proceed to the final page, instead it goes back to the payment page and displays a notification message error box that says exactly why the payment failed based on the response my processor sent back to me. Then the customer can fix whatever was wrong with their order (address, ccv code, cc number, etc) and resubmit it. If they corrected the issue then the order is placed and they get their email, if not then they remain on the payment page for another crack at fixing the information until it works. My fix is not perfect but closer to what I want.



It took me a bit of time to understand how the cart works and then I made my changes, added code, and finally got what I am happy with until an official fix is made. I do hope that CS-Cart fixes this issue to operate much like I made it to, mostly because I like this behavior and secondly because updates will be a huge pain if I have to keep changing code in the checkout to get it back to working how I want.

[quote name=‘adodric’]The checkout is a really poor design. I’m sure they will fix this issue I just hope it is sooner rather than later. They really should have a small team of experienced website store owners (that use CS-Cart) be their consultants on the desired operation of features. I know not everyone has the same idea on how things should work but this would at least make the functionality .[/QUOTE]



To right it would only need to be about 5-8 - more might hinder - and i am sure they could find this from the forum.



Do they even have the structure in place for this type of input and development.

[quote name=‘adodric’]The checkout is a really poor design. I’m sure they will fix this issue I just hope it is sooner rather than later. They really should have a small team of experienced website store owners (that use CS-Cart) be their consultants on the desired operation of features. I know not everyone has the same idea on how things should work but this would at least make the functionality acceptable.



I made changes to my cart so that on a failed/declined order it does not proceed to the final page, instead it goes back to the payment page and displays a notification message error box that says exactly why the payment failed based on the response my processor sent back to me. Then the customer can fix whatever was wrong with their order (address, ccv code, cc number, etc) and resubmit it. If they corrected the issue then the order is placed and they get their email, if not then they remain on the payment page for another crack at fixing the information until it works. My fix is not perfect but closer to what I want.



It took me a bit of time to understand how the cart works and then I made my changes, added code, and finally got what I am happy with until an official fix is made. I do hope that CS-Cart fixes this issue to operate much like I made it to, mostly because I like this behavior and secondly because updates will be a huge pain if I have to keep changing code in the checkout to get it back to working how I want.[/QUOTE]



if you could also put forward your case and pain in the bug tracker would be appreciated. The more we can get on the bug tracker, the sooner this might get escalated in their development efforts.



[url]http://forum.cs-cart.com/vbugs.php?do=view&vbug_id=1732[/url]



Also, would have the code and what you actually changed to achieve your current workaround?

[quote name=‘sellon’]

Also, would have the code and what you actually changed to achieve your current workaround?[/QUOTE]



I would greatly appreciate this also as I am just not technically expert with Smarty and PHP to figure it out on my own. Currently, I have the re-order option turned off for my cart so I don’t get people trying to place the same order again and again due to payment issues.



Thank you!!

Added my 2 pence worth to the tracker.

[quote name=‘adodric’]The checkout is a really poor design. I’m sure they will fix this issue I just hope it is sooner rather than later. They really should have a small team of experienced website store owners (that use CS-Cart) be their consultants on the desired operation of features. I know not everyone has the same idea on how things should work but this would at least make the functionality acceptable.



I made changes to my cart so that on a failed/declined order it does not proceed to the final page, instead it goes back to the payment page and displays a notification message error box that says exactly why the payment failed based on the response my processor sent back to me. Then the customer can fix whatever was wrong with their order (address, ccv code, cc number, etc) and resubmit it. If they corrected the issue then the order is placed and they get their email, if not then they remain on the payment page for another crack at fixing the information until it works. My fix is not perfect but closer to what I want.



It took me a bit of time to understand how the cart works and then I made my changes, added code, and finally got what I am happy with until an official fix is made. I do hope that CS-Cart fixes this issue to operate much like I made it to, mostly because I like this behavior and secondly because updates will be a huge pain if I have to keep changing code in the checkout to get it back to working how I want.[/QUOTE]



Ditto to the above posters, any chance you could post how you did these changes? It sounds like that is exactly what the dev team needs to do in 2.0.13, but if you’ve already done it, I am sure lots of people would love to see it (including me)! :smiley:

Not only that, cs-cart might be able to implement the already-tested code into a future upgrade. In the bug tracker they claim they are working on this, but say it will take a lot of time to provide and test a solution. It could possibly speed things up if they had some code to work with.

Okay, I finally got sick enough of my customers complaining that I made the changes I think should be done for the orders.detailed page (the page shown after checkout and ANYTIME a customer views a failed or declined order.



I have made this change for all of my customers (auto updates). If there is enough interest, I would consider packaging it up for general distribution as an addon. People would have to be willing to pay $50 for it to be worth my while to spend the time to package it up.



A screenshot of the results is attached (actually forum doesn’t like the size so screenshot is here: [url]http://www.ez-ms.com/private/repay_top.png[/url]). It is all done through hooks and language variables.



Summary:

When a customer places an order that gets a failed (F) or declined (D) status, the following occurs when the checkout is (erroneously) complete.


  1. if the status is F or D then a pop-up is displayed telling them of the problem and giving them advice on how to rectify it. Company contact info (email and phone) is also displayed. For other statuses there is no change to the current layout or design.


  2. The “repay” box is placed at the top of the screen so it is NOT out of view.


  3. The “reorder” and “print invoice” buttons are NOT displayed.



    This behavior will occur ANY TIME a failed or declined order is viewed by the customer. Not just immediately following checkout.



    Technical Description:
  4. Add a hook to views/orders/details.tpl named ‘repay_top’ around the button code in orders/details.tpl.


  5. Add override template hook that looks at the status and if it’s D or F, it includes the repay.tpl template instead of the ‘reorder’ and ‘print invoice’ buttons.


  6. Add override hook code for the ‘repay’ hook at the bottom of the page that looks at the order status. If F or D, it disables the ‘repay’ at the bottom of the screen. Otherwise it calls the repay.tpl file.


  7. Add a “post controller” to addons//controllers/customer/orders.post.php which also checks the status and generates the appropriate fn_set_notification() call. The controller also calls a function that generates the appropriate content for the notification box nicely formatted. It takes about 4 new language variables to do this properly.



    So what happens is this:

    addons//controllers/customer/orders.post.php is invoked after the standard orders controller is run. It checks the status and if F or D calls the function to format the message to be displayed. It then calls fn_set_notofication(). The controller returns and the “view” is called. It first encounters the ‘repay_top’ hook at the top of the page and the associated override file replaces the button code with the repay.tpl template. When it gets to the bottom of the page, the status is looked at again and the repay is only displayed if the status is NOT F or D (and allow repay is set).



    Not too difficult of logic. It also requires a css change to change the height of the notification box from 165 to auto.



    Let me know if anyone is interested in this and that it can be worth my while to package it up in a portable manner.



    tony

Why has tony’s post been removed?

[quote name=‘mdj101’]Why has tony’s post been removed?[/QUOTE]



:confused: Thanks for noting that - I would have missed it. Was there something wrong with making an addon to fix this? I wish there were more addons to fix issues like this… maybe this is why I never find them??

It was deleted by him as it was supposed to be in the 2.x forums. Mods havn’t touch anything to my knowledge.