• Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    Ruby
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

Spree marketplace extension. Create your own marketplace on top of Spree Commerce

Spree Multi Vendor

This is a spree multi vendor marketplace extension. It's a great starting point if you're building a marketplace on top of Spree. Our goal was flexibility to allow you to tweak it to your needs.

Developed by

Vendo

All-in-one platform for all your multi-vendor Marketplace needs. Get your free account

Open source vs Vendo

If you need a product that has all of the features out of the box, such us supplier onboarding, Stripe connect payment splitting and payouts, and don't require any custom development - we recommend using Vendo.

feature open source vendo
basic vendorization ✔️ ✔️
supplier onboarding ✔️
supplier dashboard ✔️
supplier management ✔️
supplier product curation ✔️
automatic payment splitting ✔️
automatic payouts ✔️
Afterpay / klarna / apple pay ✔️
shopify / bigcommerce / woocommerce integration ✔️
USPS, UPS, FedEx, DHL, and more ✔️
bulk upload / import of products from CSV and XSLX ✔️
bulk export of orders, shipments and more ✔️

Installation

  1. Add this extension to your Gemfile with this line:

    gem 'spree_multi_vendor'
  2. Install the gem using Bundler:

    bundle install
  3. Copy & run migrations

    bundle exec rails g spree_multi_vendor:install
  4. Restart your server

    If your server was running, restart it so that it can find the assets properly.

  5. Optionally you can also create sample Vendor by running:

    bundle exec rake spree_multi_vendor:sample:create

Upgrading

  1. Fetch new database migrations:

    bundle exec rake railties:install:migrations FROM=spree_multi_vendor
  2. Run migrations

    bundle exec rails db:migrate

Configuration

To change which models should be vendorized, in your Spree initializer (config/initializers/spree.rb) add:

SpreeMultiVendor::Config[:vendorized_models] = %w[product variant stock_location shipping_method other_model]

This will lookup for Spree::OtherModel class. To add vendor_id column to that model run:

bundle exec rails g migration AddVendorToSpreeOtherModels vendor:references

API endpoints

Spree Multi Vendor adds new API v2 endpoints:

  1. GET Display Vendor information endpoint

    /api/v2/storefront/vendors/<vendor_slug>
    

    eg. /api/v2/storefront/vendors/test-vendor

    you can also include Vendor image and/or Products in that call:

    /api/v2/storefront/vendors/test-vendor?include=image,products

  2. GET Returns a list of Vendors

    /api/v2/storefront/vendors
    

    you can also include Vendor image and/or Products in that call:

    /api/v2/storefront/vendors?include=image,products

And modfies existing:

  1. GET Filtering Products by Vendor ID(s):

    /api/v2/storefront/products?filter[vendor_ids]=1,2,3
    
  2. GET Include Vendor information in Cart endpoint:

    /api/v2/storefront/cart?include=vendors,vendor_totals
    

Email previews

Spree offers emails preview generator for development purposes. To generate them, use command:

bundle exec rails g spree_multi_vendor:mailers_preview

After that, start rails server locally and go to: localhost:3000/rails/mailers

(it requires seeded development database in order to work properly)

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

Contributing

If you'd like to contribute, please take a look at the instructions for installing dependencies and crafting a good pull request.

License

Spree Multi Vendor is copyright © 2017-2021 [Spark Solutions Sp. z o.o.][spark]. It is free software, and may be redistributed under the terms specified in the LICENCE file.

About Vendo

Vendo is a great fit for marketplaces of all sizes - either with own fulfillment and multiple warehouses or in a dropshipping model. Vendo automates everything from vendor onboarding, accepting buyer payments in over 135 currencies, to supplier payouts in 50 countries.

Vendo ensures excellent buyer experience with smooth product discovery and search, a multitude of payment methods and optimal shipping cost calculation. Vendo keeps suppliers happy with easy onboarding, automated products sync using their preferred method and easy payouts.

Get your free account

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_reviews

Straightforward review/rating functionality.
Ruby
125
star
6

spree_digital

A Spree extension to enable downloadable products
Ruby
116
star
7

better_spree_paypal_express

A better Spree PayPal Express Extension.
Ruby
109
star
8

spree_wishlist

Wishlist extension for Spree Commerce.
Ruby
106
star
9

spree_drop_ship

Spree Drop Shipping Extension
Ruby
102
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