First of all, congratulations on the plugin and thanks for putting it out there! I know it's been a lot of work and it's also come a long way.
I'm *very* glad to hear that you're on board with fixing the checkout page. Let me see if I can give you my Cliff's Notes. This is the site: http://bit.ly/3doMu
Main issue is usability, not functionality. Whatever the solution is, it needs to be put through the rounds with a slew of users in a real usability test using many different configurations (i.e. user must be logged in/not). I can see that the functionality is all there. Now it needs to be taken to the next level with a user-centric design and testing process.
Another major issue is the funky mix between page refreshes ("Update" or forced refresh) and AJAX events... very confusing to users. Example: shipping calculator. User must change country, wait for automatic refresh, change state, wait for refresh, enter postal code and press "update." Then, the user gets a list of shipping options, and I found that users intuitively press "Calculate" after changing the shipping option, causing it to default to the original setting, which was, needless to say, very frustrating. I added the explicit text "(only press after changing postal code)," which seems to have resolved the issue for most users, but this is obviously a pretty ugly hack.
I think the majority of the issues boil down to this: The events that each action fires off are not intuitive for users, and if there's any page load latency, this issue is exacerbated. Especially with the heavy load that the plugin puts on the server, page load time issues are probably a lot more common than not, and we had to do a lot of work to get the site running like it is right now.
These are the specific problems my users were having:
-Top of form (Review) is not laid out intuitively. Unclear what button to press after changing a field, or what the effect of pressing that button or changing the field would be.
-Coupon code does not change total before tax and shipping (I removed this field and added text "(appears in final total below)."
-Calculate Shipping Price: AJAX and page refresh issue noted above, pressing "update" after changing shipping option issue noted above
-I couldn't get the display of the subtotals and grand total right below the shipping options to work right. AJAX wasn't updating grand total in the middle of the page after user changed shipping option. Instead, I added "Subtotals (grand total at bottom of page):" and did some hacking around with the presentation of both the subtotals and the grand total until it worked, but I consider what you see on the page sub-optimal. There should be a grand total underneath the subtotals, which updates, and another grand total at the bottom that also updates. I also found that with the shopping cart widget in the sidebar, the AJAX to refresh the total in the content area didn't work, so I had to remove the widget.
-"Enter your Email Address" is out of place and a lot of users miss it and get frustrated when the page refreshes because of the error. Many don't see the error notification. I recommend integrating this with the "Billing/Contact Details" section so it is part of the order flow. I know there are some issues with logged in users on this, but the page should work better for sites that don't require users to be logged in.
-"Same as Billing" option doesn't work if someone checks it and then unchecks it... user can't subsequently modify the Country or State or Province fields.
-In shipping options, country and state populate from the shipping calculator, but postal code doesn't. The user can change the postal code subsequently, causing problems fulfilling the orders.
Hopefully these notes will help your team in the next iteration of the checkout.
Thanks again for the plugin and keep it up!
Justin