I recently installed PayPal Express, set everything up and fully tested. Everything works except the checkout process seems to be out of order.
Normal process with credit cards and other payment methods: Cart -> Shipping -> Select Payment Option -> Confirm Order (and enter cc info) -> Success Page
The Paypal Express process is: Cart -> Select Payment Option -> Payment through Paypal -> Confirm Order Page -> Success
Shouldn't the Paypal Express process be the same as other processes?: Cart -> Select Payment Option -> Confirm Order Page -> Paypal Payment - > Success
I have two concerns about the current process:
1) The current Paypal process relies on the user to click the confirm button on the confirm order page once returned from Paypal. I don't know about you, but a user (maybe an inexperienced user) might think they are done when they are done once payment is made to Paypal and not realize they need to click this final button.
2) The confirm order page gives the user the opportunity to make changes to their order, shipping options, and payment information. Shouldn't this be done before going to Paypal?
no. When customer click "confirm" button extension send request to Paypal API to finish transaction. Any changes in the cart will direct customer to paypal side again. Customer must see what amount will be charged anyway.
The current process actually hits PayPal twice, once after the payment option choice and once again after the confirm button is clicked. Granted, the actual checkout with Paypal takes place when the confirm button is clicked. If changes are made from the confirm order page they do reflect on the actual order record in both the cart and at Paypal. However, wouldn't it be more efficient to go to Paypal once the order is actually confirmed?
mmm...i think more efficient way is using "paypal pro" extension for all registered customers.
PP Express payment method allow to get customer payment data (such as name and address) from Paypal API. It's a one-button-pay-without-registration-process way.
Just to see what would happen, I commented out the unction: onControllerPagesCheckoutPayment_ProcessData() in the core file and did follow the process of Payment -> Confirm -> Paypal. The only difference is that Paypal did not show the cart contents only the total. This is because the product data is not being sent to Paypal in the responses/confirm function. An easy fix.
The only thing I can figure is the designed process is intentional and there is good reason why the process is as it is. Please enlighten me or let me before I make changes to the extension.
Data of paypal and registered customer's data can be different. For ex. address. Address affects to taxes. Taxes affects to total amount. What address is correct in that case? Yes, shipping address. And it can be changed by customer before order confirmation. Anyway, there a lot of reasons to do checkout process by so "strange" way.
so... if you prefer "an easy fix" - do it on your own risk.
We tried to make an extension to cover all difficult cases of checkout such as promotions, discounts etc. it's a common approach. But you can change it by your own view.
p.s. let me know if i understood something wrong:)