spree_multi_vendor 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc35d0a2ae81399b7daa7f806f69725d71bfb5f7ea5b54ff0680d4b95e93e9e9
4
- data.tar.gz: a19370e4fc2ae70fd6749ae829560d250ebb579844132d8fa9766043c0374c72
3
+ metadata.gz: c5387ab5edeed4f158bfb7e5f264800ea5b02efc14c2048957501948c406dcca
4
+ data.tar.gz: 523fd3aea41eea77295a9f34d33ee3bcfb08dd9b615ddba74eda769b8e65f326
5
5
  SHA512:
6
- metadata.gz: 6d55aa0438bf0ef0005320b21b90417370b388502b0b6a8957e5f291b988dd0b8b6c486e3d785360cb4c853b36ce978e5b972dee0a609eb5867435cc40aa532b
7
- data.tar.gz: fbb4c2094e074e06edee73ea7338ddcac6d6d800ab1810d3134efdcd5283c0d3976161f7aa9b5803e79ad58e3cc68e71b690aa48e6a4397243c838db3b63f085
6
+ metadata.gz: 9a8768042a152773ff4059c05c4e49f5102048cc3538e0289a9f015daa4afe0bae20124bbd8a96f61bb4d2a6f48033b4c4f2cbefcc1650c1e1ff83211f6b20b6
7
+ data.tar.gz: 97901fc6622e7d5c208656630865c01da883cac4ee158309b62bce59984c69357b971a128257dca459e556ced2097ce3ecb5aec664b297ebeb0eaffb31dc2b18
data/README.md CHANGED
@@ -1,30 +1,31 @@
1
1
  # Spree Multi Vendor
2
2
 
3
- [![Build Status](https://travis-ci.com/spree-contrib/spree_multi_vendor.svg?branch=master)](https://travis-ci.com/spree-contrib/spree_multi_vendor)
4
-
5
3
  This is a [spree multi vendor marketplace](https://spreecommerce.org/use-cases/multi-vendor-marketplace/) extension. It's a great starting point if you're building a marketplace on top of [Spree](https://spreecommerce.org). Our goal was flexibility to allow you to tweak it to your needs.
6
4
 
7
- Check out this extension [multi vendor marketplace demo](https://spreecommerce.org/launch-a-multi-vendor-marketplace-within-a-few-weeks-with-spree-commerce/) and launch your marketplace within weeks, not months.
8
-
9
- Developed and maintained by:
5
+ ## Developed by
10
6
 
11
- [![Spark Solutions](http://sparksolutions.co/wp-content/uploads/2015/01/logo-ss-tr-221x100.png)][spark]
7
+ [![Vendo](https://assets-global.website-files.com/6230c485f2c32ea1b0daa438/623372f40a8c54ca9aea34e8_vendo%202.svg)](https://getvendo.com?utm_source=spree_multi_vendor_github)
12
8
 
13
- ## Features
9
+ > All-in-one platform for all your Marketplace and B2B eCommerce needs. [Start your 30-day free trial](https://e98esoirr8c.typeform.com/contactvendo?typeform-source=spree_multi_vendor_github)
14
10
 
15
- By default you can create and manage Vendors who can manage on their own:
11
+ ## Open source vs Vendo
16
12
 
17
- - [X] Orders
18
- - [X] Products
19
- - [X] Stock Locations
20
- - [X] Shipping Methods
21
- - [X] Vendor profile
13
+ 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](http://getvendo.com?utm_source=spree_multi_vendor_github) which is also based on Spree.
22
14
 
23
- Also:
24
- - [X] Super Admins can assign Users to Vendors
25
- - [X] You can modify which permissions and models/resources Vendors can manage quite easily
26
-
27
- Contributions welcome! :)
15
+ | feature | open source | [vendo] |
16
+ |---|---|---|
17
+ | basic vendorization | ✔️ | ✔️ |
18
+ | supplier onboarding | | ✔️ |
19
+ | supplier dashboard | | ✔️ |
20
+ | supplier management | | ✔️ |
21
+ | supplier product curation | | ✔️ |
22
+ | automatic payment splitting | | ✔️ |
23
+ | automatic payouts | | ✔️ |
24
+ | Afterpay / klarna / apple pay | | ✔️ |
25
+ | shopify / bigcommerce / woocommerce integration | | ✔️ |
26
+ | USPS, UPS, FedEx, DHL, and more | | ✔️ |
27
+ | bulk upload / import of products from CSV and XSLX | | ✔️ |
28
+ | bulk export of orders, shipments and more | | ✔️ |
28
29
 
29
30
  ## Installation
30
31
 
@@ -165,13 +166,16 @@ and may be redistributed under the terms specified in the
165
166
 
166
167
  [LICENSE]: https://github.com/spark-solutions/spree_braintree_vzero/blob/master/LICENSE
167
168
 
168
- ## About Spark Solutions
169
+ ## About Vendo
170
+
171
+ <a href="https://getvendo.com?utm_source=spree_multi_vendor_github">
172
+ <img src="https://uploads-ssl.webflow.com/6230c485f2c32ea1b0daa438/62386b96518cdcbe111f134a_OG%20Image%20(2).png" style="max-height:400px" />
173
+ </a>
169
174
 
170
- [![Spark Solutions](http://sparksolutions.co/wp-content/uploads/2015/01/logo-ss-tr-221x100.png)][spark]
175
+ > [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**.
171
176
 
172
- Spree Vendors is maintained by [Spark Solutions Sp. z o.o.](http://sparksolutions.co?utm_source=github)
177
+ > 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.
173
178
 
174
- We are passionate about open source software.
175
- We are [available for hire][spark].
179
+ > [Start your 30-day free trial](https://e98esoirr8c.typeform.com/contactvendo?typeform-source=spree_multi_vendor_github)
176
180
 
177
- [spark]:http://sparksolutions.co?utm_source=github
181
+ [vendo]:http://getvendo.com?utm_source=spree_multi_vendor_github
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Api
3
3
  module V1
4
- class VendorsController < Spree::Api::BaseController
4
+ class VendorsController < Spree::Api::V1::BaseController
5
5
  def index
6
6
  @vendors = if params[:ids].present?
7
7
  scope.where(id: params[:ids].split(','))
@@ -1,5 +1,5 @@
1
1
  module SpreeMultiVendor::Spree::Api::BaseControllerDecorator
2
- Spree::Api::BaseController.include(Spree::Api::VendorHelper)
2
+ Spree::Api::V1::BaseController.include(Spree::Api::VendorHelper) if SpreeMultiVendor::Engine.api_v1_available?
3
3
 
4
4
  def self.prepended(base)
5
5
  base.helper_method :current_spree_vendor
@@ -14,4 +14,4 @@ module SpreeMultiVendor::Spree::Api::BaseControllerDecorator
14
14
  end
15
15
  end
16
16
 
17
- ::Spree::Api::BaseController.prepend SpreeMultiVendor::Spree::Api::BaseControllerDecorator
17
+ ::Spree::Api::V1::BaseController.prepend SpreeMultiVendor::Spree::Api::BaseControllerDecorator if SpreeMultiVendor::Engine.api_v1_available?
@@ -6,4 +6,4 @@ module SpreeMultiVendor::Spree::Api::V1::ProductsControllerDecorator
6
6
  end
7
7
  end
8
8
 
9
- Spree::Api::V1::ProductsController.prepend SpreeMultiVendor::Spree::Api::V1::ProductsControllerDecorator
9
+ Spree::Api::V1::ProductsController.prepend SpreeMultiVendor::Spree::Api::V1::ProductsControllerDecorator if SpreeMultiVendor::Engine.api_v1_available?
@@ -10,4 +10,4 @@ module SpreeMultiVendor::Spree::Api::V1::UsersControllerDecorator
10
10
  end
11
11
  end
12
12
 
13
- Spree::Api::V1::UsersController.prepend SpreeMultiVendor::Spree::Api::V1::UsersControllerDecorator
13
+ Spree::Api::V1::UsersController.prepend SpreeMultiVendor::Spree::Api::V1::UsersControllerDecorator if SpreeMultiVendor::Engine.api_v1_available?
@@ -16,4 +16,4 @@ module SpreeMultiVendor
16
16
  end
17
17
  end
18
18
 
19
- ::Spree::Api::ApiHelpers.prepend(SpreeMultiVendor::Spree::Api::ApiHelpersDecorator)
19
+ ::Spree::Api::ApiHelpers.prepend(SpreeMultiVendor::Spree::Api::ApiHelpersDecorator) if SpreeMultiVendor::Engine.api_v1_available?
@@ -61,7 +61,7 @@ module Spree
61
61
  private
62
62
 
63
63
  def create_stock_location
64
- stock_locations.where(name: name, country: Spree::Country.default).first_or_create!
64
+ stock_locations.where(name: name, country: Spree::Store.default.default_country).first_or_create!
65
65
  end
66
66
 
67
67
  def should_generate_new_friendly_id?
@@ -7,7 +7,6 @@ module SpreeMultiVendor::Spree::VariantDecorator
7
7
 
8
8
  def vendor
9
9
  @vendor ||= if self.class.reflect_on_association(:vendor) && self[:vendor_id].present?
10
- product.vendor
11
10
  ::Spree::Vendor.unscoped.find(self[:vendor_id])
12
11
  elsif Spree::Product.reflect_on_association(:vendor) && product.vendor_id.present?
13
12
  product.vendor
@@ -5,7 +5,7 @@ Deface::Override.new(
5
5
  text: <<-HTML
6
6
  <% if current_spree_user.respond_to?(:has_spree_role?) && current_spree_user.has_spree_role?(:admin) %>
7
7
  <%= f.field_container :vendor_ids, class: ['form-group'] do %>
8
- <%= f.label :vendor_ids, Spree.t(plural_resource_name(Spree::Vendor)) %>
8
+ <%= f.label :vendor_ids, plural_resource_name(Spree::Vendor) %>
9
9
  <%= f.collection_select(:vendor_ids, Spree::Vendor.all, :id, :name, { }, { class: 'select2', multiple: true }) %>
10
10
  <% end %>
11
11
  <% end %>
@@ -1,5 +1,5 @@
1
1
  <% content_for :page_title do %>
2
- <%= Spree.t(plural_resource_name(Spree::Vendor)) %>
2
+ <%= plural_resource_name(Spree::Vendor) %>
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
@@ -6,7 +6,5 @@ module Spree
6
6
 
7
7
  @@vendor_attributes = [:name, :about_us, :contact_us, :notification_email]
8
8
  @@vendor_attributes << :image if Spree.version.to_f >= 3.6
9
-
10
- @@product_attributes << :vendor_id if SpreeMultiVendor::Config[:vendorized_models].include?('product')
11
9
  end
12
10
  end
@@ -1,8 +1,14 @@
1
1
  class ChangeVendorIdAndUserIdTypeForSpreeVendorUsers < ActiveRecord::Migration[4.2]
2
- def change
2
+ def up
3
3
  change_table(:spree_vendor_users) do |t|
4
4
  t.change :vendor_id, :bigint
5
5
  t.change :user_id, :bigint
6
6
  end
7
7
  end
8
+ def down
9
+ change_table(:spree_vendor_users) do |t|
10
+ t.change :vendor_id, :integer
11
+ t.change :user_id, :integer
12
+ end
13
+ end
8
14
  end
@@ -1,8 +1,14 @@
1
1
  class ChangeVendorIdAndOrderIdTypeForSpreeOrderCommissions < ActiveRecord::Migration[4.2]
2
- def change
2
+ def up
3
3
  change_table(:spree_order_commissions) do |t|
4
4
  t.change :vendor_id, :bigint
5
5
  t.change :order_id, :bigint
6
6
  end
7
7
  end
8
+ def down
9
+ change_table(:spree_order_commissions) do |t|
10
+ t.change :vendor_id, :integer
11
+ t.change :order_id, :integer
12
+ end
13
+ end
8
14
  end
@@ -1,3 +1,5 @@
1
+ require_relative 'configuration'
2
+
1
3
  module SpreeMultiVendor
2
4
  class Engine < Rails::Engine
3
5
  require 'spree/core'
@@ -13,12 +15,20 @@ module SpreeMultiVendor
13
15
  SpreeMultiVendor::Config = SpreeMultiVendor::Configuration.new
14
16
  end
15
17
 
18
+ config.after_initialize do
19
+ ::Spree::PermittedAttributes.product_attributes << :vendor_id if SpreeMultiVendor::Config[:vendorized_models].include?('product')
20
+ end
21
+
16
22
  def self.activate
17
23
  Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
18
24
  Rails.configuration.cache_classes ? require(c) : load(c)
19
25
  end
20
26
  end
21
27
 
28
+ def self.api_v1_available?
29
+ @@api_v1_available ||= Gem::Specification.find_all_by_name('spree_api_v1').any?
30
+ end
31
+
22
32
  config.to_prepare &method(:activate).to_proc
23
33
  end
24
34
  end
@@ -1,5 +1,5 @@
1
1
  module SpreeMultiVendor
2
- VERSION = '2.3.0'
2
+ VERSION = '2.4.0'
3
3
 
4
4
  module_function
5
5
 
@@ -1,5 +1,6 @@
1
1
  require 'spree_core'
2
2
  require 'spree_backend'
3
+ require 'spree_emails'
3
4
  require 'spree_multi_vendor/engine'
4
5
  require 'spree_multi_vendor/version'
5
6
  require 'spree_extension'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_multi_vendor
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spark Solutions
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-07 00:00:00.000000000 Z
11
+ date: 2022-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -148,7 +148,6 @@ files:
148
148
  - app/models/spree/vendor_image.rb
149
149
  - app/models/spree/vendor_order_totals.rb
150
150
  - app/models/spree/vendor_user.rb
151
- - app/models/spree_multi_vendor/configuration.rb
152
151
  - app/models/spree_multi_vendor/spree/ability_decorator.rb
153
152
  - app/models/spree_multi_vendor/spree/base_decorator.rb
154
153
  - app/models/spree_multi_vendor/spree/line_item_decorator.rb
@@ -209,6 +208,7 @@ files:
209
208
  - lib/generators/spree_multi_vendor/mailers_preview/mailers_preview_generator.rb
210
209
  - lib/generators/spree_multi_vendor/mailers_preview/templates/mailers/previews/vendor_notification_preview.rb
211
210
  - lib/spree_multi_vendor.rb
211
+ - lib/spree_multi_vendor/configuration.rb
212
212
  - lib/spree_multi_vendor/engine.rb
213
213
  - lib/spree_multi_vendor/factories.rb
214
214
  - lib/spree_multi_vendor/version.rb
@@ -250,9 +250,9 @@ licenses:
250
250
  - BSD-3-Clause
251
251
  metadata:
252
252
  bug_tracker_uri: https://github.com/spree-contrib/spree_multi_vendor/issues
253
- changelog_uri: https://github.com/spree-contrib/spree_multi_vendor/releases/tag/v2.3.0
253
+ changelog_uri: https://github.com/spree-contrib/spree_multi_vendor/releases/tag/v2.4.0
254
254
  documentation_uri: https://guides.spreecommerce.org/
255
- source_code_uri: https://github.com/spree-contrib/spree_multi_vendor/tree/v2.3.0
255
+ source_code_uri: https://github.com/spree-contrib/spree_multi_vendor/tree/v2.4.0
256
256
  post_install_message:
257
257
  rdoc_options: []
258
258
  require_paths:
@@ -269,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
269
269
  version: '0'
270
270
  requirements:
271
271
  - none
272
- rubygems_version: 3.2.3
272
+ rubygems_version: 3.0.9
273
273
  signing_key:
274
274
  specification_version: 4
275
275
  summary: Spree Commerce multi vendor marketplace extension