solidus_core 4.3.4 → 4.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.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/base_helper.rb +2 -2
  3. data/app/mailers/spree/base_mailer.rb +1 -1
  4. data/app/mailers/spree/carton_mailer.rb +1 -1
  5. data/app/mailers/spree/order_mailer.rb +3 -3
  6. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  7. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
  8. data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
  9. data/app/models/concerns/spree/display_money.rb +1 -1
  10. data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
  11. data/app/models/concerns/spree/user_address_book.rb +4 -4
  12. data/app/models/concerns/spree/user_methods.rb +3 -3
  13. data/app/models/spree/address.rb +6 -6
  14. data/app/models/spree/adjustment.rb +13 -66
  15. data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
  16. data/app/models/spree/carton.rb +2 -2
  17. data/app/models/spree/credit_card.rb +6 -6
  18. data/app/models/spree/deprecated_configurable_class.rb +40 -0
  19. data/app/models/spree/fulfilment_changer.rb +4 -4
  20. data/app/models/spree/inventory_unit.rb +2 -2
  21. data/app/models/spree/line_item.rb +1 -1
  22. data/app/models/spree/null_promotion_adjuster.rb +13 -0
  23. data/app/models/spree/null_promotion_advertiser.rb +9 -0
  24. data/app/models/spree/null_promotion_finder.rb +9 -0
  25. data/app/models/spree/null_promotion_handler.rb +44 -0
  26. data/app/models/spree/order.rb +15 -22
  27. data/app/models/spree/order_cancellations.rb +8 -8
  28. data/app/models/spree/order_mutex.rb +2 -2
  29. data/app/models/spree/order_shipping.rb +9 -9
  30. data/app/models/spree/order_updater.rb +6 -10
  31. data/app/models/spree/payment/processing.rb +2 -2
  32. data/app/models/spree/payment.rb +2 -2
  33. data/app/models/spree/payment_create.rb +1 -1
  34. data/app/models/spree/payment_method/store_credit.rb +1 -1
  35. data/app/models/spree/payment_source.rb +5 -1
  36. data/app/models/spree/permission_set.rb +11 -0
  37. data/app/models/spree/product.rb +7 -28
  38. data/app/models/spree/refund.rb +1 -1
  39. data/app/models/spree/reimbursement.rb +4 -4
  40. data/app/models/spree/reimbursement_performer.rb +3 -3
  41. data/app/models/spree/reimbursement_tax_calculator.rb +2 -2
  42. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  43. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
  44. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  45. data/app/models/spree/return_item.rb +9 -9
  46. data/app/models/spree/role.rb +3 -1
  47. data/app/models/spree/role_permission.rb +8 -0
  48. data/app/models/spree/shipment.rb +7 -7
  49. data/app/models/spree/shipping_category.rb +2 -0
  50. data/app/models/spree/shipping_rate.rb +1 -1
  51. data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +4 -11
  52. data/app/models/spree/stock/estimator.rb +1 -1
  53. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  54. data/app/models/spree/stock/package.rb +2 -2
  55. data/app/models/spree/stock/simple_coordinator.rb +1 -1
  56. data/app/models/spree/stock_location.rb +5 -5
  57. data/app/models/spree/store.rb +1 -1
  58. data/app/models/spree/store_credit.rb +17 -15
  59. data/app/models/spree/store_credit_event.rb +3 -3
  60. data/app/models/spree/tax_calculator/default.rb +2 -2
  61. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -1
  62. data/app/models/spree/tax_category.rb +3 -1
  63. data/app/models/spree/tax_rate.rb +3 -3
  64. data/app/models/spree/taxonomy.rb +2 -2
  65. data/app/models/spree/unit_cancel.rb +1 -2
  66. data/app/models/spree/variant/vat_price_generator.rb +1 -1
  67. data/app/models/spree/variant.rb +7 -2
  68. data/app/models/spree/wallet.rb +2 -2
  69. data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
  70. data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
  71. data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
  72. data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
  73. data/config/locales/en.yml +4 -90
  74. data/db/default/spree/permission_sets.rb +10 -0
  75. data/db/default/spree/return_reasons.rb +3 -1
  76. data/db/default/spree/states.rb +1 -1
  77. data/db/migrate/20160101010000_solidus_one_four.rb +0 -117
  78. data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
  79. data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
  80. data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
  81. data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
  82. data/db/seeds.rb +1 -0
  83. data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
  84. data/lib/generators/solidus/update/update_generator.rb +1 -1
  85. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  86. data/lib/spree/app_configuration.rb +53 -84
  87. data/lib/spree/core/class_constantizer.rb +2 -2
  88. data/lib/spree/core/controller_helpers/payment_parameters.rb +1 -1
  89. data/lib/spree/core/engine.rb +1 -0
  90. data/lib/spree/core/environment/calculators.rb +35 -3
  91. data/lib/spree/core/environment/promotions.rb +25 -4
  92. data/lib/spree/core/environment_extension.rb +16 -2
  93. data/lib/spree/core/importer/order.rb +5 -5
  94. data/lib/spree/core/importer/product.rb +3 -3
  95. data/lib/spree/core/nested_class_set.rb +28 -0
  96. data/lib/spree/core/null_promotion_configuration.rb +84 -0
  97. data/lib/spree/core/product_filters.rb +1 -1
  98. data/lib/spree/core/search/variant.rb +2 -2
  99. data/lib/spree/core/state_machines/order.rb +0 -1
  100. data/lib/spree/core/validators/email.rb +1 -1
  101. data/lib/spree/core/version.rb +2 -2
  102. data/lib/spree/core.rb +2 -6
  103. data/lib/spree/deprecator.rb +9 -0
  104. data/lib/spree/i18n.rb +1 -1
  105. data/lib/spree/mailer_previews/carton_preview.rb +1 -1
  106. data/lib/spree/permission_sets/base.rb +13 -1
  107. data/lib/spree/permission_sets/configuration_display.rb +10 -0
  108. data/lib/spree/permission_sets/configuration_management.rb +10 -0
  109. data/lib/spree/permission_sets/dashboard_display.rb +12 -0
  110. data/lib/spree/permission_sets/default_customer.rb +11 -1
  111. data/lib/spree/permission_sets/order_display.rb +10 -0
  112. data/lib/spree/permission_sets/order_management.rb +10 -0
  113. data/lib/spree/permission_sets/product_display.rb +10 -0
  114. data/lib/spree/permission_sets/product_management.rb +10 -0
  115. data/lib/spree/permission_sets/restricted_stock_display.rb +10 -0
  116. data/lib/spree/permission_sets/restricted_stock_management.rb +10 -0
  117. data/lib/spree/permission_sets/stock_display.rb +10 -0
  118. data/lib/spree/permission_sets/stock_management.rb +10 -0
  119. data/lib/spree/permission_sets/super_user.rb +10 -0
  120. data/lib/spree/permission_sets/user_display.rb +10 -0
  121. data/lib/spree/permission_sets/user_management.rb +10 -0
  122. data/lib/spree/permission_sets.rb +0 -2
  123. data/lib/spree/permitted_attributes.rb +2 -2
  124. data/lib/spree/preferences/store.rb +2 -2
  125. data/lib/spree/testing_support/capybara_ext.rb +1 -1
  126. data/lib/spree/testing_support/dummy_ability.rb +7 -0
  127. data/lib/spree/testing_support/dummy_app/database.yml +2 -2
  128. data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
  129. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +2 -2
  130. data/lib/spree/testing_support/dummy_app.rb +17 -12
  131. data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
  132. data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
  133. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  134. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
  135. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
  136. data/lib/spree/testing_support/factories/order_factory.rb +5 -24
  137. data/lib/spree/testing_support/factories/product_factory.rb +1 -1
  138. data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
  139. data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
  140. data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
  141. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  142. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  143. data/lib/spree/testing_support/order_walkthrough.rb +3 -3
  144. data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
  145. data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
  146. data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
  147. data/lib/tasks/colorado_delivery_fee.rake +2 -2
  148. data/solidus_core.gemspec +6 -6
  149. metadata +60 -91
  150. data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
  151. data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
  152. data/app/models/spree/calculator/distributed_amount.rb +0 -33
  153. data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
  154. data/app/models/spree/calculator/flexi_rate.rb +0 -22
  155. data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
  156. data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
  157. data/app/models/spree/calculator/tiered_percent.rb +0 -62
  158. data/app/models/spree/order_promotion.rb +0 -27
  159. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
  160. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
  161. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
  162. data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
  163. data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
  164. data/app/models/spree/promotion/rules/first_order.rb +0 -38
  165. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
  166. data/app/models/spree/promotion/rules/item_total.rb +0 -86
  167. data/app/models/spree/promotion/rules/minimum_quantity.rb +0 -59
  168. data/app/models/spree/promotion/rules/nth_order.rb +0 -45
  169. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
  170. data/app/models/spree/promotion/rules/option_value.rb +0 -50
  171. data/app/models/spree/promotion/rules/product.rb +0 -86
  172. data/app/models/spree/promotion/rules/store.rb +0 -26
  173. data/app/models/spree/promotion/rules/taxon.rb +0 -91
  174. data/app/models/spree/promotion/rules/user.rb +0 -34
  175. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
  176. data/app/models/spree/promotion/rules/user_role.rb +0 -45
  177. data/app/models/spree/promotion.rb +0 -271
  178. data/app/models/spree/promotion_action.rb +0 -47
  179. data/app/models/spree/promotion_category.rb +0 -8
  180. data/app/models/spree/promotion_chooser.rb +0 -34
  181. data/app/models/spree/promotion_code/batch_builder.rb +0 -64
  182. data/app/models/spree/promotion_code.rb +0 -54
  183. data/app/models/spree/promotion_code_batch.rb +0 -27
  184. data/app/models/spree/promotion_handler/cart.rb +0 -75
  185. data/app/models/spree/promotion_handler/coupon.rb +0 -123
  186. data/app/models/spree/promotion_handler/page.rb +0 -26
  187. data/app/models/spree/promotion_handler/shipping.rb +0 -61
  188. data/app/models/spree/promotion_rule.rb +0 -55
  189. data/app/models/spree/promotion_rule_store.rb +0 -10
  190. data/app/models/spree/promotion_rule_taxon.rb +0 -8
  191. data/app/models/spree/promotion_rule_user.rb +0 -10
  192. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
  193. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
  194. data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
  195. data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
  196. data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
  197. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
  198. data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
  199. data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
  200. data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
  201. data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
  202. data/db/migrate/20231027084517_add_order_promotions_foreign_key.rb +0 -10
  203. data/db/migrate/20231031175215_add_promotion_order_promotion_foreign_key.rb +0 -10
  204. data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
  205. data/lib/spree/permission_sets/promotion_display.rb +0 -25
  206. data/lib/spree/permission_sets/promotion_management.rb +0 -25
  207. data/lib/spree/ransack_4_1_patch.rb +0 -16
  208. data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
  209. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
  210. data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
  211. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -98
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.4
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-05 00:00:00.000000000 Z
11
+ date: 2024-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '7.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.2'
22
+ version: 8.0.0.beta1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '7.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.2'
32
+ version: 8.0.0.beta1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: actionpack
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '7.0'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '7.2'
42
+ version: 8.0.0.beta1
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: '7.0'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '7.2'
52
+ version: 8.0.0.beta1
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: actionview
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '7.0'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '7.2'
62
+ version: 8.0.0.beta1
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: '7.0'
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '7.2'
72
+ version: 8.0.0.beta1
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: activejob
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -79,7 +79,7 @@ dependencies:
79
79
  version: '7.0'
80
80
  - - "<"
81
81
  - !ruby/object:Gem::Version
82
- version: '7.2'
82
+ version: 8.0.0.beta1
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
@@ -89,7 +89,7 @@ dependencies:
89
89
  version: '7.0'
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
- version: '7.2'
92
+ version: 8.0.0.beta1
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: activemodel
95
95
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '7.0'
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
- version: '7.2'
102
+ version: 8.0.0.beta1
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '7.0'
110
110
  - - "<"
111
111
  - !ruby/object:Gem::Version
112
- version: '7.2'
112
+ version: 8.0.0.beta1
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: activerecord
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +119,7 @@ dependencies:
119
119
  version: '7.0'
120
120
  - - "<"
121
121
  - !ruby/object:Gem::Version
122
- version: '7.2'
122
+ version: 8.0.0.beta1
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,7 +129,7 @@ dependencies:
129
129
  version: '7.0'
130
130
  - - "<"
131
131
  - !ruby/object:Gem::Version
132
- version: '7.2'
132
+ version: 8.0.0.beta1
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: activestorage
135
135
  requirement: !ruby/object:Gem::Requirement
@@ -139,7 +139,7 @@ dependencies:
139
139
  version: '7.0'
140
140
  - - "<"
141
141
  - !ruby/object:Gem::Version
142
- version: '7.2'
142
+ version: 8.0.0.beta1
143
143
  type: :runtime
144
144
  prerelease: false
145
145
  version_requirements: !ruby/object:Gem::Requirement
@@ -149,7 +149,7 @@ dependencies:
149
149
  version: '7.0'
150
150
  - - "<"
151
151
  - !ruby/object:Gem::Version
152
- version: '7.2'
152
+ version: 8.0.0.beta1
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: activesupport
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -159,7 +159,7 @@ dependencies:
159
159
  version: '7.0'
160
160
  - - "<"
161
161
  - !ruby/object:Gem::Version
162
- version: '7.2'
162
+ version: 8.0.0.beta1
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
@@ -169,7 +169,7 @@ dependencies:
169
169
  version: '7.0'
170
170
  - - "<"
171
171
  - !ruby/object:Gem::Version
172
- version: '7.2'
172
+ version: 8.0.0.beta1
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: railties
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +179,7 @@ dependencies:
179
179
  version: '7.0'
180
180
  - - "<"
181
181
  - !ruby/object:Gem::Version
182
- version: '7.2'
182
+ version: 8.0.0.beta1
183
183
  type: :runtime
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
@@ -189,7 +189,7 @@ dependencies:
189
189
  version: '7.0'
190
190
  - - "<"
191
191
  - !ruby/object:Gem::Version
192
- version: '7.2'
192
+ version: 8.0.0.beta1
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: activemerchant
195
195
  requirement: !ruby/object:Gem::Requirement
@@ -225,6 +225,9 @@ dependencies:
225
225
  - - "~>"
226
226
  - !ruby/object:Gem::Version
227
227
  version: '3.3'
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: 3.7.0
228
231
  type: :runtime
229
232
  prerelease: false
230
233
  version_requirements: !ruby/object:Gem::Requirement
@@ -232,6 +235,9 @@ dependencies:
232
235
  - - "~>"
233
236
  - !ruby/object:Gem::Version
234
237
  version: '3.3'
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: 3.7.0
235
241
  - !ruby/object:Gem::Dependency
236
242
  name: cancancan
237
243
  requirement: !ruby/object:Gem::Requirement
@@ -379,7 +385,7 @@ dependencies:
379
385
  version: 4.0.1
380
386
  - - "<"
381
387
  - !ruby/object:Gem::Version
382
- version: '5.0'
388
+ version: '6.0'
383
389
  type: :runtime
384
390
  prerelease: false
385
391
  version_requirements: !ruby/object:Gem::Requirement
@@ -389,7 +395,7 @@ dependencies:
389
395
  version: 4.0.1
390
396
  - - "<"
391
397
  - !ruby/object:Gem::Version
392
- version: '5.0'
398
+ version: '6.0'
393
399
  - !ruby/object:Gem::Dependency
394
400
  name: ransack
395
401
  requirement: !ruby/object:Gem::Requirement
@@ -397,6 +403,9 @@ dependencies:
397
403
  - - "~>"
398
404
  - !ruby/object:Gem::Version
399
405
  version: '4.0'
406
+ - - "<"
407
+ - !ruby/object:Gem::Version
408
+ version: '5'
400
409
  type: :runtime
401
410
  prerelease: false
402
411
  version_requirements: !ruby/object:Gem::Requirement
@@ -404,20 +413,23 @@ dependencies:
404
413
  - - "~>"
405
414
  - !ruby/object:Gem::Version
406
415
  version: '4.0'
416
+ - - "<"
417
+ - !ruby/object:Gem::Version
418
+ version: '5'
407
419
  - !ruby/object:Gem::Dependency
408
420
  name: sprockets-rails
409
421
  requirement: !ruby/object:Gem::Requirement
410
422
  requirements:
411
- - - ">="
423
+ - - "!="
412
424
  - !ruby/object:Gem::Version
413
- version: '0'
425
+ version: 3.5.0
414
426
  type: :runtime
415
427
  prerelease: false
416
428
  version_requirements: !ruby/object:Gem::Requirement
417
429
  requirements:
418
- - - ">="
430
+ - - "!="
419
431
  - !ruby/object:Gem::Version
420
- version: '0'
432
+ version: 3.5.0
421
433
  - !ruby/object:Gem::Dependency
422
434
  name: state_machines-activerecord
423
435
  requirement: !ruby/object:Gem::Requirement
@@ -469,11 +481,9 @@ files:
469
481
  - app/helpers/spree/products_helper.rb
470
482
  - app/helpers/spree/store_helper.rb
471
483
  - app/helpers/spree/taxons_helper.rb
472
- - app/jobs/spree/promotion_code_batch_job.rb
473
484
  - app/mailers/spree/base_mailer.rb
474
485
  - app/mailers/spree/carton_mailer.rb
475
486
  - app/mailers/spree/order_mailer.rb
476
- - app/mailers/spree/promotion_code_batch_mailer.rb
477
487
  - app/mailers/spree/reimbursement_mailer.rb
478
488
  - app/models/concerns/spree/active_storage_adapter.rb
479
489
  - app/models/concerns/spree/active_storage_adapter/attachment.rb
@@ -501,25 +511,20 @@ files:
501
511
  - app/models/spree/billing_integration.rb
502
512
  - app/models/spree/calculator.rb
503
513
  - app/models/spree/calculator/default_tax.rb
504
- - app/models/spree/calculator/distributed_amount.rb
505
514
  - app/models/spree/calculator/flat_fee.rb
506
- - app/models/spree/calculator/flat_percent_item_total.rb
507
515
  - app/models/spree/calculator/flat_rate.rb
508
- - app/models/spree/calculator/flexi_rate.rb
509
- - app/models/spree/calculator/percent_on_line_item.rb
510
516
  - app/models/spree/calculator/returns/default_refund_amount.rb
511
517
  - app/models/spree/calculator/shipping/flat_percent_item_total.rb
512
518
  - app/models/spree/calculator/shipping/flat_rate.rb
513
519
  - app/models/spree/calculator/shipping/flexi_rate.rb
514
520
  - app/models/spree/calculator/shipping/per_item.rb
515
521
  - app/models/spree/calculator/shipping/price_sack.rb
516
- - app/models/spree/calculator/tiered_flat_rate.rb
517
- - app/models/spree/calculator/tiered_percent.rb
518
522
  - app/models/spree/carton.rb
519
523
  - app/models/spree/classification.rb
520
524
  - app/models/spree/country.rb
521
525
  - app/models/spree/credit_card.rb
522
526
  - app/models/spree/customer_return.rb
527
+ - app/models/spree/deprecated_configurable_class.rb
523
528
  - app/models/spree/distributed_amounts_handler.rb
524
529
  - app/models/spree/exchange.rb
525
530
  - app/models/spree/fulfilment_changer.rb
@@ -533,6 +538,10 @@ files:
533
538
  - app/models/spree/line_item.rb
534
539
  - app/models/spree/line_item_action.rb
535
540
  - app/models/spree/log_entry.rb
541
+ - app/models/spree/null_promotion_adjuster.rb
542
+ - app/models/spree/null_promotion_advertiser.rb
543
+ - app/models/spree/null_promotion_finder.rb
544
+ - app/models/spree/null_promotion_handler.rb
536
545
  - app/models/spree/option_type.rb
537
546
  - app/models/spree/option_value.rb
538
547
  - app/models/spree/option_values_variant.rb
@@ -540,11 +549,9 @@ files:
540
549
  - app/models/spree/order/number_generator.rb
541
550
  - app/models/spree/order/payments.rb
542
551
  - app/models/spree/order_cancellations.rb
543
- - app/models/spree/order_contents.rb
544
552
  - app/models/spree/order_inventory.rb
545
553
  - app/models/spree/order_merger.rb
546
554
  - app/models/spree/order_mutex.rb
547
- - app/models/spree/order_promotion.rb
548
555
  - app/models/spree/order_shipping.rb
549
556
  - app/models/spree/order_taxation.rb
550
557
  - app/models/spree/order_update_attributes.rb
@@ -561,6 +568,7 @@ files:
561
568
  - app/models/spree/payment_method/simple_bogus_credit_card.rb
562
569
  - app/models/spree/payment_method/store_credit.rb
563
570
  - app/models/spree/payment_source.rb
571
+ - app/models/spree/permission_set.rb
564
572
  - app/models/spree/preference.rb
565
573
  - app/models/spree/price.rb
566
574
  - app/models/spree/product.rb
@@ -568,39 +576,6 @@ files:
568
576
  - app/models/spree/product_option_type.rb
569
577
  - app/models/spree/product_promotion_rule.rb
570
578
  - app/models/spree/product_property.rb
571
- - app/models/spree/promotion.rb
572
- - app/models/spree/promotion/actions/create_adjustment.rb
573
- - app/models/spree/promotion/actions/create_item_adjustments.rb
574
- - app/models/spree/promotion/actions/create_quantity_adjustments.rb
575
- - app/models/spree/promotion/actions/free_shipping.rb
576
- - app/models/spree/promotion/order_adjustments_recalculator.rb
577
- - app/models/spree/promotion/rules/first_order.rb
578
- - app/models/spree/promotion/rules/first_repeat_purchase_since.rb
579
- - app/models/spree/promotion/rules/item_total.rb
580
- - app/models/spree/promotion/rules/minimum_quantity.rb
581
- - app/models/spree/promotion/rules/nth_order.rb
582
- - app/models/spree/promotion/rules/one_use_per_user.rb
583
- - app/models/spree/promotion/rules/option_value.rb
584
- - app/models/spree/promotion/rules/product.rb
585
- - app/models/spree/promotion/rules/store.rb
586
- - app/models/spree/promotion/rules/taxon.rb
587
- - app/models/spree/promotion/rules/user.rb
588
- - app/models/spree/promotion/rules/user_logged_in.rb
589
- - app/models/spree/promotion/rules/user_role.rb
590
- - app/models/spree/promotion_action.rb
591
- - app/models/spree/promotion_category.rb
592
- - app/models/spree/promotion_chooser.rb
593
- - app/models/spree/promotion_code.rb
594
- - app/models/spree/promotion_code/batch_builder.rb
595
- - app/models/spree/promotion_code_batch.rb
596
- - app/models/spree/promotion_handler/cart.rb
597
- - app/models/spree/promotion_handler/coupon.rb
598
- - app/models/spree/promotion_handler/page.rb
599
- - app/models/spree/promotion_handler/shipping.rb
600
- - app/models/spree/promotion_rule.rb
601
- - app/models/spree/promotion_rule_store.rb
602
- - app/models/spree/promotion_rule_taxon.rb
603
- - app/models/spree/promotion_rule_user.rb
604
579
  - app/models/spree/property.rb
605
580
  - app/models/spree/refund.rb
606
581
  - app/models/spree/refund_reason.rb
@@ -630,6 +605,7 @@ files:
630
605
  - app/models/spree/return_reason.rb
631
606
  - app/models/spree/returns_calculator.rb
632
607
  - app/models/spree/role.rb
608
+ - app/models/spree/role_permission.rb
633
609
  - app/models/spree/role_user.rb
634
610
  - app/models/spree/shipment.rb
635
611
  - app/models/spree/shipping_calculator.rb
@@ -641,6 +617,7 @@ files:
641
617
  - app/models/spree/shipping_method_zone.rb
642
618
  - app/models/spree/shipping_rate.rb
643
619
  - app/models/spree/shipping_rate_tax.rb
620
+ - app/models/spree/simple_order_contents.rb
644
621
  - app/models/spree/state.rb
645
622
  - app/models/spree/state_change.rb
646
623
  - app/models/spree/stock/allocator/base.rb
@@ -727,8 +704,6 @@ files:
727
704
  - app/views/spree/order_mailer/confirm_email.text.erb
728
705
  - app/views/spree/order_mailer/inventory_cancellation_email.html.erb
729
706
  - app/views/spree/order_mailer/inventory_cancellation_email.text.erb
730
- - app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb
731
- - app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb
732
707
  - app/views/spree/reimbursement_mailer/reimbursement_email.html.erb
733
708
  - app/views/spree/reimbursement_mailer/reimbursement_email.text.erb
734
709
  - app/views/spree/shared/_base_mailer_footer.html.erb
@@ -744,6 +719,7 @@ files:
744
719
  - config/initializers/money.rb
745
720
  - config/locales/en.yml
746
721
  - db/default/spree/countries.rb
722
+ - db/default/spree/permission_sets.rb
747
723
  - db/default/spree/refund_reasons.rb
748
724
  - db/default/spree/return_reasons.rb
749
725
  - db/default/spree/roles.rb
@@ -759,7 +735,6 @@ files:
759
735
  - db/migrate/20160924135758_remove_is_default_from_prices.rb
760
736
  - db/migrate/20161009141333_remove_currency_from_line_items.rb
761
737
  - db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb
762
- - db/migrate/20161017102621_create_spree_promotion_code_batch.rb
763
738
  - db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb
764
739
  - db/migrate/20161129035810_add_index_to_spree_payments_number.rb
765
740
  - db/migrate/20170223235001_remove_spree_store_credits_column.rb
@@ -770,14 +745,11 @@ files:
770
745
  - db/migrate/20170522143442_add_time_range_to_tax_rate.rb
771
746
  - db/migrate/20170608074534_rename_bogus_gateways.rb
772
747
  - db/migrate/20170831201542_remove_default_tax_from_spree_zones.rb
773
- - db/migrate/20180202190713_create_promotion_rule_stores.rb
774
748
  - db/migrate/20180202222641_create_store_shipping_methods.rb
775
749
  - db/migrate/20180313220213_add_available_locales_to_stores.rb
776
750
  - db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb
777
- - db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb
778
751
  - db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb
779
752
  - db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb
780
- - db/migrate/20190106184413_remove_code_from_spree_promotions.rb
781
753
  - db/migrate/20190220093635_drop_spree_store_credit_update_reasons.rb
782
754
  - db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb
783
755
  - db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb
@@ -786,17 +758,15 @@ files:
786
758
  - db/migrate/20210122110141_add_name_to_spree_addresses.rb
787
759
  - db/migrate/20210312061050_change_column_null_on_prices.rb
788
760
  - db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb
789
- - db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb
790
761
  - db/migrate/20220805202442_add_level_to_spree_tax_rates.rb
791
762
  - db/migrate/20221123152807_add_shipping_category_to_spree_variants.rb
792
763
  - db/migrate/20230321161854_change_column_null_option_values_option_type_id.rb
793
- - db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb
794
- - db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb
795
- - db/migrate/20230325161633_drop_unused_promo_action_line_items.rb
796
764
  - db/migrate/20230425103509_remove_taxon_position.rb
797
765
  - db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb
798
- - db/migrate/20231027084517_add_order_promotions_foreign_key.rb
799
- - db/migrate/20231031175215_add_promotion_order_promotion_foreign_key.rb
766
+ - db/migrate/20240821173254_create_spree_permission_sets_in_core.rb
767
+ - db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb
768
+ - db/migrate/20240821173641_add_description_to_spree_roles.rb
769
+ - db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb
800
770
  - db/seeds.rb
801
771
  - lib/generators/solidus/install/app_templates/authentication/custom.rb
802
772
  - lib/generators/solidus/install/app_templates/authentication/devise.rb
@@ -825,7 +795,6 @@ files:
825
795
  - lib/generators/spree/dummy/templates/rails/script/rails
826
796
  - lib/generators/spree/dummy/templates/rails/storage.yml
827
797
  - lib/generators/spree/dummy/templates/rails/test.rb
828
- - lib/solidus/migrations/promotions_with_code_handlers.rb
829
798
  - lib/solidus_core.rb
830
799
  - lib/spree/app_configuration.rb
831
800
  - lib/spree/bus.rb
@@ -849,6 +818,8 @@ files:
849
818
  - lib/spree/core/importer.rb
850
819
  - lib/spree/core/importer/order.rb
851
820
  - lib/spree/core/importer/product.rb
821
+ - lib/spree/core/nested_class_set.rb
822
+ - lib/spree/core/null_promotion_configuration.rb
852
823
  - lib/spree/core/permalinks.rb
853
824
  - lib/spree/core/product_duplicator.rb
854
825
  - lib/spree/core/product_filters.rb
@@ -870,6 +841,7 @@ files:
870
841
  - lib/spree/core/versioned_value.rb
871
842
  - lib/spree/deprecated_instance_variable_proxy.rb
872
843
  - lib/spree/deprecation.rb
844
+ - lib/spree/deprecator.rb
873
845
  - lib/spree/encryptor.rb
874
846
  - lib/spree/i18n.rb
875
847
  - lib/spree/localized_number.rb
@@ -889,8 +861,6 @@ files:
889
861
  - lib/spree/permission_sets/order_management.rb
890
862
  - lib/spree/permission_sets/product_display.rb
891
863
  - lib/spree/permission_sets/product_management.rb
892
- - lib/spree/permission_sets/promotion_display.rb
893
- - lib/spree/permission_sets/promotion_management.rb
894
864
  - lib/spree/permission_sets/restricted_stock_display.rb
895
865
  - lib/spree/permission_sets/restricted_stock_management.rb
896
866
  - lib/spree/permission_sets/stock_display.rb
@@ -908,7 +878,6 @@ files:
908
878
  - lib/spree/preferences/static_model_preferences.rb
909
879
  - lib/spree/preferences/statically_configurable.rb
910
880
  - lib/spree/preferences/store.rb
911
- - lib/spree/ransack_4_1_patch.rb
912
881
  - lib/spree/testing_support/ability_helpers.rb
913
882
  - lib/spree/testing_support/authorization_helpers.rb
914
883
  - lib/spree/testing_support/blacklist_urls.rb
@@ -917,6 +886,7 @@ files:
917
886
  - lib/spree/testing_support/capybara_ext.rb
918
887
  - lib/spree/testing_support/common_rake.rb
919
888
  - lib/spree/testing_support/controller_requests.rb
889
+ - lib/spree/testing_support/dummy_ability.rb
920
890
  - lib/spree/testing_support/dummy_app.rb
921
891
  - lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js
922
892
  - lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css
@@ -941,16 +911,12 @@ files:
941
911
  - lib/spree/testing_support/factories/option_type_factory.rb
942
912
  - lib/spree/testing_support/factories/option_value_factory.rb
943
913
  - lib/spree/testing_support/factories/order_factory.rb
944
- - lib/spree/testing_support/factories/order_promotion_factory.rb
945
914
  - lib/spree/testing_support/factories/payment_factory.rb
946
915
  - lib/spree/testing_support/factories/payment_method_factory.rb
947
916
  - lib/spree/testing_support/factories/price_factory.rb
948
917
  - lib/spree/testing_support/factories/product_factory.rb
949
918
  - lib/spree/testing_support/factories/product_option_type_factory.rb
950
919
  - lib/spree/testing_support/factories/product_property_factory.rb
951
- - lib/spree/testing_support/factories/promotion_category_factory.rb
952
- - lib/spree/testing_support/factories/promotion_code_factory.rb
953
- - lib/spree/testing_support/factories/promotion_factory.rb
954
920
  - lib/spree/testing_support/factories/property_factory.rb
955
921
  - lib/spree/testing_support/factories/refund_factory.rb
956
922
  - lib/spree/testing_support/factories/refund_reason_factory.rb
@@ -997,7 +963,10 @@ files:
997
963
  - lib/spree/testing_support/preferences.rb
998
964
  - lib/spree/testing_support/rake.rb
999
965
  - lib/spree/testing_support/sequences.rb
966
+ - lib/spree/testing_support/shared_examples/calculator.rb
1000
967
  - lib/spree/testing_support/shared_examples/gallery.rb
968
+ - lib/spree/testing_support/shared_examples/order_factory.rb
969
+ - lib/spree/testing_support/shared_examples/working_factory.rb
1001
970
  - lib/spree/testing_support/silence_deprecations.rb
1002
971
  - lib/spree/testing_support/translations.rb
1003
972
  - lib/spree/testing_support/url_helpers.rb
@@ -1045,14 +1014,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1045
1014
  requirements:
1046
1015
  - - ">="
1047
1016
  - !ruby/object:Gem::Version
1048
- version: 3.0.0
1017
+ version: 3.1.0
1049
1018
  required_rubygems_version: !ruby/object:Gem::Requirement
1050
1019
  requirements:
1051
1020
  - - ">="
1052
1021
  - !ruby/object:Gem::Version
1053
1022
  version: 1.8.23
1054
1023
  requirements: []
1055
- rubygems_version: 3.4.19
1024
+ rubygems_version: 3.5.22
1056
1025
  signing_key:
1057
1026
  specification_version: 4
1058
1027
  summary: Essential models, mailers, and classes for the Solidus e-commerce project.
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- class PromotionCodeBatchJob < ActiveJob::Base
5
- queue_as :default
6
-
7
- def perform(promotion_code_batch)
8
- PromotionCode::BatchBuilder.new(
9
- promotion_code_batch
10
- ).build_promotion_codes
11
-
12
- if promotion_code_batch.email?
13
- Spree::Config.promotion_code_batch_mailer_class
14
- .promotion_code_batch_finished(promotion_code_batch)
15
- .deliver_now
16
- end
17
- rescue StandardError => error
18
- if promotion_code_batch.email?
19
- Spree::Config.promotion_code_batch_mailer_class
20
- .promotion_code_batch_errored(promotion_code_batch)
21
- .deliver_now
22
- end
23
- raise error
24
- end
25
- end
26
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- class PromotionCodeBatchMailer < Spree::BaseMailer
5
- def promotion_code_batch_finished(promotion_code_batch)
6
- @promotion_code_batch = promotion_code_batch
7
- mail(to: promotion_code_batch.email)
8
- end
9
-
10
- def promotion_code_batch_errored(promotion_code_batch)
11
- @promotion_code_batch = promotion_code_batch
12
- mail(to: promotion_code_batch.email)
13
- end
14
- end
15
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency 'spree/calculator'
4
-
5
- # This is a calculator for line item adjustment actions. It accepts a line item
6
- # and calculates its weighted adjustment amount based on the value of the
7
- # preferred amount and the price of the other line items. More expensive line
8
- # items will receive a greater share of the preferred amount.
9
-
10
- module Spree
11
- class Calculator::DistributedAmount < Calculator
12
- preference :amount, :decimal, default: 0
13
- preference :currency, :string, default: -> { Spree::Config[:currency] }
14
-
15
- def compute_line_item(line_item)
16
- return 0 unless line_item
17
- return 0 unless preferred_currency.casecmp(line_item.currency).zero?
18
- return 0 unless calculable.promotion.line_item_actionable?(line_item.order, line_item)
19
- Spree::DistributedAmountsHandler.new(
20
- actionable_line_items(line_item.order),
21
- preferred_amount
22
- ).amount(line_item)
23
- end
24
-
25
- private
26
-
27
- def actionable_line_items(order)
28
- order.line_items.select do |line_item|
29
- calculable.promotion.line_item_actionable?(order, line_item)
30
- end
31
- end
32
- end
33
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency 'spree/calculator'
4
-
5
- module Spree
6
- class Calculator::FlatPercentItemTotal < Calculator
7
- preference :flat_percent, :decimal, default: 0
8
-
9
- def compute(object)
10
- order = object.is_a?(Order) ? object : object.order
11
- preferred_currency = order.currency
12
- currency_exponent = ::Money::Currency.find(preferred_currency).exponent
13
- computed_amount = (object.amount * preferred_flat_percent / 100).round(currency_exponent)
14
-
15
- # We don't want to cause the promotion adjustments to push the order into a negative total.
16
- if computed_amount > object.amount
17
- object.amount
18
- else
19
- computed_amount
20
- end
21
- end
22
- end
23
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency 'spree/calculator'
4
-
5
- module Spree
6
- class Calculator::FlexiRate < Calculator
7
- preference :first_item, :decimal, default: 0
8
- preference :additional_item, :decimal, default: 0
9
- preference :max_items, :integer, default: 0
10
- preference :currency, :string, default: ->{ Spree::Config[:currency] }
11
-
12
- def compute(object)
13
- items_count = object.quantity
14
- items_count = [items_count, preferred_max_items].min unless preferred_max_items.zero?
15
-
16
- return BigDecimal(0) if items_count == 0
17
-
18
- additional_items_count = items_count - 1
19
- preferred_first_item + preferred_additional_item * additional_items_count
20
- end
21
- end
22
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency 'spree/calculator'
4
-
5
- module Spree
6
- class Calculator::PercentOnLineItem < Calculator
7
- preference :percent, :decimal, default: 0
8
-
9
- def compute(object)
10
- (object.amount * preferred_percent) / 100
11
- end
12
- end
13
- end