Git Product home page Git Product logo

spree_store_credit_payment_method's Introduction

SpreeStoreCredits

A Spree store credit implementation that applies store credit as a payment method.

Takes into account purchasing through the API, with the default to use all available store credit.

Store credit can be granted in admin, and is frozen after first usage. Store credit behaves like a credit card in that once an amount is authorized, it cannot be used elsewhere.

Store credit can be stored in multiple buckets (e.g. expiring and non-expiring) because those are taxed differently and implementors might want to prioritize use / refund different types.

Credit Types

Out of the box, there are Expiring and Non-expiring store credits, with the Expiring type having top priority of being used in a purchase.

To add new ones, add a migration with a priority value set, and on purchase it will take the credits from lowest numerical priority to highest. You will also need to overwrite Spree::StoreCredit#associate_credit_type

Configure the gem with non-expiring categorizations in an initializer:

Spree::StoreCredits::Configuration.set_configs(non_expiring_credit_types: ['Example'])

Installation

Add spree_store_credits to your Gemfile:

gem 'spree_store_credits', github: 'spree-contrib/spree_store_credit_payment_method'

Bundle your dependencies and run the installation generator:

bundle
bundle exec rails g spree_store_credits:install

Testing

First bundle your dependencies, then run rake. rake will default to building the dummy app if it does not exist, then it will run specs. The dummy app can be regenerated by using rake test_app.

bundle
bundle exec rake

When testing your applications integration with this extension you may use it's factories. Simply add this require statement to your spec_helper:

require 'spree_store_credits/factories'

TODO

  • Integrate the frontend, this was implemented with just admin and api

Copyright (c) 2014 [Bonobos], released under the New BSD License

spree_store_credit_payment_method's People

Contributors

richardnuno avatar plongyear avatar athal7 avatar jordan-brough avatar magnusvk avatar gmacdougall avatar jdutil avatar talyssonoc avatar

Watchers

James Cloos avatar  avatar  avatar

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.