/solidus_marketplace

Marketplace functionality for Solidus.io

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

Solidus Marketplace

NOTE: This gem is currently a work-in-progress.

Contributors are welcome to help us get this gem to a viable MVP. We suggest installing ZenHub in order to view/manage open issues. This will give you a new tab in Github called "Boards", which provides a Kanban-style view of the project's issues.

Overview

This is marketplace implementation for solidus.

Basic functionality:

  • Links products to one or more suppliers
  • Once an order is placed:
    • A shipment is created for the product's supplier
    • The shipment is then sent to the store owner for fulfillment and to the supplier for visibility (via Email by default).
    • The store owner fulfills orders. The supplier can view their shipments (read-only for now).

Installation

Here's how to install solidus_marketplace into your existing solidus site AFTER you've installed Solidus:

Add the following to your Gemfile:

gem 'solidus_marketplace'

Make your bundle happy:

bundle install

Now run the generator:

rails g solidus_marketplace:install

(Optional) Run the generator for solidus_gateway to enable the use of Stripe or other payment providers included with that extension:

rails g solidus_gateway:install

Then migrate your database if you did not run during installation generator:

bundle exec rake db:migrate

And reboot your server:

rails s

You should be up and running now!

Sample Data

If you'd like to generate sample data, use the included rake tasks:

rake db:seed                         # Loads seed data into the store
rake spree_sample:load               # Loads sample data into the store
rake spree_sample:suppliers          # Create sample suppliers and randomly link to products
rake spree_sample:marketplace_orders # Create sample marketplace orders

This will include a new role (supplier_admin) and 2 new users in addition to the default 'admin@example.com' user provided by solidus.

Those users have the following email/password/roles

Demo

You can easily use the spec/dummy app as a demo of solidus_marketplace. Just cd to where you develop and run:

git clone git://github.com/boomerdigital/solidus_marketplace.git
cd solidus_marketplace
bundle install
bundle exec rake test_app
cd spec/dummy
rake db:migrate db:seed spree_sample:load spree_sample:suppliers spree_sample:marketplace_orders
rails s

Testing

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

brew install geckodriver

bundle
bundle exec rake test_app
bundle exec rspec spec

Todo

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 translating to a new language
  • 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

Donating

Copyright (c) 2016-2017 Boomer Digital, released under the New BSD License.