A better Spree PayPal Express Extension.
Last updated on: September 12 at 09:28 AM
source code bug trackerThis is the official Paypal Express extension for Spree.
Behind-the-scenes, this extension uses PayPal's Merchant Ruby SDK.
Add this extension to your Gemfile with this line:
gem 'spree_paypal_express', github: 'spree-contrib/better_spree_paypal_express'
Install the gem using Bundler:
bundle install
Copy & run migrations
bundle exec rails g spree_paypal_express:install
Restart your server
If your server was running, restart it so that it can find the assets properly.
Go to PayPal's Developer Website, sign in with your PayPal account, click Applications
then Sandbox Accounts
and create a new Business
account. Once the account is created, click on the triangle next to its email address, then Profile
. The API Credentials
tab will provide your API credentials (probably). If this tab is blank, try refreshing the page.
You will also need a Personal
account to test the transactions on your site. Create this in the same way, finding the account information under Profile
as well. You may need to set a password in order to be able to log in to PayPal's sandbox for this user.
In Spree, go to the admin backend, click Configuration
and then Payment Methods
and create a new payment method. Select Spree::Gateway::PayPalExpress
as the provider, and click Create
. Enter the email address, password and signature from the API Credentials
tab for the Business account on PayPal.
Sign in to PayPal, then click Profile
and then (under Account Information
on the left), click API Access
. On this page, select Option 2
and click View API Signature
. The username, password and signature will be displayed on this screen.
If you are unable to find it, then follow PayPal's own documentation.
Same as sandbox setup, but change Server
from sandbox
to live
.
The PayPal Express Checkout has no less than 4.5 billion configuration options.
This Spree extension supports some of those. If your favourite is not here, then please submit an issue about it, or better still a patch to add it in.
Determines whether or not a user needs a PayPal account to check out.
payment_method.preferred_solution_type = "Mark"
# or
payment_method.preferred_solution_type = "Sole"
Mark
if you do want users to have a paypal account, Sole
otherwise.
Determines which page to show users once they're redirected to PayPal.
payment_method.preferred_landing_page = "Login"
# or
payment_method.preferred_landing_page = "Billing"
Login
will show the users the login form for PayPal, and Billing
will show them a form where they can enter their credit card data and possibly sign up for a PayPal account (depending on the Solution Type setting above).
Determines what logo, if any, to display at the top left of the PayPal express checkout:
payment_method.preferred_logourl = 'http://yoursite.com/images/checkout.jpg'
Must be an absolute path to the image.
Caveat venditor
Paypal will refuse any order with a zero cost item. Any such item will be skipped and not displayed.
PayPal will also refuse any order where item total (before taxes and shipping costs) is zero.
In this case the PayPal checkout page will simply display Current order
.
In the spirit of free software, everyone is encouraged to help improve this project.
Here are some ways you can contribute:
Starting point:
bundle install
bundle exec rake test_app
to create the test application in spec/dummy
bundle exec rspec spec
Copyright (c) 2013-2016 Spree Commerce and contributors, released under the New BSD License
tags | spree versions |
---|---|
master | >= 3.1.0, < 5.0 |