Page 1 of 1

Paypal Concept v1

Posted: Sun Nov 23, 2008 6:58 pm
by Qphoria
This is the first attempt at a proposed change to the paypal checkout design.
- This is not a full contrib. This is only a version meant for testing to decide whether or not to include it in 0.7.9Final.
- Please test with 0.7.9 RC4
- Please let me know if there are any problems or any other feedback you may have
- For the advanced, please test the IPNcallback stuff. I have been unable to get that working with my localhost dev setup.

We'd like to get this into 0.7.9 Final if it is widely accepted by the community as a better option for the paypal design, but there could be something I missed. (This was coded by a father of triplet babies! 3hrs of sleep per night for the win!)

The sooner we get this tested and either accepted or rejected, the sooner we can get 0.7.9 out and possibly a better paypal design.

Old way:
- Checkout from cart, choose shipping & payment.
- Temp Order saves on checkout_confirm page load
- Click confirm on checkout_confirm to goto paypal
- If enabled, Paypal IPN updates the temp order into the order table with "Pending" state
- Alternately, clicking "Return to Merchant" updates the order, but not the status so it stays "Paid Unconfirmed"

Problems:
- Going straight to payment page from confirm page leaves no validation. Customer "could" bypass payment and still get order into system.
- If IPN not working or Return to Merchant not clicked. Order is lost
- Order is entered by state not changed if IPN disabled and return to merchant is only validation.
- Contrib is reliant on IPN and/or Customer clicking "Return" or order will be lost

New way:
- Checkout from cart, choose shipping & payment.
- Temp Order saves on checkout_confirm page load
- Click confirm on checkout_confirm now goes to checkout_process
- Checkout_process:
---- validates that the page was loaded from the confirmation button being pressed, and not directly accessed.
---- saves order to db with a "Paid Unconfirmed" state
---- clears the cart
---- goes to checkout_pending
- Checkout_pending will automatically submit form to paypal
---- Clicking "Cancel and return" will run the new "undo" feature which deletes the order, restores the cart, & pretends they never went to paypal
---- Successful payment using IPN will update the order to "Pending" or whichever state you enter in the language file for "final_order_status"
---- If IPN is disabled, Clicking "Return to Merchant" will also update the order into "Pending" state assuming the "payment_status" field is one of the "successful" values

Solutions:
- Validation is done on the checkout page to ensure proper checkout steps are followed
- Order never lost
- Order restoration on cancel prevents confusion and mistakes
- Not reliant on IPN only

Install:
- Drop the entire 'catalog' structure into your server at the 'catalog' level. Overwrite when asked. (Backup first!)

Re: Paypal Concept v1

Posted: Thu Dec 04, 2008 3:05 am
by motumba
Obviously on the technical side this version is a big improvement. Unfortunately I do not have a test environment that can receive a paypal callback either to test for that.

On the frontend, my concerns about the new checkout_pending page is that there is too much text for the user to read (perhaps with really slow connections it is alright - I only have 2Mb and I can hardly read half of it before I am being redirected), and that perhaps this could potentially unease some users that something went wrong.

What I mean is that when a page disappears before you have a chance to see what it was displayed it is only natural to think "what happened? - what did this say? - did something go wrong?" etc.

It also doesn't help that there is no progress indicator for the checkout process so at any given time the user does not know at which step out of how many s/he is currently, and how many to go. (maybe a thought for a future version)

Perhaps it would be an idea to inform the user in the checkout_confirm page, after the "I agree to the Terms & Conditions" and before the Continue button that "By clicking the button bellow your order will be processed and you will be subsequently redirected to the payment processing page" and then in the checkout_pending page display something like "Your order is being processed - Please wait..." in the heading and in the content something like "In a few seconds you will be automatically redirected to the payment processing page to complete your order" and the button below with a value like "Click to proceed to payment page if not redirected automatically" - I think these would suffice.

-----

Also, in the PayPal page I now see the paying by PayPal account option only (by logging in) - I cannot see the "Don't have a PayPal account?
Use your credit card or bank account (where available). Continue" and the array of visa etc logos that I could see in v0.79 (I'm now using 0.79 RC4)

You can also create an account by clicking the "Sign up for a PayPal account and continue checkout" but I believe at this stage most people who don't want to create a PayPal account (some because don't even know what it is and therefore automatically afraid to go there) will leave the process.

I think that ideally the first page the user sees as they arrive in PayPal from opencart sould be that PayPal page that displays two columns; one to enter your debit/credit cart billing info if you wish to pay by card, and one to log in to PayPal if you want to pay by PayPal (an example can be seen in http://www.experimedia.net/ - put a cd in your cart and click "Checkout with PayPal" - notice also how you don't need to login to the e-shop at all since you choose to pay by PayPal).

Re: Paypal Concept v1

Posted: Thu Dec 04, 2008 3:23 am
by Qphoria
It is very important that you do no use this version anymore as it has been defunct and replaced with a better version in the latest opencart SVN
motumba wrote: On the frontend, my concerns about the new checkout_pending page is that there is too much text for the user to read (perhaps with really slow connections it is alright - I only have 2Mb and I can hardly read half of it before I am being redirected), and that perhaps this could potentially unease some users that something went wrong.
This was my concern too. In fact, I had originally used javascript to hide the text if autoredirect was working and only show that text when it was disabled. I believe the plan is to add a jscript timer to that page to count down before redirecting now.

There is a progress indicator on the svn version of opencart already anyway
motumba wrote: Perhaps it would be an idea to inform the user in the checkout_confirm page, after the "I agree to the Terms & Conditions" and before the Continue button that "By clicking the button bellow your order will be processed and you will be subsequently redirected to the payment processing page" and then in the checkout_pending page display something like "Your order is being processed - Please wait..." in the heading and in the content something like "In a few seconds you will be automatically redirected to the payment processing page to complete your order" and the button below with a value like "Click to proceed to payment page if not redirected automatically" - I think these would suffice.
That comes down to language and the store owner can decide what message he wants to put on that page.
-----
motumba wrote: Also, in the PayPal page I now see the paying by PayPal account option only (by logging in) - I cannot see the "Don't have a PayPal account?
Use your credit card or bank account (where available). Continue" and the array of visa etc logos that I could see in v0.79 (I'm now using 0.79 RC4)

You can also create an account by clicking the "Sign up for a PayPal account and continue checkout" but I believe at this stage most people who don't want to create a PayPal account (some because don't even know what it is and therefore automatically afraid to go there) will leave the process.

I think that ideally the first page the user sees as they arrive in PayPal from opencart sould be that PayPal page that displays two columns; one to enter your debit/credit cart billing info if you wish to pay by card, and one to log in to PayPal if you want to pay by PayPal (an example can be seen in http://www.experimedia.net/ - put a cd in your cart and click "Checkout with PayPal" - notice also how you don't need to login to the e-shop at all since you choose to pay by PayPal).
I think that is a paypal thing, I don't know if we can add better "create an account" info to their page.

Re: Paypal Concept v1

Posted: Thu Dec 04, 2008 5:20 am
by JohnnyO
I can set you up with an ftp account on my server if you would like to test this??

Re: Paypal Concept v1

Posted: Thu Dec 04, 2008 8:09 pm
by JNeuhoff
notice also how you don't need to login to the e-shop at all since you choose to pay by PayPal).
Wouldn't that be a PayPal Express scenario? If the customer hasn't yet logged into OpenCart, how would OpenCart calculate the shipping costs and taxes without knowing the customer's shipping address?