spree_core 4.2.0.rc1 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js +16 -0
  3. data/app/controllers/spree/base_controller.rb +2 -3
  4. data/app/controllers/spree/errors_controller.rb +11 -0
  5. data/app/finders/spree/addresses/find.rb +1 -12
  6. data/app/finders/spree/base_finder.rb +14 -0
  7. data/app/finders/spree/countries/find.rb +11 -3
  8. data/app/finders/spree/credit_cards/find.rb +2 -2
  9. data/app/finders/spree/orders/find_current.rb +2 -2
  10. data/app/finders/spree/products/find.rb +14 -3
  11. data/app/helpers/spree/base_helper.rb +4 -9
  12. data/app/helpers/spree/currency_helper.rb +24 -0
  13. data/app/helpers/spree/locale_helper.rb +31 -0
  14. data/app/helpers/spree/products_helper.rb +37 -12
  15. data/app/mailers/spree/base_mailer.rb +4 -4
  16. data/app/mailers/spree/order_mailer.rb +3 -3
  17. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  18. data/app/mailers/spree/shipment_mailer.rb +1 -1
  19. data/app/models/concerns/spree/default_price.rb +1 -5
  20. data/app/models/concerns/spree/product_scopes.rb +1 -1
  21. data/app/models/concerns/spree/user_methods.rb +2 -2
  22. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  23. data/app/models/spree/ability.rb +45 -34
  24. data/app/models/spree/address.rb +4 -0
  25. data/app/models/spree/adjustment.rb +1 -0
  26. data/app/models/spree/app_configuration.rb +2 -3
  27. data/app/models/spree/app_dependencies.rb +6 -2
  28. data/app/models/spree/base.rb +5 -0
  29. data/app/models/spree/credit_card.rb +4 -0
  30. data/app/models/spree/fulfilment_changer.rb +58 -16
  31. data/app/models/spree/image.rb +14 -14
  32. data/app/models/spree/inventory_unit.rb +2 -7
  33. data/app/models/spree/line_item.rb +7 -15
  34. data/app/models/spree/log_entry.rb +1 -1
  35. data/app/models/spree/option_type.rb +2 -0
  36. data/app/models/spree/order.rb +5 -4
  37. data/app/models/spree/order/address_book.rb +7 -20
  38. data/app/models/spree/payment.rb +18 -4
  39. data/app/models/spree/payment/processing.rb +2 -2
  40. data/app/models/spree/payment_method.rb +3 -3
  41. data/app/models/spree/price.rb +2 -7
  42. data/app/models/spree/product.rb +41 -17
  43. data/app/models/spree/promotion.rb +4 -15
  44. data/app/models/spree/promotion/rules/option_value.rb +1 -1
  45. data/app/models/spree/promotion/rules/product.rb +2 -1
  46. data/app/models/spree/promotion/rules/user.rb +2 -1
  47. data/app/models/spree/promotion_handler/coupon.rb +1 -2
  48. data/app/models/spree/refund.rb +2 -2
  49. data/app/models/spree/return_item/eligibility_validator/default.rb +0 -2
  50. data/app/models/spree/return_item/eligibility_validator/{r_m_a_required.rb → rma_required.rb} +0 -0
  51. data/app/models/spree/shipment.rb +1 -1
  52. data/app/models/spree/shipping_method.rb +1 -5
  53. data/app/models/spree/shipping_rate.rb +2 -11
  54. data/app/models/spree/stock/availability_validator.rb +3 -4
  55. data/app/models/spree/stock_item.rb +1 -5
  56. data/app/models/spree/store.rb +59 -1
  57. data/app/models/spree/store_credit.rb +1 -1
  58. data/app/models/spree/variant.rb +9 -16
  59. data/app/models/spree/zone.rb +17 -4
  60. data/app/paginators/spree/shared/paginate.rb +8 -1
  61. data/app/presenters/spree/variant_presenter.rb +2 -5
  62. data/app/services/spree/account/addresses/create.rb +6 -1
  63. data/app/services/spree/account/addresses/{base.rb → helper.rb} +1 -3
  64. data/app/services/spree/account/addresses/update.rb +6 -1
  65. data/app/services/spree/build_localized_redirect_url.rb +101 -0
  66. data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
  67. data/app/services/spree/compare_line_items.rb +4 -2
  68. data/app/sorters/spree/base_sorter.rb +35 -0
  69. data/app/sorters/spree/orders/sort.rb +1 -37
  70. data/app/sorters/spree/products/sort.rb +9 -32
  71. data/app/validators/email_validator.rb +1 -1
  72. data/app/views/spree/errors/forbidden.html.erb +0 -0
  73. data/app/views/spree/errors/unauthorized.html.erb +0 -0
  74. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +13 -2
  75. data/app/views/spree/shared/_purchased_items_table.html.erb +15 -6
  76. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +2 -2
  77. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +2 -2
  78. data/config/initializers/inflections.rb +3 -0
  79. data/config/initializers/rails61_fixes.rb +3 -0
  80. data/config/locales/en.yml +36 -63
  81. data/config/routes.rb +2 -1
  82. data/db/default/spree/stores.rb +1 -0
  83. data/db/default/spree/zones.rb +4 -1
  84. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +1 -1
  85. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +1 -0
  86. data/db/migrate/20201006110150_add_checkout_zone_field_to_store.rb +12 -0
  87. data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +10 -0
  88. data/db/migrate/20201127084048_add_default_country_kind_to_spree_zones.rb +5 -0
  89. data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +5 -0
  90. data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +10 -0
  91. data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +15 -0
  92. data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +5 -0
  93. data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +5 -0
  94. data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +11 -0
  95. data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +22 -0
  96. data/lib/generators/spree/install/install_generator.rb +9 -6
  97. data/lib/spree/core.rb +2 -1
  98. data/lib/spree/core/controller_helpers/auth.rb +3 -1
  99. data/lib/spree/core/controller_helpers/common.rb +6 -8
  100. data/lib/spree/core/controller_helpers/currency.rb +47 -0
  101. data/lib/spree/core/controller_helpers/locale.rb +58 -0
  102. data/lib/spree/core/controller_helpers/search.rb +1 -1
  103. data/lib/spree/core/controller_helpers/store.rb +4 -16
  104. data/lib/spree/core/importer/order.rb +9 -9
  105. data/lib/spree/core/product_filters.rb +3 -3
  106. data/lib/spree/core/version.rb +1 -1
  107. data/lib/spree/i18n.rb +17 -19
  108. data/lib/spree/permitted_attributes.rb +2 -2
  109. data/lib/spree/service_module.rb +8 -4
  110. data/lib/spree/testing_support/capybara_config.rb +1 -1
  111. data/lib/spree/testing_support/common_rake.rb +1 -1
  112. data/lib/spree/testing_support/controller_requests.rb +10 -10
  113. data/lib/spree/testing_support/factories/promotion_factory.rb +29 -17
  114. data/lib/spree/testing_support/factories/shipment_factory.rb +7 -9
  115. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
  116. data/lib/spree/testing_support/factories/store_factory.rb +1 -0
  117. data/lib/spree/testing_support/factories/zone_factory.rb +16 -13
  118. data/lib/spree/testing_support/flatpickr_capybara.rb +101 -0
  119. data/lib/spree/testing_support/i18n.rb +1 -1
  120. data/lib/spree/testing_support/locale_helpers.rb +71 -0
  121. data/lib/spree/testing_support/next_instance_of.rb +38 -0
  122. data/lib/spree/testing_support/order_walkthrough.rb +8 -3
  123. data/lib/spree/testing_support/rspec_retry_config.rb +10 -0
  124. data/spree_core.gemspec +6 -5
  125. metadata +74 -27
  126. data/lib/generators/spree/install/templates/config/initializers/spree_storefront.rb +0 -1
  127. data/lib/generators/spree/install/templates/config/spree_storefront.yml +0 -67
  128. data/lib/spree/core/controller_helpers/currency_helpers.rb +0 -15
  129. data/lib/spree/i18n/base.rb +0 -17
  130. data/lib/spree/i18n/initializer.rb +0 -1
data/config/routes.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  Spree::Core::Engine.add_routes do
2
- get '/forbidden', to: 'home#forbidden', as: :forbidden
2
+ get '/forbidden', to: 'errors#forbidden', as: :forbidden
3
+ get '/unauthorized', to: 'errors#unauthorized', as: :unauthorized
3
4
  end
4
5
 
5
6
  Spree::Core::Engine.draw_routes
@@ -11,6 +11,7 @@ else
11
11
  s.customer_support_email = 'support@example.com'
12
12
  s.default_currency = 'USD'
13
13
  s.default_country_id = Spree::Config[:default_country_id]
14
+ s.default_locale = I18n.locale
14
15
  s.seo_title = 'Spree Commerce Demo Shop'
15
16
  s.meta_description = 'This is the new Spree UX DEMO | OVERVIEW: http://bit.ly/new-spree-ux | DOCS: http://bit.ly/spree-ux-customization-docs | CONTACT: https://spreecommerce.org/contact/'
16
17
  s.facebook = 'spreecommerce'
@@ -1,13 +1,16 @@
1
1
  eu_vat = Spree::Zone.where(name: 'EU_VAT', description: 'Countries that make up the EU VAT zone.', kind: 'country').first_or_create!
2
+ uk_vat = Spree::Zone.where(name: 'UK_VAT', kind: 'country').first_or_create!
2
3
  north_america = Spree::Zone.where(name: 'North America', description: 'USA + Canada', kind: 'country').first_or_create!
3
4
  south_america = Spree::Zone.where(name: 'South America', description: 'South America', kind: 'country').first_or_create!
4
5
  middle_east = Spree::Zone.where(name: 'Middle East', description: 'Middle East', kind: 'country').first_or_create!
5
6
  asia = Spree::Zone.where(name: 'Asia', description: 'Asia', kind: 'country').first_or_create!
6
7
 
7
- %w(PL FI PT RO DE FR SK HU SI IE AT ES IT BE SE LV BG GB LT CY LU MT DK NL EE HR CZ GR).each do |name|
8
+ %w(PL FI PT RO DE FR SK HU SI IE AT ES IT BE SE LV BG LT CY LU MT DK NL EE HR CZ GR).each do |name|
8
9
  eu_vat.zone_members.where(zoneable: Spree::Country.find_by!(iso: name)).first_or_create!
9
10
  end
10
11
 
12
+ uk_vat.zone_members.where(zoneable: Spree::Country.find_by(iso: 'GB')).first_or_create!
13
+
11
14
  %w(US CA).each do |name|
12
15
  north_america.zone_members.where(zoneable: Spree::Country.find_by!(iso: name)).first_or_create!
13
16
  end
@@ -1,4 +1,4 @@
1
- class AddStockLocationToRma < ActiveRecord::Migration[4.2]
1
+ class AddStockLocationToRMA < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :spree_return_authorizations, :stock_location_id, :integer
4
4
  end
@@ -2,6 +2,7 @@ class AddSupportedCurrenciesToStore < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  unless column_exists?(:spree_stores, :supported_currencies)
4
4
  add_column :spree_stores, :supported_currencies, :string
5
+ Spree::Store.reset_column_information
5
6
  Spree::Store.all.each do |store|
6
7
  store.update_attribute(:supported_currencies, store.default_currency)
7
8
  end
@@ -0,0 +1,12 @@
1
+ class AddCheckoutZoneFieldToStore < ActiveRecord::Migration[6.0]
2
+ def change
3
+ unless column_exists?(:spree_stores, :checkout_zone_id)
4
+ add_column :spree_stores, :checkout_zone_id, :integer
5
+
6
+ Spree::Store.reset_column_information
7
+
8
+ default_zone = Spree::Zone.default_checkout_zone
9
+ Spree::Store.update_all(checkout_zone_id: default_zone.id) if default_zone.present?
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ class AddFilterableColumnToSpreeOptionTypes < ActiveRecord::Migration[6.0]
2
+ def change
3
+ unless column_exists?(:spree_option_types, :filterable)
4
+ add_column :spree_option_types, :filterable, :boolean, default: true, null: false
5
+ end
6
+ unless index_exists?(:spree_option_types, :filterable)
7
+ add_index :spree_option_types, :filterable
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ class AddDefaultCountryKindToSpreeZones < ActiveRecord::Migration[6.0]
2
+ def change
3
+ change_column_default(:spree_zones, :kind, :state)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveContactEmailFromSpreeStores < ActiveRecord::Migration[6.0]
2
+ def change
3
+ remove_column :spree_stores, :contact_email
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSpreePaymentMethodsStores < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :spree_payment_methods_stores, id: false do |t|
4
+ t.belongs_to :payment_method
5
+ t.belongs_to :store
6
+ end
7
+
8
+ add_index :spree_payment_methods_stores, [:payment_method_id, :store_id], unique: true, name: 'payment_mentod_id_store_id_unique_index'
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ class MigrateDataPaymentMethodsStores < ActiveRecord::Migration[6.0]
2
+ def up
3
+ Spree::PaymentMethod.all.each do |payment_method|
4
+ next if payment_method.store_ids.any?
5
+
6
+ if payment_method[:store_id].present?
7
+ payment_method.store_ids = payment_method[:store_id]
8
+ else
9
+ payment_method.store_ids = Spree::Store.ids
10
+ end
11
+
12
+ payment_method.save
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveStoreIdFromSpreePaymentMethods < ActiveRecord::Migration[6.0]
2
+ def change
3
+ remove_column :spree_payment_methods, :store_id, :integer
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class EnsureDefaultLocaleInSpreeStores < ActiveRecord::Migration[6.0]
2
+ def change
3
+ Spree::Store.where(default_locale: nil).update_all(default_locale: I18n.locale)
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class AddSupportedLocalesToSpreeStores < ActiveRecord::Migration[6.0]
2
+ def change
3
+ unless column_exists?(:spree_stores, :supported_locales)
4
+ add_column :spree_stores, :supported_locales, :string
5
+ Spree::Store.reset_column_information
6
+ Spree::Store.all.each do |store|
7
+ store.update_attribute(:supported_locales, store.default_locale)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,22 @@
1
+ class MigrateSpreeI18nGlobalizeConfig < ActiveRecord::Migration[6.0]
2
+ def up
3
+ locales = []
4
+
5
+ if defined?(SpreeI18n) && defined?(SpreeI18n::Config)
6
+ locales = (locales << SpreeI18n::Config[:available_locales]).flatten.uniq.compact
7
+ end
8
+
9
+ if defined?(SpreeGlobalize) && defined?(SpreeGlobalize::Config)
10
+ locales = (locales << SpreeGlobalize::Config[:supported_locales]).flatten.uniq.compact
11
+ end
12
+
13
+ default_store = Spree::Store.default
14
+ if default_store.supported_locales.blank? || default_store.supported_locales == default_store.default_locale
15
+ locales = (locales << default_store.default_locale).uniq.compact.join(',')
16
+ default_store.update(supported_locales: locales)
17
+ end
18
+ end
19
+
20
+ def down
21
+ end
22
+ end
@@ -10,7 +10,8 @@ module Spree
10
10
  class_option :migrate, type: :boolean, default: true, banner: 'Run Spree migrations'
11
11
  class_option :seed, type: :boolean, default: true, banner: 'load seed data (migrations must be run)'
12
12
  class_option :sample, type: :boolean, default: true, banner: 'load sample data (migrations must be run)'
13
- class_option :copy_storefront, type: :boolean, default: true, banner: 'copy storefront from spree frontend to your application for easy customization'
13
+ class_option :install_storefront, type: :boolean, default: true, banner: 'installs storefront configuration files'
14
+ class_option :copy_storefront, type: :boolean, default: false, banner: 'copy all storefront views and stylesheets'
14
15
  class_option :auto_accept, type: :boolean
15
16
  class_option :user_class, type: :string
16
17
  class_option :admin_email, type: :string
@@ -30,6 +31,7 @@ module Spree
30
31
  @run_migrations = options[:migrate]
31
32
  @load_seed_data = options[:seed]
32
33
  @load_sample_data = options[:sample]
34
+ @install_storefront = options[:install_storefront]
33
35
  @copy_storefront = options[:copy_storefront]
34
36
 
35
37
  unless @run_migrations
@@ -40,11 +42,6 @@ module Spree
40
42
 
41
43
  def add_files
42
44
  template 'config/initializers/spree.rb', 'config/initializers/spree.rb'
43
-
44
- if Spree::Core::Engine.frontend_available? || Rails.env.test?
45
- template 'config/initializers/spree_storefront.rb', 'config/initializers/spree_storefront.rb'
46
- template 'config/spree_storefront.yml', 'config/spree_storefront.yml'
47
- end
48
45
  end
49
46
 
50
47
  def additional_tweaks
@@ -91,6 +88,12 @@ module Spree
91
88
  empty_directory 'app/overrides'
92
89
  end
93
90
 
91
+ def install_storefront
92
+ if @install_storefront && Spree::Core::Engine.frontend_available?
93
+ generate 'spree:frontend:install'
94
+ end
95
+ end
96
+
94
97
  def copy_storefront
95
98
  if @copy_storefront && Spree::Core::Engine.frontend_available?
96
99
  generate 'spree:frontend:copy_storefront'
data/lib/spree/core.rb CHANGED
@@ -105,4 +105,5 @@ require 'spree/core/controller_helpers/order'
105
105
  require 'spree/core/controller_helpers/search'
106
106
  require 'spree/core/controller_helpers/store'
107
107
  require 'spree/core/controller_helpers/strong_parameters'
108
- require 'spree/core/controller_helpers/currency_helpers'
108
+ require 'spree/core/controller_helpers/locale'
109
+ require 'spree/core/controller_helpers/currency'
@@ -76,7 +76,9 @@ module Spree
76
76
  redirect_to spree.forbidden_path
77
77
  else
78
78
  store_location
79
- if respond_to?(:spree_login_path)
79
+ if request.fullpath.match(Spree.admin_path) && defined?(spree.admin_login_path)
80
+ redirect_to spree.admin_login_path
81
+ elsif respond_to?(:spree_login_path)
80
82
  redirect_to spree_login_path
81
83
  elsif spree.respond_to?(:root_path)
82
84
  redirect_to spree.root_path
@@ -10,8 +10,6 @@ module Spree
10
10
 
11
11
  layout :get_layout
12
12
 
13
- before_action :set_user_language
14
-
15
13
  protected
16
14
 
17
15
  # can be used in views as well as controllers.
@@ -43,12 +41,12 @@ module Spree
43
41
  private
44
42
 
45
43
  def set_user_language
46
- locale = session[:locale]
47
- locale = store_locale if respond_to?(:store_locale, true) && locale.blank?
48
- locale = config_locale if respond_to?(:config_locale, true) && locale.blank?
49
- locale = Rails.application.config.i18n.default_locale if locale.blank?
50
- locale = I18n.default_locale unless I18n.available_locales.map(&:to_s).include?(locale.to_s)
51
- I18n.locale = locale
44
+ ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
45
+ ControllerHelpers::Common#set_user_language is deprecated and will be removed in Spree 5.0.
46
+ Please use `before_action :set_locale` instead
47
+ DEPRECATION
48
+
49
+ set_locale
52
50
  end
53
51
 
54
52
  # Returns which layout to render.
@@ -0,0 +1,47 @@
1
+ module Spree
2
+ module Core
3
+ module ControllerHelpers
4
+ module Currency
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ helper_method :supported_currencies
9
+ helper_method :supported_currencies_for_all_stores
10
+ helper_method :current_currency
11
+ helper_method :supported_currency?
12
+ end
13
+
14
+ def current_currency
15
+ @current_currency ||= if defined?(session) && session.key?(:currency) && supported_currency?(session[:currency])
16
+ session[:currency]
17
+ elsif params[:currency].present? && supported_currency?(params[:currency])
18
+ params[:currency]
19
+ elsif current_store.present?
20
+ current_store.default_currency
21
+ else
22
+ Spree::Config[:currency]
23
+ end&.upcase
24
+ end
25
+
26
+ def supported_currencies
27
+ @supported_currencies ||= current_store&.supported_currencies_list
28
+ end
29
+
30
+ def supported_currencies_for_all_stores
31
+ @supported_currencies_for_all_stores ||= begin
32
+ (
33
+ Spree::Store.pluck(:supported_currencies).map { |c| c&.split(',') }.flatten + Spree::Store.pluck(:default_currency)
34
+ ).
35
+ compact.uniq.map { |code| ::Money::Currency.find(code.strip) }
36
+ end
37
+ end
38
+
39
+ def supported_currency?(currency_iso_code)
40
+ return false if supported_currencies.nil?
41
+
42
+ supported_currencies.map(&:iso_code).include?(currency_iso_code.upcase)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,58 @@
1
+ module Spree
2
+ module Core
3
+ module ControllerHelpers
4
+ module Locale
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ before_action :set_locale
9
+
10
+ helper_method :supported_locales
11
+ helper_method :supported_locales_for_all_stores
12
+ helper_method :current_locale
13
+ helper_method :supported_locale?
14
+ helper_method :available_locales
15
+ helper_method :locale_param
16
+ end
17
+
18
+ def set_locale
19
+ I18n.locale = current_locale
20
+ end
21
+
22
+ def current_locale
23
+ @current_locale ||= if params[:locale].present? && supported_locale?(params[:locale])
24
+ params[:locale]
25
+ elsif respond_to?(:config_locale, true) && config_locale.present?
26
+ config_locale
27
+ else
28
+ current_store&.default_locale || Rails.application.config.i18n.default_locale || I18n.default_locale
29
+ end
30
+ end
31
+
32
+ def supported_locales
33
+ @supported_locales ||= current_store&.supported_locales_list
34
+ end
35
+
36
+ def supported_locale?(locale_code)
37
+ return false if supported_locales.nil?
38
+
39
+ supported_locales.include?(locale_code&.to_s)
40
+ end
41
+
42
+ def supported_locales_for_all_stores
43
+ @supported_locales_for_all_stores ||= Spree.available_locales
44
+ end
45
+
46
+ def available_locales
47
+ Spree::Store.available_locales
48
+ end
49
+
50
+ def locale_param
51
+ return if I18n.locale.to_s == current_store.default_locale || current_store.default_locale.nil?
52
+
53
+ I18n.locale.to_s
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -5,7 +5,7 @@ module Spree
5
5
  def build_searcher(params)
6
6
  Spree::Config.searcher_class.new(params).tap do |searcher|
7
7
  searcher.current_user = try_spree_current_user
8
- searcher.current_currency = current_currency
8
+ searcher.current_currency = current_currency&.upcase
9
9
  end
10
10
  end
11
11
  end
@@ -5,30 +5,18 @@ module Spree
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- helper_method :supported_currencies
9
- helper_method :current_currency
10
8
  helper_method :current_store
11
9
  helper_method :current_price_options
12
10
  end
13
11
 
14
- def current_currency
15
- if defined?(session) && session.key?(:currency) && supported_currencies.map(&:iso_code).include?(session[:currency])
16
- session[:currency]
17
- elsif params[:currency].present? && supported_currencies.map(&:iso_code).include?(params[:currency])
18
- params[:currency]
19
- else
20
- current_store.default_currency
21
- end
22
- end
23
-
24
- def supported_currencies
25
- current_store.supported_currencies_list
26
- end
27
-
28
12
  def current_store
29
13
  @current_store ||= Spree::Store.current(request.env['SERVER_NAME'])
30
14
  end
31
15
 
16
+ def store_locale
17
+ current_store.default_locale
18
+ end
19
+
32
20
  # Return a Hash of things that influence the prices displayed in your shop.
33
21
  #
34
22
  # By default, the only thing that influences prices that is the current order's +tax_zone+
@@ -38,7 +38,7 @@ module Spree
38
38
  end
39
39
  end
40
40
  order.reload
41
- rescue Exception => e
41
+ rescue StandardError => e
42
42
  order.destroy if order&.persisted?
43
43
  raise e.message
44
44
  end
@@ -80,7 +80,7 @@ module Spree
80
80
 
81
81
  adjustments = s.delete(:adjustments_attributes)
82
82
  create_adjustments_from_params(adjustments, order, shipment)
83
- rescue Exception => e
83
+ rescue StandardError => e
84
84
  raise "Order import shipments: #{e.message} #{s}"
85
85
  end
86
86
  end
@@ -115,7 +115,7 @@ module Spree
115
115
  line_item.save!
116
116
  end
117
117
  create_adjustments_from_params(adjustments, order, line_item)
118
- rescue Exception => e
118
+ rescue StandardError => e
119
119
  raise "Order import line items: #{e.message} #{line_item}"
120
120
  end
121
121
  end
@@ -132,7 +132,7 @@ module Spree
132
132
  )
133
133
  adjustment.save!
134
134
  adjustment.close!
135
- rescue Exception => e
135
+ rescue StandardError => e
136
136
  raise "Order import adjustments: #{e.message} #{a}"
137
137
  end
138
138
  end
@@ -150,7 +150,7 @@ module Spree
150
150
  payment.payment_method = Spree::PaymentMethod.find_by!(name: p[:payment_method])
151
151
  payment.source = create_source_payment_from_params(p[:source], payment) if p[:source]
152
152
  payment.save!
153
- rescue Exception => e
153
+ rescue StandardError => e
154
154
  raise "Order import payments: #{e.message} #{p}"
155
155
  end
156
156
  end
@@ -167,7 +167,7 @@ module Spree
167
167
  gateway_payment_profile_id: source_hash[:gateway_payment_profile_id],
168
168
  imported: true
169
169
  )
170
- rescue Exception => e
170
+ rescue StandardError => e
171
171
  raise "Order import source payments: #{e.message} #{source_hash}"
172
172
  end
173
173
 
@@ -179,7 +179,7 @@ module Spree
179
179
  hash
180
180
  rescue ActiveRecord::RecordNotFound => e
181
181
  raise "Ensure order import variant: Variant w/SKU #{sku} not found."
182
- rescue Exception => e
182
+ rescue StandardError => e
183
183
  raise "Ensure order import variant: #{e.message} #{hash}"
184
184
  end
185
185
 
@@ -200,7 +200,7 @@ module Spree
200
200
 
201
201
  address.delete(:country)
202
202
  address[:country_id] = Spree::Country.where(search).first!.id
203
- rescue Exception => e
203
+ rescue StandardError => e
204
204
  raise "Ensure order import address country: #{e.message} #{search}"
205
205
  end
206
206
  end
@@ -224,7 +224,7 @@ module Spree
224
224
  else
225
225
  address[:state_name] = search[:name] || search[:abbr]
226
226
  end
227
- rescue Exception => e
227
+ rescue StandardError => e
228
228
  raise "Ensure order import address state: #{e.message} #{search}"
229
229
  end
230
230
  end