We're excited to announce that Solidus has a new payment method - Solidus PayPal Commerce Platform! This extension allows you to accept PayPal and credit/debit card payments directly to your business PayPal account, and adds some handy new features to Solidus.
Well, dear reader, I'm glad you asked! In addition to adding an easy-to-use payment method, this extenion comes packed with three new features:
We've added a system where any payment method can add a "payment setup wizard" - easing the onboarding process. For this extension, what that means is that you can hook your website to your PayPal account at the click of a button.
Now your users can check out directly from your cart! This streamlined process will take the user to PayPal. During the checkout process, PayPal will collect the necessary shipping information and send it back to your server. Upon confirming the payment, the user will be taken to the order confirm page, where they can complete their order.
In addition to adding payment buttons to the cart, we've also added them to the product page! Unlike the cart button, product payment buttons act as an "instant checkout" feature - this will take the user to PayPal for payment, and the order will be created and populated will all necessary information. If your users just want the one item, they can skip almost the entire checkout process. Like the cart button, on payment, the user will be directed to the order confirmation page for final confirmation.
This extension is now the default payment method of Solidus. What that means is when you install new versions of Solidus, you'll see a prompt during installation asking you what payment method you'd like to install. Currently, those options will be "paypal" - installing this extension - and "none" - installing none. Any payment methods can be added to this list with no problems, but PayPal will be the default option.
The integration process is described in the extension README, but here are some common gotchas and possible surprises:
Because addresses coming from PayPal do not require phone numbers, we've turned off phone number validation for addresses. You can override this, but you'll need to create a method for getting a phone number from your customers before or after returning from PayPal.
When a user clicks the PayPal button, Solidus sends lineitem, adjustment, shipping and tax totals to PayPal. If these totals don't match, PayPal will not allow checkout. If you've done extensive modifications to anything involve the order total, you'll want to review the paypalorder model for accuracy.
When a user logs in or changes their address on PayPal, PayPal sends a partial shipping address (missing only street address) and expects us to return an estimate for shipping. We simulate this change in the shipping rates controller, and return what the shipping would be for that address. Then, after the user confirms their payment, we get the finalized address from PayPal. This shouldn't cause you any issues unless you have a lot of customization around shipping rates, but you should keep it in mind just in case.
This extension has been sponsored by PayPal and implemented by Nebulab. PayPal will pay a commission fee to the maintainers for each order placed through the new payment gateway.
This extension lays the groundwork for the future of Solidus payment methods. With the default payment system, you won't have to mess with your gemfile to install your payment extension. With the setup wizard, you'll be able to set up your payment provider at the click of a button. And with product payment buttons, installing an instant checkout feature is easier than ever.
We've worked hard on this extension, and we hope it lives up to your expectations. If you find room for improvement, feel free to open an issue or PR!
And as always, make sure you stay up-to-date on the latest Solidus news by subscribing to the Solidus newsletter.
Thanks, Solidus Community! You rock!