solidus_multi_domain 1.0.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.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +33 -0
  3. data/.rspec +4 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +9 -0
  6. data/README.md +72 -0
  7. data/Rakefile +21 -0
  8. data/app/controllers/concerns/spree_multi_domain/create_line_item_support.rb +16 -0
  9. data/app/controllers/concerns/spree_multi_domain/show_product_support.rb +17 -0
  10. data/app/controllers/spree/admin/products_controller_decorator.rb +12 -0
  11. data/app/controllers/spree/admin/stores_controller.rb +24 -0
  12. data/app/controllers/spree/api/line_items_controller_decorator.rb +1 -0
  13. data/app/controllers/spree/api/orders_controller_decorator.rb +21 -0
  14. data/app/controllers/spree/api/products_controller_decorator.rb +1 -0
  15. data/app/controllers/spree/api/shipments_controller_decorator.rb +17 -0
  16. data/app/controllers/spree/home_controller_decorator.rb +7 -0
  17. data/app/controllers/spree/products_controller_decorator.rb +1 -0
  18. data/app/controllers/spree/taxons_controller_decorator.rb +10 -0
  19. data/app/helpers/spree/products_helper_decorator.rb +11 -0
  20. data/app/mailers/spree/carton_mailer_decorator.rb +13 -0
  21. data/app/mailers/spree/order_mailer.rb +35 -0
  22. data/app/models/spree/order_decorator.rb +8 -0
  23. data/app/models/spree/payment_method_decorator.rb +13 -0
  24. data/app/models/spree/product_decorator.rb +4 -0
  25. data/app/models/spree/promotion/rules/store.rb +30 -0
  26. data/app/models/spree/shipping_method_decorator.rb +18 -0
  27. data/app/models/spree/store_decorator.rb +25 -0
  28. data/app/models/spree/store_payment_method.rb +6 -0
  29. data/app/models/spree/store_shipping_method.rb +6 -0
  30. data/app/models/spree/taxon_decorator.rb +5 -0
  31. data/app/models/spree/taxonomy_decorator.rb +3 -0
  32. data/app/models/spree/tracker_decorator.rb +7 -0
  33. data/app/models/spree_multi_domain/line_item_decorator.rb +20 -0
  34. data/app/overrides/decorate_admin_configurations_index.rb +5 -0
  35. data/app/overrides/decorate_admin_products_form.rb +6 -0
  36. data/app/overrides/decorate_admin_products_index.rb +20 -0
  37. data/app/overrides/decorate_admin_trackers_form.rb +6 -0
  38. data/app/overrides/decorate_admin_trackers_index.rb +13 -0
  39. data/app/views/spree/admin/products/_index_headers.html.erb +1 -0
  40. data/app/views/spree/admin/products/_index_rows.html.erb +1 -0
  41. data/app/views/spree/admin/products/_index_search_fields.html.erb +4 -0
  42. data/app/views/spree/admin/products/_stores.html.erb +8 -0
  43. data/app/views/spree/admin/promotions/rules/_store.html.erb +8 -0
  44. data/app/views/spree/admin/stores/_form.html.erb +90 -0
  45. data/app/views/spree/admin/stores/edit.html.erb +29 -0
  46. data/app/views/spree/admin/stores/index.html.erb +43 -0
  47. data/app/views/spree/admin/stores/new.html.erb +29 -0
  48. data/app/views/spree/admin/taxonomies/_form.html.erb +12 -0
  49. data/app/views/spree/admin/trackers/_index_rows.html.erb +1 -0
  50. data/app/views/spree/admin/trackers/_store.html.erb +6 -0
  51. data/app/views/spree/shared/_google_analytics.html.erb +39 -0
  52. data/bin/rails +7 -0
  53. data/circle.yml +6 -0
  54. data/config/locales/en.yml +26 -0
  55. data/config/locales/fr.yml +9 -0
  56. data/config/locales/pl.yml +10 -0
  57. data/config/locales/ru.yml +9 -0
  58. data/config/routes.rb +5 -0
  59. data/db/migrate/20091202123245_add_order_store.rb +17 -0
  60. data/db/migrate/20100114020535_add_store_to_tracker.rb +25 -0
  61. data/db/migrate/20100227180338_create_products_stores.rb +13 -0
  62. data/db/migrate/20100616204303_store_id_for_taxonomies.rb +19 -0
  63. data/db/migrate/20110601125650_remove_datetime_columns_from_products_stores.rb +13 -0
  64. data/db/migrate/20110601145424_add_indexes_to_products_stores.rb +11 -0
  65. data/db/migrate/20120223183401_namespace.rb +9 -0
  66. data/db/migrate/20121210224018_add_store_payment_methods.rb +10 -0
  67. data/db/migrate/20130308084714_add_logo_to_stores.rb +13 -0
  68. data/db/migrate/20130325231147_add_store_shipping_methods.rb +14 -0
  69. data/db/migrate/20130412212659_add_spree_promotion_rules_stores.rb +8 -0
  70. data/db/migrate/20150304200122_add_indexes.rb +6 -0
  71. data/lib/assets/javascripts/spree/backend/solidus_multi_domain.js +1 -0
  72. data/lib/assets/javascripts/spree/backend/store_picker.js +34 -0
  73. data/lib/assets/javascripts/spree/frontend/solidus_multi_domain.js +0 -0
  74. data/lib/assets/stylesheets/spree/frontend/solidus_multi_domain.css +5 -0
  75. data/lib/generators/spree_multi_domain/install/install_generator.rb +24 -0
  76. data/lib/solidus_multi_domain.rb +3 -0
  77. data/lib/spree/controller_helpers/order_decorator.rb +11 -0
  78. data/lib/spree/search/multi_domain.rb +19 -0
  79. data/lib/spree_multi_domain/engine.rb +65 -0
  80. data/lib/spree_multi_domain/multi_domain_helpers.rb +31 -0
  81. data/solidus_multi_domain.gemspec +31 -0
  82. data/spec/controllers/spree/admin/products_controller_spec.rb +39 -0
  83. data/spec/controllers/spree/admin/stores_controller_spec.rb +12 -0
  84. data/spec/controllers/spree/api/line_items_controller_spec.rb +35 -0
  85. data/spec/controllers/spree/api/orders_controller_spec.rb +44 -0
  86. data/spec/controllers/spree/api/products_controller_spec.rb +52 -0
  87. data/spec/controllers/spree/api/shipments_controller_spec.rb +63 -0
  88. data/spec/controllers/spree/products_controller_spec.rb +49 -0
  89. data/spec/helpers/products_helper_decorator_spec.rb +22 -0
  90. data/spec/mailers/carton_mailer_spec.rb +41 -0
  91. data/spec/models/spree/line_item_spec.rb +39 -0
  92. data/spec/models/spree/order_spec.rb +18 -0
  93. data/spec/models/spree/payment_method_spec.rb +33 -0
  94. data/spec/models/spree/product_spec.rb +18 -0
  95. data/spec/models/spree/shipping_method_decorator_spec.rb +27 -0
  96. data/spec/models/spree/store_spec.rb +42 -0
  97. data/spec/models/spree/taxon_decorator_spec.rb +30 -0
  98. data/spec/models/spree/tracker_spec.rb +19 -0
  99. data/spec/requests/global_controller_helpers_spec.rb +65 -0
  100. data/spec/requests/template_renderer_spec.rb +25 -0
  101. data/spec/spec_helper.rb +33 -0
  102. data/spec/support/factory_overrides.rb +10 -0
  103. metadata +278 -0
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'PaymentMethod' do
4
+ describe '.available' do
5
+ subject { Spree::PaymentMethod.available(:front_end, store) }
6
+
7
+ let!(:check_payment_method) { FactoryGirl.create :check_payment_method }
8
+ let(:payment_method_store) { FactoryGirl.create :store, :payment_methods => [check_payment_method] }
9
+
10
+ context "when store is not specified" do
11
+ let(:store) { nil }
12
+
13
+ it { is_expected.to include(check_payment_method) }
14
+ end
15
+
16
+ context "when store is specified" do
17
+ let(:store) { payment_method_store }
18
+
19
+ context "when store has payment methods" do
20
+ let(:non_matching_check_payment_method) { FactoryGirl.create :check_payment_method }
21
+
22
+ it { is_expected.to include(check_payment_method) }
23
+ it { is_expected.not_to include(non_matching_check_payment_method) }
24
+ end
25
+
26
+ context "when store does not have payment_methods" do
27
+ let(:payment_method_store) { FactoryGirl.create :store }
28
+
29
+ it { is_expected.to include(check_payment_method) }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Product do
4
+
5
+ before(:each) do
6
+ @store = FactoryGirl.create(:store)
7
+ @product = FactoryGirl.create(:product, :stores => [@store])
8
+
9
+ @product2 = FactoryGirl.create(:product, :slug => 'something else')
10
+ end
11
+
12
+ it 'should correctly find products by store' do
13
+ products_by_store = Spree::Product.by_store(@store)
14
+
15
+ expect(products_by_store).to include(@product)
16
+ expect(products_by_store).to_not include(@product2)
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::ShippingMethod do
4
+ let(:shipping_method) { create :shipping_method }
5
+ let(:order) { create :order, :store => store }
6
+ let(:store) { create :store }
7
+
8
+ describe '.store_match?' do
9
+ subject { shipping_method.store_match?(order) }
10
+
11
+ context 'when store contains this shipping method' do
12
+ before { store.shipping_methods << shipping_method }
13
+ it { is_expected.to eq(true) }
14
+ end
15
+
16
+ context "when the store does not contain this shipping method" do
17
+ context "when the store has no shipping methods" do
18
+ it { is_expected.to eq(true) }
19
+ end
20
+
21
+ context "when the store has at least on shipping method" do
22
+ before { store.shipping_methods << FactoryGirl.create(:shipping_method) }
23
+ it { is_expected.to eq(false)}
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Store do
4
+ let!(:default_store) { FactoryGirl.create(:store, default: true, url: "default.com") }
5
+ let!(:store_2) { FactoryGirl.create(:store, code: 'STORE2', url: 'freethewhales.com') }
6
+ let!(:store_3) { FactoryGirl.create(:store, code: 'STORE3', url: "website1.com\nwww.subdomain.com") }
7
+
8
+ it "should find stores by url" do
9
+ by_url = Spree::Store.by_url('www.subdomain.com')
10
+
11
+ expect(by_url).to include(store_3)
12
+ expect(by_url).not_to include(default_store)
13
+ expect(by_url).not_to include(store_2)
14
+ end
15
+
16
+ it "should find the current store by url" do
17
+ current_store = Spree::Store.current('website1.com')
18
+
19
+ expect(current_store) == store_3
20
+ end
21
+
22
+ it "should find the current store by code" do
23
+ current_store = Spree::Store.current('STORE2')
24
+
25
+ expect(current_store) == store_2
26
+ end
27
+
28
+ describe "default" do
29
+ it "should ensure there is a default if one doesn't exist yet" do
30
+ expect(default_store.default).to be_truthy
31
+ end
32
+
33
+ it "should ensure there is only one default" do
34
+ [default_store, store_2, store_3].each(&:reload)
35
+
36
+ expect(Spree::Store.default).to eq default_store
37
+ expect(default_store.default).to be_truthy
38
+ expect(store_2.default).to be_falsey
39
+ expect(store_3.default).to be_falsey
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Taxon do
4
+ describe ".find_by_store_id_and_permalink!" do
5
+ context "taxon exist in given store" do
6
+
7
+ let!(:store) { FactoryGirl.create :store }
8
+ let!(:taxonomy) { FactoryGirl.create :taxonomy , store: store}
9
+ let!(:taxon) { FactoryGirl.create :taxon , taxonomy: taxonomy}
10
+
11
+ let!(:anotherstore) { FactoryGirl.create :store, name: "second-test-store" }
12
+ let!(:anothertaxonomy) { FactoryGirl.create :taxonomy , store: anotherstore}
13
+ let!(:anothertaxon) { FactoryGirl.create :taxon , taxonomy: anothertaxonomy}
14
+
15
+ it "returns a taxon" do
16
+ found_taxon = Spree::Taxon.find_by_store_id_and_permalink!(store.id, taxon.permalink)
17
+ expect(found_taxon).to eq taxon
18
+ expect(found_taxon).to_not eq anothertaxon
19
+ end
20
+ end
21
+
22
+ context "taxon does not exist in given store" do
23
+ it "raise active_record::not_found" do
24
+ expect{
25
+ Spree::Taxon.find_by_store_id_and_permalink!(1, "non-existing-permalink")
26
+ }.to raise_error(ActiveRecord::RecordNotFound)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Tracker do
4
+ before(:each) do
5
+ store = FactoryGirl.create(:store, default: true)
6
+ @tracker = FactoryGirl.create(:tracker, store: store)
7
+
8
+ another_store = FactoryGirl.create(:store, code: 'STORE2', url: 'completely-different-store.com')
9
+ @tracker2 = FactoryGirl.create(:tracker, store: another_store)
10
+ end
11
+
12
+ it "pulls out the current tracker based on store code" do
13
+ expect(Spree::Tracker.current('STORE2')).to eq @tracker2
14
+ end
15
+
16
+ it "pulls out the current tracker" do
17
+ expect(Spree::Tracker.current('www.example.com')).to eq @tracker
18
+ end
19
+ end
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Global controller helpers" do
4
+
5
+ let!(:store) { FactoryGirl.create :store }
6
+
7
+ before(:each) do
8
+ @tracker = FactoryGirl.create :tracker, :store => store
9
+ get '/'
10
+ end
11
+
12
+ it "should include the right tracker" do
13
+ expect(response.body).to include(@tracker.analytics_id)
14
+ end
15
+
16
+ it "should create a store-aware order" do
17
+ expect(controller.current_store).to eq(store)
18
+ end
19
+
20
+ it "should instantiate the correct store-bound tracker" do
21
+ expect(controller.current_tracker).to eq(@tracker)
22
+ end
23
+
24
+ describe '.current_currency' do
25
+ subject { controller.current_currency }
26
+
27
+ context "when store default_currency is nil" do
28
+ it { is_expected.to eq('USD') }
29
+ end
30
+
31
+ context "when the current store default_currency empty" do
32
+ let!(:store) { FactoryGirl.create :store, :default_currency => '' }
33
+
34
+ it { is_expected.to eq('USD') }
35
+ end
36
+
37
+ context "when the current store default_currency is a currency" do
38
+ let!(:store) { FactoryGirl.create :store, :default_currency => 'EUR' }
39
+ it { is_expected.to eq('EUR') }
40
+ end
41
+
42
+ context "when session[:currency] set by spree_multi_currency" do
43
+
44
+ before do
45
+ session[:currency] = 'AUD'
46
+ end
47
+
48
+ let!(:aud) { ::Money::Currency.find('AUD') }
49
+ let!(:eur) { ::Money::Currency.find('EUR') }
50
+ let!(:usd) { ::Money::Currency.find('USD') }
51
+ let!(:store) { FactoryGirl.create :store, :default_currency => 'EUR' }
52
+
53
+ it 'returns supported currencies' do
54
+ allow(controller).to receive(:supported_currencies).and_return([aud, eur, usd])
55
+ expect(controller.current_currency).to eql('AUD')
56
+ end
57
+
58
+ it 'returns store currency if not supported' do
59
+ allow(controller).to receive(:supported_currencies).and_return([eur, usd])
60
+ expect(controller.current_currency).to eql('EUR')
61
+ end
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Template renderer with dynamic layouts" do
4
+ before(:each) do
5
+ ApplicationController.view_paths = [ActionView::FixtureResolver.new(
6
+ "spree/layouts/spree_application.html.erb" => "Default layout <%= yield %>",
7
+ "spree/layouts/my_store/spree_application.html.erb" => "Store layout <%= yield %>",
8
+ "application/index.html.erb" => "hello"
9
+ )]
10
+ end
11
+
12
+ it "should render the layout corresponding to the current store" do
13
+ FactoryGirl.create :store, code: "my_store"
14
+
15
+ get "http://www.example.com"
16
+ expect(response.body).to eql("Store layout hello")
17
+ end
18
+
19
+ it "should fall back to the default layout if none are found for the current store" do
20
+ allow(ApplicationController).to receive(:current_store).and_return(nil)
21
+
22
+ get "http://www.example.com"
23
+ expect(response.body).to eql("Default layout hello")
24
+ end
25
+ end
@@ -0,0 +1,33 @@
1
+ require 'simplecov'
2
+ SimpleCov.start 'rails'
3
+
4
+ ENV['RAILS_ENV'] ||= 'test'
5
+
6
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
7
+
8
+ require 'rspec/rails'
9
+ require 'ffaker'
10
+
11
+ # Requires factories defined in spree_core
12
+ require 'spree/testing_support/factories'
13
+ require 'spree/testing_support/controller_requests'
14
+ require 'spree/testing_support/authorization_helpers'
15
+ require 'spree/testing_support/preferences'
16
+
17
+ require 'spree/api/testing_support/helpers'
18
+ require 'spree/api/testing_support/setup'
19
+
20
+ Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
21
+
22
+ RSpec.configure do |config|
23
+ config.infer_spec_type_from_file_location!
24
+ config.mock_with :rspec
25
+
26
+ config.filter_run focus: true
27
+ config.run_all_when_everything_filtered = true
28
+ config.use_transactional_fixtures = true
29
+
30
+ config.include FactoryGirl::Syntax::Methods
31
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
32
+ config.include Spree::Api::TestingSupport::Helpers, type: :controller
33
+ end
@@ -0,0 +1,10 @@
1
+ FactoryGirl.modify do
2
+ # Products need to belong to the same store as the order.
3
+ factory :line_item do
4
+ before(:create) do |line_item, evaluator|
5
+ if line_item.order.store
6
+ line_item.product.stores << line_item.order.store
7
+ end
8
+ end
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,278 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidus_multi_domain
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Solidus Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: solidus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0.pre
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 1.0.0.pre
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec-rails
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.2'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.2'
47
+ - !ruby/object:Gem::Dependency
48
+ name: simplecov
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: sqlite3
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: sass-rails
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 4.0.2
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 4.0.2
89
+ - !ruby/object:Gem::Dependency
90
+ name: coffee-rails
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 4.0.0
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 4.0.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: factory_girl
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 4.5.0
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 4.5.0
117
+ - !ruby/object:Gem::Dependency
118
+ name: capybara
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.4'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.4'
131
+ - !ruby/object:Gem::Dependency
132
+ name: ffaker
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ description: Multiple Solidus stores on different domains - single unified backed
146
+ for processing orders.
147
+ email: contact@solidus.io
148
+ executables: []
149
+ extensions: []
150
+ extra_rdoc_files: []
151
+ files:
152
+ - ".gitignore"
153
+ - ".rspec"
154
+ - ".ruby-version"
155
+ - Gemfile
156
+ - README.md
157
+ - Rakefile
158
+ - app/controllers/concerns/spree_multi_domain/create_line_item_support.rb
159
+ - app/controllers/concerns/spree_multi_domain/show_product_support.rb
160
+ - app/controllers/spree/admin/products_controller_decorator.rb
161
+ - app/controllers/spree/admin/stores_controller.rb
162
+ - app/controllers/spree/api/line_items_controller_decorator.rb
163
+ - app/controllers/spree/api/orders_controller_decorator.rb
164
+ - app/controllers/spree/api/products_controller_decorator.rb
165
+ - app/controllers/spree/api/shipments_controller_decorator.rb
166
+ - app/controllers/spree/home_controller_decorator.rb
167
+ - app/controllers/spree/products_controller_decorator.rb
168
+ - app/controllers/spree/taxons_controller_decorator.rb
169
+ - app/helpers/spree/products_helper_decorator.rb
170
+ - app/mailers/spree/carton_mailer_decorator.rb
171
+ - app/mailers/spree/order_mailer.rb
172
+ - app/models/spree/order_decorator.rb
173
+ - app/models/spree/payment_method_decorator.rb
174
+ - app/models/spree/product_decorator.rb
175
+ - app/models/spree/promotion/rules/store.rb
176
+ - app/models/spree/shipping_method_decorator.rb
177
+ - app/models/spree/store_decorator.rb
178
+ - app/models/spree/store_payment_method.rb
179
+ - app/models/spree/store_shipping_method.rb
180
+ - app/models/spree/taxon_decorator.rb
181
+ - app/models/spree/taxonomy_decorator.rb
182
+ - app/models/spree/tracker_decorator.rb
183
+ - app/models/spree_multi_domain/line_item_decorator.rb
184
+ - app/overrides/decorate_admin_configurations_index.rb
185
+ - app/overrides/decorate_admin_products_form.rb
186
+ - app/overrides/decorate_admin_products_index.rb
187
+ - app/overrides/decorate_admin_trackers_form.rb
188
+ - app/overrides/decorate_admin_trackers_index.rb
189
+ - app/views/spree/admin/products/_index_headers.html.erb
190
+ - app/views/spree/admin/products/_index_rows.html.erb
191
+ - app/views/spree/admin/products/_index_search_fields.html.erb
192
+ - app/views/spree/admin/products/_stores.html.erb
193
+ - app/views/spree/admin/promotions/rules/_store.html.erb
194
+ - app/views/spree/admin/stores/_form.html.erb
195
+ - app/views/spree/admin/stores/edit.html.erb
196
+ - app/views/spree/admin/stores/index.html.erb
197
+ - app/views/spree/admin/stores/new.html.erb
198
+ - app/views/spree/admin/taxonomies/_form.html.erb
199
+ - app/views/spree/admin/trackers/_index_rows.html.erb
200
+ - app/views/spree/admin/trackers/_store.html.erb
201
+ - app/views/spree/shared/_google_analytics.html.erb
202
+ - bin/rails
203
+ - circle.yml
204
+ - config/locales/en.yml
205
+ - config/locales/fr.yml
206
+ - config/locales/pl.yml
207
+ - config/locales/ru.yml
208
+ - config/routes.rb
209
+ - db/migrate/20091202123245_add_order_store.rb
210
+ - db/migrate/20100114020535_add_store_to_tracker.rb
211
+ - db/migrate/20100227180338_create_products_stores.rb
212
+ - db/migrate/20100616204303_store_id_for_taxonomies.rb
213
+ - db/migrate/20110601125650_remove_datetime_columns_from_products_stores.rb
214
+ - db/migrate/20110601145424_add_indexes_to_products_stores.rb
215
+ - db/migrate/20120223183401_namespace.rb
216
+ - db/migrate/20121210224018_add_store_payment_methods.rb
217
+ - db/migrate/20130308084714_add_logo_to_stores.rb
218
+ - db/migrate/20130325231147_add_store_shipping_methods.rb
219
+ - db/migrate/20130412212659_add_spree_promotion_rules_stores.rb
220
+ - db/migrate/20150304200122_add_indexes.rb
221
+ - lib/assets/javascripts/spree/backend/solidus_multi_domain.js
222
+ - lib/assets/javascripts/spree/backend/store_picker.js
223
+ - lib/assets/javascripts/spree/frontend/solidus_multi_domain.js
224
+ - lib/assets/stylesheets/spree/frontend/solidus_multi_domain.css
225
+ - lib/generators/spree_multi_domain/install/install_generator.rb
226
+ - lib/solidus_multi_domain.rb
227
+ - lib/spree/controller_helpers/order_decorator.rb
228
+ - lib/spree/search/multi_domain.rb
229
+ - lib/spree_multi_domain/engine.rb
230
+ - lib/spree_multi_domain/multi_domain_helpers.rb
231
+ - solidus_multi_domain.gemspec
232
+ - spec/controllers/spree/admin/products_controller_spec.rb
233
+ - spec/controllers/spree/admin/stores_controller_spec.rb
234
+ - spec/controllers/spree/api/line_items_controller_spec.rb
235
+ - spec/controllers/spree/api/orders_controller_spec.rb
236
+ - spec/controllers/spree/api/products_controller_spec.rb
237
+ - spec/controllers/spree/api/shipments_controller_spec.rb
238
+ - spec/controllers/spree/products_controller_spec.rb
239
+ - spec/helpers/products_helper_decorator_spec.rb
240
+ - spec/mailers/carton_mailer_spec.rb
241
+ - spec/models/spree/line_item_spec.rb
242
+ - spec/models/spree/order_spec.rb
243
+ - spec/models/spree/payment_method_spec.rb
244
+ - spec/models/spree/product_spec.rb
245
+ - spec/models/spree/shipping_method_decorator_spec.rb
246
+ - spec/models/spree/store_spec.rb
247
+ - spec/models/spree/taxon_decorator_spec.rb
248
+ - spec/models/spree/tracker_spec.rb
249
+ - spec/requests/global_controller_helpers_spec.rb
250
+ - spec/requests/template_renderer_spec.rb
251
+ - spec/spec_helper.rb
252
+ - spec/support/factory_overrides.rb
253
+ homepage: https://solidus.io
254
+ licenses:
255
+ - BSD-3
256
+ metadata: {}
257
+ post_install_message:
258
+ rdoc_options: []
259
+ require_paths:
260
+ - lib
261
+ required_ruby_version: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: '2.1'
266
+ required_rubygems_version: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ requirements:
272
+ - none
273
+ rubyforge_project:
274
+ rubygems_version: 2.2.0
275
+ signing_key:
276
+ specification_version: 4
277
+ summary: Adds multiple site support to Solidus
278
+ test_files: []