solidus_core 4.3.4 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
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