PayPal Express. Reasons to add as a standard payment method

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
12 years ago
wunpac wrote:

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).

...


Thanks Darren for this summary and for sharring your code, it's clear now that PayPal Express can't cover all situations.

I have published a new codeplex project for PayPal Express plugin, it is available here :

http://noppaypalexpress.codeplex.com/

Also available in Extensions tab :
https://www.nopcommerce.com/p/395/paypal-express-plugin.aspx

Still in developpement, all comments are welcome here : http://noppaypalexpress.codeplex.com/discussions
You can also participate in development using mercurial, if you need help to configure your mercurial connexion, ask help!
11 years ago
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.
11 years ago
I also just wanted to make a note that (according to the document) PayPal actually requires stores to implement PayPal Express with two different workflows.

The first workflow is the one that has been discussed here: a PP button is clicked on the shopping cart page, the user reviews their address and payment method on the PP site, and finally confirm the order.

The second workflow requires the user to start the normal nopCommerce checkout process, then choose PayPal Express during the Payment method step of the normal checkout. The user only logs into PayPal to confirm their payment method, but most of the checkout is done on your site.

I also plan to implement this second workflow, however, finishing the implementation of the 1st option with the Instant Update API will be my top priority.
11 years ago
PayPal Express has been broken ever since we upgraded to v2.60.  We are now at v2.65.

Our customers want PayPal, but we can't seem to get it to work.  Any suggestions?
11 years ago
Just keep an eye on this thread as I'll hopefully have an update very soon. I was successful in getting the Instant Update API working (just tested successfully 5 minutes ago), but it was a rush job so the code is currently a little sloppy. Also, I didn't implement any code to add Tax to orders since it's not currently a requirement of ours. I'll take a quick look to see if I can implement it in short time, and if so then I'll go ahead and do it, if not then I'll leave that for someone else to finish.

Also, I should note that we're still on version 2.60 so hopefully it won't require any additional changes for 2.65
11 years ago
I have this mostly completed, I just need to know how I can update the code on CodePlex. I'm sure some of the code can be cleaned up as well, but for now it does what we need. Maybe after the holidays I'll circle back around to get this working as a Payment method option during the normal checkout process.
11 years ago
ThreadRock - What exactly are you doing?  Are you fixing PayPal Express?  Do we know what was broken?  Do we know who wrote the original plugin version?
11 years ago
Yes, I'm fixing the PayPal Express Plug-in. I figured out a bunch of things that were broken. I believe if you read the first few pages of this thread it should say who originally created this plugin
11 years ago
Threadrock wrote:
I have this mostly completed, I just need to know how I can update the code on CodePlex. I'm sure some of the code can be cleaned up as well, but for now it does what we need. Maybe after the holidays I'll circle back around to get this working as a Payment method option during the normal checkout process.


Hi Threadrock,
If you need help to push your updates on codeplex you can tell me, or even send me your plugin by mail and I will push updates myself.

Thanks for your contribution!
Nicolas
11 years ago
nicolas.muniere wrote:
I have this mostly completed, I just need to know how I can update the code on CodePlex. I'm sure some of the code can be cleaned up as well, but for now it does what we need. Maybe after the holidays I'll circle back around to get this working as a Payment method option during the normal checkout process.

Hi Threadrock,
If you need help to push your updates on codeplex you can tell me, or even send me your plugin by mail and I will push updates myself.

Thanks for your contribution!
Nicolas


Thanks!

Just PM me an email address where I can reach you and I'll send it to you right away.

We went live with our implementation last night!
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.