Giter Site home page Giter Site logo

sgerov / spree_marketplace Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spree-contrib/spree_marketplace

0.0 1.0 0.0 210 KB

Turn Spree into a marketplace by extending spree drop ship.

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

Ruby 94.35% CoffeeScript 5.45% JavaScript 0.08% CSS 0.12%

spree_marketplace's Introduction

SpreeMarketplace

Build Status Code Climate Coverage Status Dependency Status

Spree Marketplace uses the Spree Drop Ship extension in order to enable using Spree as a Marketplace. Mainly all that really means is that this extension enables sending payments to your drop ship suppliers through Stripe with their payment service.

All the other main marketplace functionality - such as - vendors, product setup, shipment details etc... is all accomplished by Spree Drop Ship.

Integrations

Spree Marketplace will support several other Spree extensions being used by scoping information by supplier.

Some extensions that can be used in conjunction with Spree Marketplace:

  • spree_digital
  • spree_editor (assumes use of ckeditor & you should delete the generated models & initializer in your app to use spree_editors copies)
  • spree_group_pricing
  • spree_marketplace
  • spree_related_products

Please Note: If you intend to use any of these extensions you should install them before installing spree_marketplace so that spree_marketplace's migrations are run last. You should also place spree_drop_ship & spree_marketplace AFTER all other extensions in your Gemfile.

Installation

Add spree_marketplace to your Gemfile:

gem 'spree_marketplace', github: 'jdutil/spree_marketplace'

Bundle your dependencies and run the installation generator:

bundle
bundle exec rails g spree_marketplace:install

Configuration

Once installed you must configure your Stripe API keys. To do so you have two options:

  1. Simply setup either as your payment processing method and spree_marketplace will use your payment methods api key.

  2. Configure in an initializer by adding the following to the end of your config/intializers/spree.rb:

    SpreeMarketplace::Config[:stripe_publishable_key] = 'YourPublishableKey' SpreeMarketplace::Config[:stripe_secret_key] = 'YourSecretKey'

  3. Currently you must implement your own payment code as this varies between applications, but once the TODO list is complete this will be an optional configuration likely in a rake task.

Testing

Be sure to bundle your dependencies and then create a dummy test app for the specs to run against.

bundle
bundle exec rake test_app
bundle exec rspec spec

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_marketplace/factories'

TODO

  • stop overridding spree_drop_ship's supplier ability if possible
  • update product management of products
  • permit attributes in controller
  • On dso complete credit supplier bank account
  • On order complete credit marketplace bank account w/commission
  • On order complete credit marketplace bank account w/tax?
  • Refactor to not rely on stripe & be interchangeable.
  • suppliers should be able to manage option types and values (unsure about whether to scope to supplier or not, but thats probably best solution for everyone)

Copyright (c) 2013-2014+ Jeff Dutil, released under the New BSD License

spree_marketplace's People

Contributors

jdutil avatar sgerov avatar stupidcodefactory avatar

Watchers

 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.