/spree_marketplace

Turn Spree into a marketplace by extending spree drop ship.

Primary LanguageRubyBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

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_drop_ship so that spree_drop_ship'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

  • 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?

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