spree_core 4.6.6 → 4.7.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/app/finders/spree/countries/find.rb +1 -1
  3. data/app/finders/spree/products/find.rb +1 -1
  4. data/app/finders/spree/taxons/find.rb +3 -9
  5. data/app/helpers/spree/base_helper.rb +1 -5
  6. data/app/helpers/spree/products_helper.rb +3 -3
  7. data/app/models/concerns/spree/metadata.rb +7 -2
  8. data/app/models/concerns/spree/translatable_resource.rb +1 -1
  9. data/app/models/concerns/spree/user_roles.rb +3 -3
  10. data/app/models/spree/address.rb +6 -4
  11. data/app/models/spree/asset.rb +1 -1
  12. data/app/models/spree/base.rb +5 -1
  13. data/app/models/spree/calculator/default_tax.rb +1 -1
  14. data/app/models/spree/cms/sections/image_gallery.rb +1 -7
  15. data/app/models/spree/cms/sections/side_by_side_images.rb +1 -7
  16. data/app/models/spree/cms_page.rb +1 -1
  17. data/app/models/spree/cms_section.rb +1 -1
  18. data/app/models/spree/country.rb +2 -2
  19. data/app/models/spree/credit_card.rb +1 -1
  20. data/app/models/spree/customer_return.rb +2 -2
  21. data/app/models/spree/digital_link.rb +5 -1
  22. data/app/models/spree/line_item.rb +1 -1
  23. data/app/models/spree/option_type.rb +3 -3
  24. data/app/models/spree/option_value.rb +2 -2
  25. data/app/models/spree/order/store_credit.rb +0 -8
  26. data/app/models/spree/order.rb +7 -7
  27. data/app/models/spree/payment.rb +7 -15
  28. data/app/models/spree/payment_method.rb +1 -1
  29. data/app/models/spree/payment_source.rb +1 -1
  30. data/app/models/spree/preference.rb +5 -1
  31. data/app/models/spree/price.rb +1 -1
  32. data/app/models/spree/product.rb +9 -18
  33. data/app/models/spree/product_property.rb +1 -1
  34. data/app/models/spree/promotion.rb +2 -2
  35. data/app/models/spree/property.rb +2 -2
  36. data/app/models/spree/prototype.rb +1 -1
  37. data/app/models/spree/refund.rb +1 -1
  38. data/app/models/spree/reimbursement.rb +1 -1
  39. data/app/models/spree/return_authorization.rb +1 -1
  40. data/app/models/spree/return_item.rb +5 -1
  41. data/app/models/spree/shipment.rb +3 -3
  42. data/app/models/spree/shipping_method.rb +1 -1
  43. data/app/models/spree/stock/estimator.rb +1 -1
  44. data/app/models/spree/stock/splitter/weight.rb +1 -1
  45. data/app/models/spree/stock_item.rb +1 -1
  46. data/app/models/spree/stock_transfer.rb +3 -3
  47. data/app/models/spree/store.rb +2 -2
  48. data/app/models/spree/store_credit.rb +1 -1
  49. data/app/models/spree/taxon.rb +3 -3
  50. data/app/models/spree/taxonomy.rb +2 -2
  51. data/app/models/spree/variant.rb +2 -2
  52. data/app/models/spree/wishlist.rb +5 -1
  53. data/app/models/spree/zone.rb +1 -1
  54. data/app/services/spree/seeds/countries.rb +12 -27
  55. data/app/services/spree/seeds/states.rb +8 -17
  56. data/app/services/spree/stock_locations/stock_items/create.rb +12 -18
  57. data/app/validators/db_maximum_length_validator.rb +2 -6
  58. data/config/initializers/rails61_fixes.rb +1 -3
  59. data/config/locales/en.yml +6 -0
  60. data/lib/spree/core/configuration.rb +1 -1
  61. data/lib/spree/core/controller_helpers/auth.rb +1 -1
  62. data/lib/spree/core/controller_helpers/common.rb +5 -5
  63. data/lib/spree/core/engine.rb +1 -0
  64. data/lib/spree/core/preferences/preferable_class_methods.rb +1 -1
  65. data/lib/spree/core/version.rb +1 -1
  66. data/lib/spree/testing_support/controller_requests.rb +10 -10
  67. data/spree_core.gemspec +3 -3
  68. metadata +24 -31
  69. data/app/models/spree/order_contents.rb +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fae2e48673736c835ed7a9d9b5fdf18a35df19ce09eb27a92c6b13376e62a46e
4
- data.tar.gz: e48f60fe8dcbeaa67028bb4ce9e23baba71f33afb32ff04be86636c60c9ed378
3
+ metadata.gz: b694ef25dfdd98db89c6c36a42cc50de19b6dab09cc827c5273e57dc066f38d6
4
+ data.tar.gz: '09ecb007e8e2181ace749a1b6776c8fe62eafdb07f321238d5fd69670f209206'
5
5
  SHA512:
6
- metadata.gz: 706d673aa098f26442eafe06fd1b7eab7dd7267bb9514b3c6f2f1124eff2ea950c5d1dfdde5f8d1c7258c41c9fb5456e0655a2249fa91331267ebef397bf97c8
7
- data.tar.gz: 2bb5c0f817b50bdafd1a83708bf6f85cf0b9d69ca605bb48c936d7225fdf3fcf036a0f44e5e901ed9365bf17fc6b826f5190af5841d0e5eb6c1b5ce02e1e49c2
6
+ metadata.gz: 3620378de0b17967f36b2d0a4c72e302aa25dae3f700aaf09e2d9b9cec73bf4b924a81a273beb9da245571c1c48128e5ad53c26539a7f8de04b0c38cdbb31d20
7
+ data.tar.gz: f902de746ff1dfbeef5f778f6cc204db4c47477fd76c8a0eeea60874fa45a188be8cf33ca1462240f636f57394cf790f71ce6dbdd2ac48bf756aa4e3379b059f
@@ -8,7 +8,7 @@ module Spree
8
8
  end
9
9
 
10
10
  def call
11
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
11
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
12
12
  Spree::Countries::Find.new.call is deprecated and will be removed in Spree 5.0.
13
13
  Please use Spree::Countries::Find.new.execute instead
14
14
  DEPRECATION
@@ -5,7 +5,7 @@ module Spree
5
5
  @scope = scope
6
6
 
7
7
  if current_currency.present?
8
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
8
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
9
9
  `current_currency` param is deprecated and will be removed in Spree 5.
10
10
  Please pass `:currency` in `params` hash instead.
11
11
  DEPRECATION
@@ -65,15 +65,9 @@ module Spree
65
65
  def by_parent_permalink(taxons)
66
66
  return taxons unless parent_permalink?
67
67
 
68
- if Rails::VERSION::STRING >= '6.1'
69
- taxons.joins(:parent).
70
- join_translation_table(Taxon, 'parents_spree_taxons').
71
- where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
72
- else
73
- taxons.joins("INNER JOIN #{Spree::Taxon.table_name} AS parent_taxon ON parent_taxon.id = #{Spree::Taxon.table_name}.parent_id").
74
- join_translation_table(Taxon, 'parent_taxon').
75
- where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
76
- end
68
+ taxons.joins(:parent).
69
+ join_translation_table(Taxon, 'parents_spree_taxons').
70
+ where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
77
71
  end
78
72
 
79
73
  def by_taxonomy(taxons)
@@ -55,7 +55,7 @@ module Spree
55
55
  end
56
56
 
57
57
  def logo(image_path = nil, options = {})
58
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
58
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
59
59
  `BaseHelper#logo` is deprecated and will be removed in Spree 5.0.
60
60
  Please use `FrontendHelper#logo` instead
61
61
  DEPRECATION
@@ -174,10 +174,6 @@ module Spree
174
174
  Spree::Core::Engine.frontend_available?
175
175
  end
176
176
 
177
- def rails_5?
178
- Rails::VERSION::STRING < '6.0'
179
- end
180
-
181
177
  def spree_storefront_resource_url(resource, options = {})
182
178
  if defined?(locale_param) && locale_param.present?
183
179
  options.merge!(locale: locale_param)
@@ -53,7 +53,7 @@ module Spree
53
53
  end
54
54
 
55
55
  def cache_key_for_products(products = @products, additional_cache_key = nil)
56
- max_updated_at = (products.except(:group, :order).maximum(:updated_at) || Date.today).to_s(:number)
56
+ max_updated_at = (products.except(:group, :order).maximum(:updated_at) || Date.today).to_formatted_s(:number)
57
57
  products_cache_keys = "spree/products/#{products.map(&:id).join('-')}-#{params[:page]}-#{params[:sort_by]}-#{max_updated_at}-#{@taxon&.id}"
58
58
  (common_product_cache_keys + [products_cache_keys] + [additional_cache_key]).compact.join('/')
59
59
  end
@@ -76,7 +76,7 @@ module Spree
76
76
 
77
77
  # will return a human readable string
78
78
  def available_status(product)
79
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
79
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
80
80
  `Spree::ProductsHelper#available_status` method from spree/core is deprecated and will be removed.
81
81
  Please use `Spree::Admin::ProductsHelper#available_status` from spree_backend instead.
82
82
  DEPRECATION
@@ -140,7 +140,7 @@ module Spree
140
140
  end
141
141
 
142
142
  def related_products
143
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
143
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
144
144
  ProductsHelper#related_products is deprecated and will be removed in Spree 5.0.
145
145
  Please use ProductsHelper#relations from now on.
146
146
  DEPRECATION
@@ -5,8 +5,13 @@ module Spree
5
5
  included do
6
6
  attribute :public_metadata, default: {}
7
7
  attribute :private_metadata, default: {}
8
- serialize :public_metadata, HashSerializer
9
- serialize :private_metadata, HashSerializer
8
+ if Rails::VERSION::STRING >= '7.1.0'
9
+ serialize :public_metadata, coder: HashSerializer
10
+ serialize :private_metadata, coder: HashSerializer
11
+ else
12
+ serialize :public_metadata, HashSerializer
13
+ serialize :private_metadata, HashSerializer
14
+ end
10
15
  end
11
16
 
12
17
  # https://nandovieira.com/using-postgresql-and-jsonb-with-ruby-on-rails
@@ -18,7 +18,7 @@ module Spree
18
18
  end
19
19
 
20
20
  def translation_table_alias
21
- "#{self::Translation.table_name}_#{Mobility.normalize_locale(Mobility.locale)}"
21
+ "#{self::Translation.table_name}_#{Mobility.locale}"
22
22
  end
23
23
  end
24
24
  end
@@ -14,19 +14,19 @@ module Spree
14
14
  end
15
15
 
16
16
  def self.admin
17
- ActiveSupport::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')
17
+ Spree::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')
18
18
 
19
19
  spree_admin
20
20
  end
21
21
 
22
22
  def self.admin_created?
23
- ActiveSupport::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')
23
+ Spree::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')
24
24
 
25
25
  spree_admin_created?
26
26
  end
27
27
 
28
28
  def admin?
29
- ActiveSupport::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')
29
+ Spree::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')
30
30
 
31
31
  spree_admin?
32
32
  end
@@ -2,7 +2,7 @@ module Spree
2
2
  class Address < Spree::Base
3
3
  require 'validates_zipcode'
4
4
 
5
- include Spree::Metadata
5
+ include Metadata
6
6
  if defined?(Spree::Webhooks)
7
7
  include Spree::Webhooks::HasWebhooks
8
8
  end
@@ -10,7 +10,9 @@ module Spree
10
10
  include Spree::Security::Addresses
11
11
  end
12
12
 
13
- if Rails::VERSION::STRING >= '6.1'
13
+ if Rails::VERSION::STRING >= '7.1.0'
14
+ serialize :preferences, type: Hash, coder: YAML, default: {}
15
+ else
14
16
  serialize :preferences, Hash, default: {}
15
17
  end
16
18
 
@@ -67,7 +69,7 @@ module Spree
67
69
  self.whitelisted_ransackable_associations = %w[country state user]
68
70
 
69
71
  def self.build_default
70
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
72
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
71
73
  `Address#build_default` is deprecated and will be removed in Spree 5.0.
72
74
  Please use standard rails `Address.new(country: current_store.default_country)`
73
75
  DEPRECATION
@@ -75,7 +77,7 @@ module Spree
75
77
  end
76
78
 
77
79
  def self.default(user = nil, kind = 'bill')
78
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
80
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
79
81
  `Address#default` is deprecated and will be removed in Spree 5.0.
80
82
  DEPRECATION
81
83
  if user && user_address = user.public_send(:"#{kind}_address")
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class Asset < Spree::Base
3
3
  include Support::ActiveStorage
4
- include Spree::Metadata
4
+ include Metadata
5
5
  if defined?(Spree::Webhooks)
6
6
  include Spree::Webhooks::HasWebhooks
7
7
  end
@@ -1,6 +1,10 @@
1
1
  class Spree::Base < ApplicationRecord
2
2
  include Spree::Preferences::Preferable
3
- serialize :preferences, Hash
3
+ if Rails::VERSION::STRING >= '7.1.0'
4
+ serialize :preferences, type: Hash, coder: YAML
5
+ else
6
+ serialize :preferences, Hash
7
+ end
4
8
 
5
9
  include Spree::RansackableAttributes
6
10
  include Spree::TranslatableResourceScopes
@@ -2,7 +2,7 @@ require_dependency 'spree/calculator'
2
2
 
3
3
  module Spree
4
4
  class Calculator::DefaultTax < Calculator
5
- include Spree::VatPriceCalculation
5
+ include VatPriceCalculation
6
6
  def self.description
7
7
  Spree.t(:default_tax)
8
8
  end
@@ -3,11 +3,7 @@ module Spree::Cms::Sections
3
3
  after_initialize :default_values
4
4
  validate :reset_multiple_link_attributes
5
5
 
6
- LINKED_RESOURCE_TYPE = if Rails::VERSION::STRING < '6.0'
7
- ['Spree::Taxon'].freeze
8
- else
9
- ['Spree::Taxon', 'Spree::Product'].freeze
10
- end
6
+ LINKED_RESOURCE_TYPE = ['Spree::Taxon', 'Spree::Product'].freeze
11
7
 
12
8
  LAYOUT_OPTIONS = ['Default', 'Reversed'].freeze
13
9
  LABEL_OPTIONS = ['Show', 'Hide'].freeze
@@ -71,8 +67,6 @@ module Spree::Cms::Sections
71
67
  private
72
68
 
73
69
  def reset_multiple_link_attributes
74
- return if Rails::VERSION::STRING < '6.0'
75
-
76
70
  if link_type_one_changed?
77
71
  return if link_type_one_was.nil?
78
72
 
@@ -3,11 +3,7 @@ module Spree::Cms::Sections
3
3
  after_initialize :default_values
4
4
  validate :reset_multiple_link_attributes
5
5
 
6
- LINKED_RESOURCE_TYPE = if Rails::VERSION::STRING < '6.0'
7
- ['Spree::Taxon'].freeze
8
- else
9
- ['Spree::Taxon', 'Spree::Product'].freeze
10
- end
6
+ LINKED_RESOURCE_TYPE = ['Spree::Taxon', 'Spree::Product'].freeze
11
7
 
12
8
  store :content, accessors: [:link_type_one, :link_one, :title_one, :subtitle_one,
13
9
  :link_type_two, :link_two, :title_two, :subtitle_two], coder: JSON
@@ -49,8 +45,6 @@ module Spree::Cms::Sections
49
45
  private
50
46
 
51
47
  def reset_multiple_link_attributes
52
- return if Rails::VERSION::STRING < '6.0'
53
-
54
48
  if link_type_one_changed?
55
49
  return if link_type_one_was.nil?
56
50
 
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class CmsPage < Base
3
3
  include SingleStoreResource
4
- include Spree::DisplayLink
4
+ include DisplayLink
5
5
 
6
6
  if defined?(Spree::Webhooks)
7
7
  include Spree::Webhooks::HasWebhooks
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class CmsSection < Base
3
- include Spree::DisplayLink
3
+ include DisplayLink
4
4
 
5
5
  acts_as_list scope: :cms_page
6
6
  belongs_to :cms_page, touch: true
@@ -19,7 +19,7 @@ module Spree
19
19
  validates :name, :iso_name, :iso, :iso3, presence: true, uniqueness: { case_sensitive: false, scope: spree_base_uniqueness_scope }
20
20
 
21
21
  def self.default(store = nil)
22
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
22
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
23
23
  `Country#default` is deprecated and will be removed in Spree 5.0.
24
24
  Please use `current_store.default_country` instead
25
25
  DEPRECATION
@@ -49,7 +49,7 @@ module Spree
49
49
  private
50
50
 
51
51
  def ensure_not_default
52
- ActiveSupport::Deprecation.warn('Country#ensure_not_default is deprecated and will be removed in Spree v5')
52
+ Spree::Deprecation.warn('Country#ensure_not_default is deprecated and will be removed in Spree v5')
53
53
 
54
54
  if id.eql?(Spree::Config[:default_country_id])
55
55
  errors.add(:base, Spree.t(:default_country_cannot_be_deleted))
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class CreditCard < Spree::Base
3
3
  include ActiveMerchant::Billing::CreditCardMethods
4
- include Spree::Metadata
4
+ include Metadata
5
5
  if defined?(Spree::Webhooks)
6
6
  include Spree::Webhooks::HasWebhooks
7
7
  end
@@ -1,8 +1,8 @@
1
1
  module Spree
2
2
  class CustomerReturn < Spree::Base
3
3
  include Spree::Core::NumberGenerator.new(prefix: 'CR', length: 9)
4
- include Spree::NumberIdentifier
5
- include Spree::Metadata
4
+ include NumberIdentifier
5
+ include Metadata
6
6
  if defined?(Spree::Webhooks)
7
7
  include Spree::Webhooks::HasWebhooks
8
8
  end
@@ -1,6 +1,10 @@
1
1
  module Spree
2
2
  class DigitalLink < Spree::Base
3
- has_secure_token
3
+ if Rails::VERSION::STRING >= '7.1.0'
4
+ has_secure_token on: :save
5
+ else
6
+ has_secure_token
7
+ end
4
8
 
5
9
  if defined?(Spree::Webhooks)
6
10
  include Spree::Webhooks::HasWebhooks
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class LineItem < Spree::Base
3
- include Spree::Metadata
3
+ include Metadata
4
4
  if defined?(Spree::Webhooks)
5
5
  include Spree::Webhooks::HasWebhooks
6
6
  end
@@ -1,8 +1,8 @@
1
1
  module Spree
2
2
  class OptionType < Spree::Base
3
- include Spree::UniqueName
4
- include Spree::Metadata
5
- include Spree::TranslatableResource
3
+ include UniqueName
4
+ include Metadata
5
+ include TranslatableResource
6
6
  if defined?(Spree::Webhooks)
7
7
  include Spree::Webhooks::HasWebhooks
8
8
  end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class OptionValue < Spree::Base
3
- include Spree::Metadata
4
- include Spree::TranslatableResource
3
+ include Metadata
4
+ include TranslatableResource
5
5
  if defined?(Spree::Webhooks)
6
6
  include Spree::Webhooks::HasWebhooks
7
7
  end
@@ -1,14 +1,6 @@
1
1
  module Spree
2
2
  class Order < Spree::Base
3
3
  module StoreCredit
4
- def add_store_credit_payments(amount = nil)
5
- Spree::Dependencies.checkout_add_store_credit_service.constantize.call(order: self, amount: amount)
6
- end
7
-
8
- def remove_store_credit_payments
9
- Spree::Dependencies.checkout_remove_store_credit_service.constantize.call(order: self)
10
- end
11
-
12
4
  def covered_by_store_credit?
13
5
  return false unless user
14
6
 
@@ -20,10 +20,10 @@ module Spree
20
20
  include Spree::Core::NumberGenerator.new(prefix: 'R')
21
21
  include Spree::Core::TokenGenerator
22
22
 
23
- include Spree::NumberIdentifier
24
- include Spree::NumberAsParam
23
+ include NumberIdentifier
24
+ include NumberAsParam
25
25
  include SingleStoreResource
26
- include Spree::MemoizedData
26
+ include MemoizedData
27
27
  include Spree::Metadata
28
28
  if defined?(Spree::Webhooks)
29
29
  include Spree::Webhooks::HasWebhooks
@@ -415,7 +415,7 @@ module Spree
415
415
 
416
416
  def available_payment_methods(store = nil)
417
417
  if store.present?
418
- ActiveSupport::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
418
+ Spree::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
419
419
  end
420
420
 
421
421
  @available_payment_methods ||= collect_payment_methods(store)
@@ -449,7 +449,7 @@ module Spree
449
449
  end
450
450
 
451
451
  def empty!
452
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
452
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
453
453
  `Order#empty!` is deprecated and will be removed in Spree 5.0.
454
454
  Please use `Spree::Cart::Empty.call(order: order)` instead.
455
455
  DEPRECATION
@@ -647,7 +647,7 @@ module Spree
647
647
  end
648
648
 
649
649
  def validate_payments_attributes(attributes)
650
- ActiveSupport::Deprecation.warn('`Order#validate_payments_attributes` is deprecated and will be removed in Spree 5')
650
+ Spree::Deprecation.warn('`Order#validate_payments_attributes` is deprecated and will be removed in Spree 5')
651
651
 
652
652
  # Ensure the payment methods specified are allowed for this user
653
653
  payment_method_ids = available_payment_methods.map(&:id).map(&:to_s)
@@ -745,7 +745,7 @@ module Spree
745
745
 
746
746
  def collect_payment_methods(store = nil)
747
747
  if store.present?
748
- ActiveSupport::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
748
+ Spree::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
749
749
  end
750
750
  store ||= self.store
751
751
 
@@ -3,9 +3,9 @@ require_dependency 'spree/payment/processing'
3
3
  module Spree
4
4
  class Payment < Spree::Base
5
5
  include Spree::Core::NumberGenerator.new(prefix: 'P', letters: true, length: 7)
6
- include Spree::NumberIdentifier
7
- include Spree::NumberAsParam
8
- include Spree::Metadata
6
+ include NumberIdentifier
7
+ include NumberAsParam
8
+ include Metadata
9
9
  if defined?(Spree::Webhooks)
10
10
  include Spree::Webhooks::HasWebhooks
11
11
  end
@@ -222,18 +222,10 @@ module Spree
222
222
 
223
223
  def validate_source
224
224
  if source && !source.valid?
225
- if Rails::VERSION::STRING >= '6.1'
226
- source.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
227
- next if err[:field].blank? || err[:message].blank?
228
-
229
- add_source_error(err[:field], err[:message])
230
- end
231
- else
232
- source.errors.messages.each do |field, error|
233
- next if field.blank? || error.empty?
234
-
235
- add_source_error(field, error.first)
236
- end
225
+ source.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
226
+ next if err[:field].blank? || err[:message].blank?
227
+
228
+ add_source_error(err[:field], err[:message])
237
229
  end
238
230
  end
239
231
  !errors.present?
@@ -3,7 +3,7 @@ module Spree
3
3
  acts_as_paranoid
4
4
  acts_as_list
5
5
 
6
- include Spree::MultiStoreResource
6
+ include MultiStoreResource
7
7
  include Spree::Metadata
8
8
  if defined?(Spree::Security::PaymentMethods)
9
9
  include Spree::Security::PaymentMethods
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class PaymentSource < Spree::Base
3
- include Spree::Metadata
3
+ include Metadata
4
4
 
5
5
  belongs_to :payment_method, class_name: 'Spree::PaymentMethod'
6
6
  belongs_to :user, class_name: 'Spree::User', optional: true
@@ -1,5 +1,9 @@
1
1
  class Spree::Preference < Spree::Base
2
- serialize :value
2
+ if Rails::VERSION::STRING >= '7.1.0'
3
+ serialize :value, coder: YAML
4
+ else
5
+ serialize :value
6
+ end
3
7
 
4
8
  validates :key, presence: true,
5
9
  uniqueness: { case_sensitive: false, allow_blank: true, scope: spree_base_uniqueness_scope }
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class Price < Spree::Base
3
- include Spree::VatPriceCalculation
3
+ include VatPriceCalculation
4
4
  if defined?(Spree::Webhooks)
5
5
  include Spree::Webhooks::HasWebhooks
6
6
  end
@@ -21,13 +21,12 @@
21
21
  module Spree
22
22
  class Product < Spree::Base
23
23
  extend FriendlyId
24
- include Spree::ProductScopes
25
- include Spree::MultiStoreResource
26
- include Spree::TranslatableResource
27
- include Spree::TranslatableResourceSlug
28
- include Spree::MemoizedData
29
- include Spree::Metadata
30
-
24
+ include ProductScopes
25
+ include MultiStoreResource
26
+ include TranslatableResource
27
+ include TranslatableResourceSlug
28
+ include MemoizedData
29
+ include Metadata
31
30
  if defined?(Spree::Webhooks)
32
31
  include Spree::Webhooks::HasWebhooks
33
32
  end
@@ -508,18 +507,10 @@ module Spree
508
507
  # We call master.default_price here to ensure price is initialized.
509
508
  # Required to avoid Variant#check_price validation failing on create.
510
509
  unless master.default_price && master.valid?
511
- if Rails::VERSION::STRING >= '6.1'
512
- master.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
513
- next if err[:field].blank? || err[:message].blank?
514
-
515
- errors.add(err[:field], err[:message])
516
- end
517
- else
518
- master.errors.messages.each do |field, error|
519
- next if field.blank? || error.empty?
510
+ master.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
511
+ next if err[:field].blank? || err[:message].blank?
520
512
 
521
- errors.add(field, error.first)
522
- end
513
+ errors.add(err[:field], err[:message])
523
514
  end
524
515
  end
525
516
  end
@@ -33,7 +33,7 @@ module Spree
33
33
  delegate :name, :presentation, to: :property, prefix: true, allow_nil: true
34
34
 
35
35
  def property_name=(name)
36
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
36
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
37
37
  `ProductProperty#property_name=` is deprecated and will be removed in Spree 5.0.
38
38
  DEPRECATION
39
39
  if name.present?
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class Promotion < Spree::Base
3
- include Spree::MultiStoreResource
4
- include Spree::Metadata
3
+ include MultiStoreResource
4
+ include Metadata
5
5
  if defined?(Spree::Webhooks)
6
6
  include Spree::Webhooks::HasWebhooks
7
7
  end
@@ -1,8 +1,8 @@
1
1
  module Spree
2
2
  class Property < Spree::Base
3
3
  include Spree::FilterParam
4
- include Spree::Metadata
5
- include Spree::TranslatableResource
4
+ include Metadata
5
+ include TranslatableResource
6
6
  if defined?(Spree::Webhooks)
7
7
  include Spree::Webhooks::HasWebhooks
8
8
  end
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class Prototype < Spree::Base
3
- include Spree::Metadata
3
+ include Metadata
4
4
  if defined?(Spree::Webhooks)
5
5
  include Spree::Webhooks::HasWebhooks
6
6
  end
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class Refund < Spree::Base
3
- include Spree::Metadata
3
+ include Metadata
4
4
  if defined?(Spree::Webhooks)
5
5
  include Spree::Webhooks::HasWebhooks
6
6
  end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class Reimbursement < Spree::Base
3
3
  include Spree::Core::NumberGenerator.new(prefix: 'RI', length: 9)
4
- include Spree::NumberIdentifier
4
+ include NumberIdentifier
5
5
  if defined?(Spree::Webhooks)
6
6
  include Spree::Webhooks::HasWebhooks
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class ReturnAuthorization < Spree::Base
3
3
  include Spree::Core::NumberGenerator.new(prefix: 'RA', length: 9)
4
- include Spree::NumberIdentifier
4
+ include NumberIdentifier
5
5
  if defined?(Spree::Webhooks)
6
6
  include Spree::Webhooks::HasWebhooks
7
7
  end
@@ -62,7 +62,11 @@ module Spree
62
62
  scope :exchange_required, -> { eager_load(:exchange_inventory_units).where(spree_inventory_units: { original_return_item_id: nil }).distinct }
63
63
  scope :resellable, -> { where resellable: true }
64
64
 
65
- serialize :acceptance_status_errors
65
+ if Rails::VERSION::STRING >= '7.1.0'
66
+ serialize :acceptance_status_errors, coder: YAML
67
+ else
68
+ serialize :acceptance_status_errors
69
+ end
66
70
 
67
71
  delegate :eligible_for_return?, :requires_manual_intervention?, to: :validator
68
72
  delegate :variant, to: :inventory_unit