Coder Social home page Coder Social logo

code-bunny / better_spree_paypal_express Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shanison/better_spree_paypal_express

0.0 1.0 1.0 330 KB

A better Spree PayPal Express Extension.

License: BSD 3-Clause "New" or "Revised" License

Ruby 84.45% JavaScript 5.05% CSS 0.15% HTML 10.35%

better_spree_paypal_express's Introduction

Spree PayPal Express

Build Status

This is the official Paypal Express extension for Spree.

For Spree 3.0+ it is recommended to use Braintree v.zero extension which uses a newer PayPal API and actually supports Express Checkout flow.

Behind-the-scenes, this extension uses PayPal's Merchant Ruby SDK.

Installation

  1. Add this extension to your Gemfile with this line: ruby gem 'spree_paypal_express', github: 'spree-contrib/better_spree_paypal_express', branch: 'X-X-stable'

     The `branch` option is important: it must match the version of Spree you're using.
     For example, use `3-0-stable` if you're using Spree `3-0-stable` or any `3.0.x` version.
    
  2. Install the gem using Bundler:

     bundle install
    
  3. Copy & run migrations

     bundle exec rails g spree_paypal_express:install
    
  4. Restart your server

     If your server was running, restart it so that it can find the assets properly.
    

Sandbox Setup

PayPal

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.

Spree Setup

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.

Production setup

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.

Spree Setup

Same as sandbox setup, but change "Server" from "sandbox" to "live".

Configuration

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.

Solution Type

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.

Landing Page

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

Logo

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.

Caveats

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

Contributing

In the spirit of free software, everyone is encouraged to help improve this project.

Here are some ways you can contribute:

  • by using prerelease versions
  • by reporting bugs
  • by suggesting new features
  • by writing or editing documentation
  • by writing specifications
  • by writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
  • by refactoring code
  • by resolving issues
  • by reviewing patches

Starting point:

  • Fork the repo
  • Clone your repo
  • Run bundle install
  • Run bundle exec rake test_app to create the test application in spec/dummy
  • Make your changes
  • Ensure specs pass by running bundle exec rspec spec
  • Submit your pull request

Copyright (c) 2013-2016 Spree Commerce and contributors, released under the New BSD License

better_spree_paypal_express's People

Contributors

radar avatar futhr avatar alepore avatar jhawthorn avatar peterberkenbosch avatar fredjean avatar jackkinsella avatar azinazadi avatar romul avatar hates avatar mrpollo avatar damianlegawiec avatar ssendev avatar redglory avatar geermc4 avatar dmgr avatar willianvdv avatar sbounmy avatar sbasir avatar simontseng avatar traels avatar rohanm avatar pusewicz avatar finelineautomation avatar mauazua avatar jdutil avatar ifan-godaddy avatar fsainz avatar davekiss avatar dpritchett avatar

Watchers

spacetime avatar

Forkers

justinemar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.