• Stars
    star
    102
  • Rank 335,584 (Top 7 %)
  • Language
    Ruby
  • License
    BSD 3-Clause "New...
  • Created almost 12 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Spree Drop Shipping Extension

Check out the latest, officially maintained Spree Multi Vendor marketplace extension

Spree Drop Ship

Build Status Code Climate Coverage Status Dependency Status

What is drop shipping?

"Drop shipping is a supply chain management technique in which the retailer does not keep goods in stock, but instead transfers customer orders and shipment details to either the manufacturer or a wholesaler, who then ships the goods directly to the customer." - wikipedia

So the main goal with spree_drop_ship is to link products to suppliers and forward orders to the appropriate suppliers.

Once an order is placed for a product that belongs to a supplier a shipment is created for the product's supplier. This shipment is then sent to the supplier (via Email by default). The supplier then follows a link to the shipment within the email where they are prompted to confirm the shipment.

Spree Drop Ship used with Spree Marketplace allows handling payments to your suppliers via ACH direct deposits.
This is still currently a work in progress, and any input is welcome. .

Upgrading

Warning: Upgrading to Spree 2.2.x & 2.3.x when using this extension is not backwards compatible. I have removed the notion of drop ship orders which payments & commission were previously tracked to. Now suppliers simply manage their shipments, and payments & commission are now linked to a payable object i.e. shipment in this case. This means the previous method of determining a suppliers commission is no longer valid, and you will need to migrate your data accordingly.

I'm sorry for the inconvenience this may cause, but I've determined for this extension to meet it's most potential I needed to drastically alter the approach it was taking. I'm still undergoing several more radical changes for Spree 2.3.x that involve moving product management from this extension into the spree_marketplace extension. The goal from the beginning of this extension has been for it to be a very light weight and extensible drop shipping solution. Much of this extension has been made obsolete by split shipping, and line item adjustments within Spree Core itself. Now I feel I can really streamline this extension to take advantage of the recent Spree Core changes, and also move the product management into the marketplace extension as that is really more of what product management is inteded for. The typical drop shipping scenario would simply be a supplier being able to update their shipments they need to fulfill and nothing more.

Installation

Here's how to install spree_drop_ship into your existing spree site AFTER you've installed Spree:

Add the following to your Gemfile:

gem 'spree_drop_ship', github: 'spree-contrib/spree_drop_ship'

Make your bundle happy:

bundle install

Now run the generator:

rails g spree_drop_ship: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 spree_sample:load               # Loads sample data into the store
rake spree_sample:suppliers          # Create sample suppliers and randomly link to products
rake spree_sample:drop_ship_orders   # Create sample drop ship orders

Demo

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

git clone git://github.com/spree-contrib/spree_drop_ship.git
cd spree_drop_ship
bundle install
bundle exec rake test_app
cd spec/dummy
rake db:migrate db:seed spree_sample:load spree_sample:suppliers spree_sample:drop_ship_orders
rails s

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

Todo

  • Stock Items should automatically be set to backorderable false if the variant doesnt belong to the stock locations supplier.
  • Must allow suppliers to edit their stock location addresses & require it.
  • Return Authorization UI
  • Better documentation
  • related products should only allow suppliers own products to be related

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

Bitcoin donations may be sent to: 1L6akT6Aus9r6Ashw1wDtLg7D8zJCVVZac

Copyright (c) 2012-2014 Jeff Dutil, released under the New BSD License.

More Repositories

1

spree_i18n

I18n translation files for Spree Commerce.
Ruby
346
star
2

spree_social

Building block for spree social networking features (provides authentication and account linkage)
Ruby
213
star
3

spree_related_products

Related products extension for Spree Commerce.
Ruby
149
star
4

spree_active_shipping

Spree integration for Shopify's active_shipping gem.
Ruby
135
star
5

spree_multi_vendor

Spree marketplace extension. Create your own marketplace on top of Spree Commerce
Ruby
130
star
6

spree_reviews

Straightforward review/rating functionality.
Ruby
125
star
7

spree_digital

A Spree extension to enable downloadable products
Ruby
116
star
8

better_spree_paypal_express

A better Spree PayPal Express Extension.
Ruby
109
star
9

spree_wishlist

Wishlist extension for Spree Commerce.
Ruby
106
star
10

spree_address_book

Adds address book for users to Spree
Ruby
94
star
11

spree_print_invoice

Create a PDF invoice for Spree orders.
Ruby
90
star
12

spree_fancy

SpreeFancy is a responsive theme for Spree Commerce.
CSS
86
star
13

spree_marketplace

Turn Spree into a marketplace by extending spree drop ship.
Ruby
77
star
14

spree_store_credits

This Spree extension allows admins to issue arbitrary amounts of store credit to users.
Ruby
70
star
15

spree_blue_theme

Original Spree Blue theme (0.60.x)
Ruby
65
star
16

spree_shared

Multi-tenancy for Spree using Apartment (per tenant databases).
Ruby
61
star
17

spree_rdr_theme

WIP - everything might change.
Ruby
52
star
18

spree_email_to_friend

Email a friend functionality for Spree Commerce.
Ruby
49
star
19

spree_sitemap

Sitemap Generator for Spree Commerce.
Ruby
47
star
20

spree_affiliate

Affiliate support for Spree Commerce.
Ruby
46
star
21

spree_braintree_vzero

Official Braintree + PayPal integration gem for Spree Commerce
Ruby
45
star
22

spree_multi_currency

Provides UI to allow configuring multiple currencies in Spree.
Ruby
41
star
23

spree_contact_us

Adds Contact Us form to your Spree Commerce store
Ruby
40
star
24

spree_product_zoom

Lightbox zoom functionality to show original product image
Ruby
32
star
25

spree_social_products

Add social sharing buttons for your Spree products
Ruby
28
star
26

spree_mail_settings

Mail setting functionality extracted from Spree.
Ruby
28
star
27

spree_slider

Ruby
26
star
28

spree_api_examples

Ruby
26
star
29

spree_globalize

Adds support for model translations (multi-language stores) using Globalize gem
Ruby
24
star
30

spree_simple_dash

Alternative dashboard overview for Spree
Ruby
23
star
31

spree_price_books

Price book functionality for running sales, role based, country based pricing etc...
Ruby
21
star
32

spree_analytics_trackers

Integrate your Spree application with Google Analytics and Segment.com
Ruby
19
star
33

spree_product_groups

Extension to Spree featuring Product Groups that were originally part of core prior to 1.1 release.
Ruby
19
star
34

spree_skrill

Add support for Skrill / MoneyBookers Quick checkout as a payment method.
Ruby
18
star
35

spree_analytics

Ruby
18
star
36

spree_store_credit_payment_method

Adds store credit functionality as a payment method.
Ruby
17
star
37

spree_tax_cloud

US sales tax extension for Spree using the Tax Cloud service.
Ruby
15
star
38

spree_page_cache

Minor tweaks to make Spree pages suitable for page caching
Ruby
15
star
39

spree_blue_sass_theme

spree_blue_theme using sass
Ruby
14
star
40

spree-adyen

Adyen payment gateway integration for Spree.
Ruby
12
star
41

spree_mailchimp_ecommerce

Connect your Spree application to Mailchimp eCommerce API for full email automation
Ruby
12
star
42

spree_shopify_importer

Migrate your Shopify store to Spree
Ruby
9
star
43

spree_handling_fees

Adds Handling Fee functionality to Spree.
Ruby
9
star
44

spree_clean

Admin UI to allow the removal of sample / test data.
Ruby
9
star
45

spree_vouchers

A WIP for Gift Vouchers
Ruby
7
star
46

spree_avatax_official

The new officially certified Spree Avatax (Avalara) extension
Ruby
7
star
47

spree_favorites

Add Spree::Favorite model to track favorite products or anything else you would like.
Ruby
7
star
48

spree_claim_order

Claim guest orders associated with an email address
Ruby
5
star
49

rfcs

A Request for Comments on Spree.
5
star
50

spree_videos

Spree extension to allow linking of youtube reference IDs to products
Ruby
5
star
51

spree_jirafe

Front-end integration for Jirafe.
Ruby
5
star
52

spree_usa_epay

Ruby
4
star
53

spree_multicode_promotions

Ruby
2
star
54

spree_jmeter

Contains https://github.com/flood-io/ruby-jmeter scripts for benchmarking & load testing Spree.
Ruby
1
star
55

spree_automation_interfaces

Ruby
1
star
56

spree_legacy_return_authorizations

Spree 2.3.x Legacy Returns
Ruby
1
star