wunpac wrote:Hello everybody.
I'm using PayPal express for the first time, with nop 2.4, technically it seems to work, but I don't understand something:
HOW can we leave checkout process BEFORE asking shipping address, and BEFORE user choose shipping method?
- Total is depending on shipping method
- Shipping method is depending on shipping country
Can you force shipping country in PayPal?
Thanks for your help
There is a sacrifice to be made here. The best and most effective implementation of PayPal Express uses the customers shipping address from their PayPal account. This saves them from having to type it again (especially handy for mobile).
Therefore the user must be transferred to PayPal for authentication before starting checkout.
At this point there are 2 options.
1. UserComit=true
add this parameter to the post URL and the user will not return to the merchant site to choose shipping method and confirm address. Everything is done on the PayPal site. The payment details are returned to the merchant at the end. I CAN'T STRESS ENOUGH HOW EFFECTIVE THIS METHOD IS! Customers love the convenience of ordering in 2 clicks. Our business success has a huge amount to do with this method of paying.
The trade off - You need to use a default shipping method and cost. You could even call the shipping method "PayPalExpressShipping" and charge an amount that covers your bases. Ours is free shipping so no problem for us.
Possible compromise - be able to select shipping method in the cart before giving address. Use the default location setting to get shipping methods. If the order is placed and the shipping method isn't valid, deal with this once the order is placed and you have the customer’s order and money.
2. UserComit=false
emit this parameter from the post URL and after the user has been authenticated on PayPal site they will return to the merchant to confirm address and shipping method before going back to PayPal to finish payment.
The trade off - customers drop out in droves at this stage. Our Google Analytics tells us that something about this flow that puts people off. Especially if they have to start typing addresses that already exist in their PayPal account.
Possible compromise - When the user returns to the merchant after logging in, pull the shipping address from their PayPal account to populate those fields for them. I'm not sure if this is possible.
Now that the holiday shopping season is about to really pick up, this plug-in is going to become a big priority for me. I've spent some time this past week scanning some of the code, and I already fixed an issue that initially was causing the 'amount to be charged is 0' error. In our situation, this was caused by the site-wide discount promotion that we had running. I'll get into more specifics in a post very soon.
For now, my major focus is going to be on the issue that 'wunpac' discussed in his post 9 months ago. How do we set UserCommit=true and also provide real shipping options to the customer? I did some research, and PayPal actually has an API specifically for this problem. I found the solution in the following PDF:
https://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf
To quote the document (from page 69):
"The Instant Update API is a server call to your web service that provides an instant update to
the PayPal review page. It enables you to specify a URL for PayPal to call your web service
with the buyer’s shipping address, so you can provide the buyer with more detailed shipping,
insurance, and tax information.
NOTE: The Instant Update API enhances the Express Checkout flow from the shopping cart
page.
The Instant Update API works as follows:
1. As the buyer logs in to PayPal, the PayPal server calls a URL to your web service with the
buyer’s default shipping address as stored in the PayPal system.
2. Your callback server responds with the available shipping options for that address, along
with any insurance options and tax adjustments on the order.
3. PayPal displays this information on the Review page so buyers can choose from the
options.
4. The buyer’s final choices are returned in the GetExpressCheckoutDetails response."
My goal is to implement this functionality in the PayPal Express plug-in as soon as I can. If anyone would like to help in this process, then go ahead and reply back here.