Giter VIP home page Giter VIP logo

piggybak_stripe's Introduction

Piggybak Gem (Engine)

Modular / mountable ecommerce gem. Features:

  • Configurable tax methods, shipping methods, payment methods

  • One page checkout, with AJAX for shipping and tax calculations

  • Order processing completed in transaction, minimizing orphan data created

  • Fully defined backend RailsAdmin interface for adding orders on the backend

  • Piggybak 0.7.1 is compatible with Rails 4.1, 0.7.0 is compatible with Rails 4, and earlier version compatible with Rails 3.

Announcements

  • Variants were recently changed to sellables, to provide the opportunity for advanced variant support via an extension.

  • Significant recent rearchitecture has been applied to the order line items. Stay tuned for the documentation.

  • Review the new installation process below.

Installation

  • First create a new rails project: rails new webstore

  • Config your database.yml and create the databases

  • Add to Gemfile:

      gem "piggybak"
    
  • Next, run bundle install:

      bundle install
    
  • Next, run the piggybak install command:

      bundle exec piggybak install
    
  • Add piggybak/piggybak-application to your main application.js:

     //= require piggybak/piggybak-application
    

See the raw documentation to read more about the integration points and product configuration in Piggybak.

TODO

  • Ensure that changes in nested addresses are recorded on order notes.

Copyright

Copyright (c) 2014 End Point & Steph Skardal. See LICENSE for further details.

piggybak_stripe's People

Contributors

timcase avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

piggybak_stripe's Issues

Can't deploy to Heroku

When deploying an app that uses piggybak_stripe to Heroku, the deployment fails during the assets:precompile phase . The constant Piggybak::PaymentMethod is called from app/assets/javascripts/piggybak_stripe.js.erb. Below is the relevant portion of the stacktrace:

rake aborted!
uninitialized constant Piggybak::PaymentMethod
  (in /app/vendor/bundle/ruby/1.9.1/gems/piggybak_stripe-0.0.2/app/assets/javascripts/piggybak_stripe.js.erb)
/app/vendor/bundle/ruby/1.9.1/gems/piggybak_stripe-0.0.2/app/assets/javascripts/piggybak_stripe.js.erb:2:in `block in singletonclass'
/app/vendor/bundle/ruby/1.9.1/gems/piggybak_stripe-0.0.2/app/assets/javascripts/piggybak_stripe.js.erb:65531:in `instance_eval'
/app/vendor/bundle/ruby/1.9.1/gems/piggybak_stripe-0.0.2/app/assets/javascripts/piggybak_stripe.js.erb:65531:in `singletonclass'
/app/vendor/bundle/ruby/1.9.1/gems/piggybak_stripe-0.0.2/app/assets/javascripts/piggybak_stripe.js.erb:65529:in `__tilt_13467320'
/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.4.1/lib/tilt/template.rb:170:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.4.1/lib/tilt/template.rb:170:in `evaluate'
/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/context.rb:177:in `block in evaluate'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/context.rb:174:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/context.rb:174:in `evaluate'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/processed_asset.rb:12:in `initialize'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:241:in `new'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:241:in `block in build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:262:in `circular_call_protection'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:240:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:89:in `block in build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/caching.rb:19:in `cache_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:88:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:163:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:56:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/processed_asset.rb:106:in `block in build_required_assets'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/processed_asset.rb:100:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/processed_asset.rb:100:in `build_required_assets'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/processed_asset.rb:16:in `initialize'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:241:in `new'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:241:in `block in build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:262:in `circular_call_protection'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:240:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:89:in `block in build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/caching.rb:19:in `cache_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:88:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:163:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:56:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/bundled_asset.rb:16:in `initialize'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:244:in `new'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:244:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:89:in `block in build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/caching.rb:19:in `cache_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:88:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:163:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/index.rb:56:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/sprockets/static_compiler.rb:23:in `block in compile'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:212:in `block in each_logical_path'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:200:in `block (2 levels) in each_file'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:190:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:190:in `each_entry'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:198:in `block in each_file'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:197:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:197:in `each_file'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.3/lib/sprockets/base.rb:210:in `each_logical_path'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/sprockets/static_compiler.rb:18:in `compile'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/sprockets/assets.rake:56:in `internal_precompile'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/sprockets/assets.rake:70:in `block (3 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/sprockets/assets.rake:60:in `block (3 levels) in <top (required)>

Payment stripe token can't be blank

I created a simple sample piggybak app. I am trying to integrate it with stripe, but I am getting Payment stripe token can't be blank error.

I was able to successfully add all stripe keys as recommended in the README. You can have a look at the commit which integrates stripe to my application.

To reproduce the issue -

  1. Clone Sample Piggybak App and run it locally
  2. Sign-up
  3. Add a product with variant from rails admin
  4. Add product to cart and try to checkout.

change currency

I created an initialiser and put this line in it
ActiveMerchant::Billing::StripeGateway.default_currency = 'AUD'

but my piggyback payments are failing and the stripe logs say that the Parsed Request POST Body ==
{
amount: "110"
card: tok_103KAQ2Rk1i9iyNwylAD97b6
currency: "usd"
}

How do I set piggybak_stripe to respect my currency choice?
-=Tucker

Script tag sequence

Point 4 in Readme is very confusing since it says This include tag needs to go above where your main javascript files are included. assuming you are talking about js.stripe.com/v1 to go in layout file first, it does not use rails include tag rather uses a normal html script tag.

Point 4
Add javascript include tag for Stripe's js library into your application layout. NOTE: This include tag needs to go above where your main javascript files are included.
<script type="text/javascript" src="https://js.stripe.com/v1/"></script>
<%= javascript_include_tag "application" %>

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.