solidus_core 4.3.6 → 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 (213) 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 +10 -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 +15 -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 -91
  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 -10
  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 +13 -11
  131. data/lib/spree/testing_support/extension_rake.rb +2 -2
  132. data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
  133. data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
  134. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  135. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
  136. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
  137. data/lib/spree/testing_support/factories/order_factory.rb +5 -24
  138. data/lib/spree/testing_support/factories/product_factory.rb +1 -1
  139. data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
  140. data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
  141. data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
  142. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  143. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  144. data/lib/spree/testing_support/order_walkthrough.rb +3 -3
  145. data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
  146. data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
  147. data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
  148. data/lib/spree/user_class_handle.rb +2 -2
  149. data/lib/tasks/colorado_delivery_fee.rake +2 -2
  150. data/solidus_core.gemspec +5 -7
  151. metadata +54 -91
  152. data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
  153. data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
  154. data/app/models/spree/calculator/distributed_amount.rb +0 -33
  155. data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
  156. data/app/models/spree/calculator/flexi_rate.rb +0 -22
  157. data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
  158. data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
  159. data/app/models/spree/calculator/tiered_percent.rb +0 -62
  160. data/app/models/spree/order_promotion.rb +0 -27
  161. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
  162. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
  163. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
  164. data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
  165. data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
  166. data/app/models/spree/promotion/rules/first_order.rb +0 -38
  167. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
  168. data/app/models/spree/promotion/rules/item_total.rb +0 -86
  169. data/app/models/spree/promotion/rules/minimum_quantity.rb +0 -59
  170. data/app/models/spree/promotion/rules/nth_order.rb +0 -45
  171. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
  172. data/app/models/spree/promotion/rules/option_value.rb +0 -50
  173. data/app/models/spree/promotion/rules/product.rb +0 -86
  174. data/app/models/spree/promotion/rules/store.rb +0 -26
  175. data/app/models/spree/promotion/rules/taxon.rb +0 -91
  176. data/app/models/spree/promotion/rules/user.rb +0 -34
  177. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
  178. data/app/models/spree/promotion/rules/user_role.rb +0 -45
  179. data/app/models/spree/promotion.rb +0 -271
  180. data/app/models/spree/promotion_action.rb +0 -47
  181. data/app/models/spree/promotion_category.rb +0 -8
  182. data/app/models/spree/promotion_chooser.rb +0 -34
  183. data/app/models/spree/promotion_code/batch_builder.rb +0 -64
  184. data/app/models/spree/promotion_code.rb +0 -54
  185. data/app/models/spree/promotion_code_batch.rb +0 -27
  186. data/app/models/spree/promotion_handler/cart.rb +0 -75
  187. data/app/models/spree/promotion_handler/coupon.rb +0 -123
  188. data/app/models/spree/promotion_handler/page.rb +0 -26
  189. data/app/models/spree/promotion_handler/shipping.rb +0 -61
  190. data/app/models/spree/promotion_rule.rb +0 -55
  191. data/app/models/spree/promotion_rule_store.rb +0 -10
  192. data/app/models/spree/promotion_rule_taxon.rb +0 -8
  193. data/app/models/spree/promotion_rule_user.rb +0 -10
  194. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
  195. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
  196. data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
  197. data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
  198. data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
  199. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
  200. data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
  201. data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
  202. data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
  203. data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
  204. data/db/migrate/20231027084517_add_order_promotions_foreign_key.rb +0 -10
  205. data/db/migrate/20231031175215_add_promotion_order_promotion_foreign_key.rb +0 -10
  206. data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
  207. data/lib/spree/permission_sets/promotion_display.rb +0 -25
  208. data/lib/spree/permission_sets/promotion_management.rb +0 -25
  209. data/lib/spree/ransack_4_1_patch.rb +0 -16
  210. data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
  211. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
  212. data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
  213. 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.6
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: 2025-02-19 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
@@ -399,7 +405,7 @@ dependencies:
399
405
  version: '4.0'
400
406
  - - "<"
401
407
  - !ruby/object:Gem::Version
402
- version: '4.2'
408
+ version: '5'
403
409
  type: :runtime
404
410
  prerelease: false
405
411
  version_requirements: !ruby/object:Gem::Requirement
@@ -409,21 +415,21 @@ dependencies:
409
415
  version: '4.0'
410
416
  - - "<"
411
417
  - !ruby/object:Gem::Version
412
- version: '4.2'
418
+ version: '5'
413
419
  - !ruby/object:Gem::Dependency
414
420
  name: sprockets-rails
415
421
  requirement: !ruby/object:Gem::Requirement
416
422
  requirements:
417
- - - ">="
423
+ - - "!="
418
424
  - !ruby/object:Gem::Version
419
- version: '0'
425
+ version: 3.5.0
420
426
  type: :runtime
421
427
  prerelease: false
422
428
  version_requirements: !ruby/object:Gem::Requirement
423
429
  requirements:
424
- - - ">="
430
+ - - "!="
425
431
  - !ruby/object:Gem::Version
426
- version: '0'
432
+ version: 3.5.0
427
433
  - !ruby/object:Gem::Dependency
428
434
  name: state_machines-activerecord
429
435
  requirement: !ruby/object:Gem::Requirement
@@ -475,11 +481,9 @@ files:
475
481
  - app/helpers/spree/products_helper.rb
476
482
  - app/helpers/spree/store_helper.rb
477
483
  - app/helpers/spree/taxons_helper.rb
478
- - app/jobs/spree/promotion_code_batch_job.rb
479
484
  - app/mailers/spree/base_mailer.rb
480
485
  - app/mailers/spree/carton_mailer.rb
481
486
  - app/mailers/spree/order_mailer.rb
482
- - app/mailers/spree/promotion_code_batch_mailer.rb
483
487
  - app/mailers/spree/reimbursement_mailer.rb
484
488
  - app/models/concerns/spree/active_storage_adapter.rb
485
489
  - app/models/concerns/spree/active_storage_adapter/attachment.rb
@@ -507,25 +511,20 @@ files:
507
511
  - app/models/spree/billing_integration.rb
508
512
  - app/models/spree/calculator.rb
509
513
  - app/models/spree/calculator/default_tax.rb
510
- - app/models/spree/calculator/distributed_amount.rb
511
514
  - app/models/spree/calculator/flat_fee.rb
512
- - app/models/spree/calculator/flat_percent_item_total.rb
513
515
  - app/models/spree/calculator/flat_rate.rb
514
- - app/models/spree/calculator/flexi_rate.rb
515
- - app/models/spree/calculator/percent_on_line_item.rb
516
516
  - app/models/spree/calculator/returns/default_refund_amount.rb
517
517
  - app/models/spree/calculator/shipping/flat_percent_item_total.rb
518
518
  - app/models/spree/calculator/shipping/flat_rate.rb
519
519
  - app/models/spree/calculator/shipping/flexi_rate.rb
520
520
  - app/models/spree/calculator/shipping/per_item.rb
521
521
  - app/models/spree/calculator/shipping/price_sack.rb
522
- - app/models/spree/calculator/tiered_flat_rate.rb
523
- - app/models/spree/calculator/tiered_percent.rb
524
522
  - app/models/spree/carton.rb
525
523
  - app/models/spree/classification.rb
526
524
  - app/models/spree/country.rb
527
525
  - app/models/spree/credit_card.rb
528
526
  - app/models/spree/customer_return.rb
527
+ - app/models/spree/deprecated_configurable_class.rb
529
528
  - app/models/spree/distributed_amounts_handler.rb
530
529
  - app/models/spree/exchange.rb
531
530
  - app/models/spree/fulfilment_changer.rb
@@ -539,6 +538,10 @@ files:
539
538
  - app/models/spree/line_item.rb
540
539
  - app/models/spree/line_item_action.rb
541
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
542
545
  - app/models/spree/option_type.rb
543
546
  - app/models/spree/option_value.rb
544
547
  - app/models/spree/option_values_variant.rb
@@ -546,11 +549,9 @@ files:
546
549
  - app/models/spree/order/number_generator.rb
547
550
  - app/models/spree/order/payments.rb
548
551
  - app/models/spree/order_cancellations.rb
549
- - app/models/spree/order_contents.rb
550
552
  - app/models/spree/order_inventory.rb
551
553
  - app/models/spree/order_merger.rb
552
554
  - app/models/spree/order_mutex.rb
553
- - app/models/spree/order_promotion.rb
554
555
  - app/models/spree/order_shipping.rb
555
556
  - app/models/spree/order_taxation.rb
556
557
  - app/models/spree/order_update_attributes.rb
@@ -567,6 +568,7 @@ files:
567
568
  - app/models/spree/payment_method/simple_bogus_credit_card.rb
568
569
  - app/models/spree/payment_method/store_credit.rb
569
570
  - app/models/spree/payment_source.rb
571
+ - app/models/spree/permission_set.rb
570
572
  - app/models/spree/preference.rb
571
573
  - app/models/spree/price.rb
572
574
  - app/models/spree/product.rb
@@ -574,39 +576,6 @@ files:
574
576
  - app/models/spree/product_option_type.rb
575
577
  - app/models/spree/product_promotion_rule.rb
576
578
  - app/models/spree/product_property.rb
577
- - app/models/spree/promotion.rb
578
- - app/models/spree/promotion/actions/create_adjustment.rb
579
- - app/models/spree/promotion/actions/create_item_adjustments.rb
580
- - app/models/spree/promotion/actions/create_quantity_adjustments.rb
581
- - app/models/spree/promotion/actions/free_shipping.rb
582
- - app/models/spree/promotion/order_adjustments_recalculator.rb
583
- - app/models/spree/promotion/rules/first_order.rb
584
- - app/models/spree/promotion/rules/first_repeat_purchase_since.rb
585
- - app/models/spree/promotion/rules/item_total.rb
586
- - app/models/spree/promotion/rules/minimum_quantity.rb
587
- - app/models/spree/promotion/rules/nth_order.rb
588
- - app/models/spree/promotion/rules/one_use_per_user.rb
589
- - app/models/spree/promotion/rules/option_value.rb
590
- - app/models/spree/promotion/rules/product.rb
591
- - app/models/spree/promotion/rules/store.rb
592
- - app/models/spree/promotion/rules/taxon.rb
593
- - app/models/spree/promotion/rules/user.rb
594
- - app/models/spree/promotion/rules/user_logged_in.rb
595
- - app/models/spree/promotion/rules/user_role.rb
596
- - app/models/spree/promotion_action.rb
597
- - app/models/spree/promotion_category.rb
598
- - app/models/spree/promotion_chooser.rb
599
- - app/models/spree/promotion_code.rb
600
- - app/models/spree/promotion_code/batch_builder.rb
601
- - app/models/spree/promotion_code_batch.rb
602
- - app/models/spree/promotion_handler/cart.rb
603
- - app/models/spree/promotion_handler/coupon.rb
604
- - app/models/spree/promotion_handler/page.rb
605
- - app/models/spree/promotion_handler/shipping.rb
606
- - app/models/spree/promotion_rule.rb
607
- - app/models/spree/promotion_rule_store.rb
608
- - app/models/spree/promotion_rule_taxon.rb
609
- - app/models/spree/promotion_rule_user.rb
610
579
  - app/models/spree/property.rb
611
580
  - app/models/spree/refund.rb
612
581
  - app/models/spree/refund_reason.rb
@@ -636,6 +605,7 @@ files:
636
605
  - app/models/spree/return_reason.rb
637
606
  - app/models/spree/returns_calculator.rb
638
607
  - app/models/spree/role.rb
608
+ - app/models/spree/role_permission.rb
639
609
  - app/models/spree/role_user.rb
640
610
  - app/models/spree/shipment.rb
641
611
  - app/models/spree/shipping_calculator.rb
@@ -647,6 +617,7 @@ files:
647
617
  - app/models/spree/shipping_method_zone.rb
648
618
  - app/models/spree/shipping_rate.rb
649
619
  - app/models/spree/shipping_rate_tax.rb
620
+ - app/models/spree/simple_order_contents.rb
650
621
  - app/models/spree/state.rb
651
622
  - app/models/spree/state_change.rb
652
623
  - app/models/spree/stock/allocator/base.rb
@@ -733,8 +704,6 @@ files:
733
704
  - app/views/spree/order_mailer/confirm_email.text.erb
734
705
  - app/views/spree/order_mailer/inventory_cancellation_email.html.erb
735
706
  - app/views/spree/order_mailer/inventory_cancellation_email.text.erb
736
- - app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb
737
- - app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb
738
707
  - app/views/spree/reimbursement_mailer/reimbursement_email.html.erb
739
708
  - app/views/spree/reimbursement_mailer/reimbursement_email.text.erb
740
709
  - app/views/spree/shared/_base_mailer_footer.html.erb
@@ -750,6 +719,7 @@ files:
750
719
  - config/initializers/money.rb
751
720
  - config/locales/en.yml
752
721
  - db/default/spree/countries.rb
722
+ - db/default/spree/permission_sets.rb
753
723
  - db/default/spree/refund_reasons.rb
754
724
  - db/default/spree/return_reasons.rb
755
725
  - db/default/spree/roles.rb
@@ -765,7 +735,6 @@ files:
765
735
  - db/migrate/20160924135758_remove_is_default_from_prices.rb
766
736
  - db/migrate/20161009141333_remove_currency_from_line_items.rb
767
737
  - db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb
768
- - db/migrate/20161017102621_create_spree_promotion_code_batch.rb
769
738
  - db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb
770
739
  - db/migrate/20161129035810_add_index_to_spree_payments_number.rb
771
740
  - db/migrate/20170223235001_remove_spree_store_credits_column.rb
@@ -776,14 +745,11 @@ files:
776
745
  - db/migrate/20170522143442_add_time_range_to_tax_rate.rb
777
746
  - db/migrate/20170608074534_rename_bogus_gateways.rb
778
747
  - db/migrate/20170831201542_remove_default_tax_from_spree_zones.rb
779
- - db/migrate/20180202190713_create_promotion_rule_stores.rb
780
748
  - db/migrate/20180202222641_create_store_shipping_methods.rb
781
749
  - db/migrate/20180313220213_add_available_locales_to_stores.rb
782
750
  - db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb
783
- - db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb
784
751
  - db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb
785
752
  - db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb
786
- - db/migrate/20190106184413_remove_code_from_spree_promotions.rb
787
753
  - db/migrate/20190220093635_drop_spree_store_credit_update_reasons.rb
788
754
  - db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb
789
755
  - db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb
@@ -792,17 +758,15 @@ files:
792
758
  - db/migrate/20210122110141_add_name_to_spree_addresses.rb
793
759
  - db/migrate/20210312061050_change_column_null_on_prices.rb
794
760
  - db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb
795
- - db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb
796
761
  - db/migrate/20220805202442_add_level_to_spree_tax_rates.rb
797
762
  - db/migrate/20221123152807_add_shipping_category_to_spree_variants.rb
798
763
  - db/migrate/20230321161854_change_column_null_option_values_option_type_id.rb
799
- - db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb
800
- - db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb
801
- - db/migrate/20230325161633_drop_unused_promo_action_line_items.rb
802
764
  - db/migrate/20230425103509_remove_taxon_position.rb
803
765
  - db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb
804
- - db/migrate/20231027084517_add_order_promotions_foreign_key.rb
805
- - 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
806
770
  - db/seeds.rb
807
771
  - lib/generators/solidus/install/app_templates/authentication/custom.rb
808
772
  - lib/generators/solidus/install/app_templates/authentication/devise.rb
@@ -831,7 +795,6 @@ files:
831
795
  - lib/generators/spree/dummy/templates/rails/script/rails
832
796
  - lib/generators/spree/dummy/templates/rails/storage.yml
833
797
  - lib/generators/spree/dummy/templates/rails/test.rb
834
- - lib/solidus/migrations/promotions_with_code_handlers.rb
835
798
  - lib/solidus_core.rb
836
799
  - lib/spree/app_configuration.rb
837
800
  - lib/spree/bus.rb
@@ -855,6 +818,8 @@ files:
855
818
  - lib/spree/core/importer.rb
856
819
  - lib/spree/core/importer/order.rb
857
820
  - lib/spree/core/importer/product.rb
821
+ - lib/spree/core/nested_class_set.rb
822
+ - lib/spree/core/null_promotion_configuration.rb
858
823
  - lib/spree/core/permalinks.rb
859
824
  - lib/spree/core/product_duplicator.rb
860
825
  - lib/spree/core/product_filters.rb
@@ -876,6 +841,7 @@ files:
876
841
  - lib/spree/core/versioned_value.rb
877
842
  - lib/spree/deprecated_instance_variable_proxy.rb
878
843
  - lib/spree/deprecation.rb
844
+ - lib/spree/deprecator.rb
879
845
  - lib/spree/encryptor.rb
880
846
  - lib/spree/i18n.rb
881
847
  - lib/spree/localized_number.rb
@@ -895,8 +861,6 @@ files:
895
861
  - lib/spree/permission_sets/order_management.rb
896
862
  - lib/spree/permission_sets/product_display.rb
897
863
  - lib/spree/permission_sets/product_management.rb
898
- - lib/spree/permission_sets/promotion_display.rb
899
- - lib/spree/permission_sets/promotion_management.rb
900
864
  - lib/spree/permission_sets/restricted_stock_display.rb
901
865
  - lib/spree/permission_sets/restricted_stock_management.rb
902
866
  - lib/spree/permission_sets/stock_display.rb
@@ -914,7 +878,6 @@ files:
914
878
  - lib/spree/preferences/static_model_preferences.rb
915
879
  - lib/spree/preferences/statically_configurable.rb
916
880
  - lib/spree/preferences/store.rb
917
- - lib/spree/ransack_4_1_patch.rb
918
881
  - lib/spree/testing_support/ability_helpers.rb
919
882
  - lib/spree/testing_support/authorization_helpers.rb
920
883
  - lib/spree/testing_support/blacklist_urls.rb
@@ -923,6 +886,7 @@ files:
923
886
  - lib/spree/testing_support/capybara_ext.rb
924
887
  - lib/spree/testing_support/common_rake.rb
925
888
  - lib/spree/testing_support/controller_requests.rb
889
+ - lib/spree/testing_support/dummy_ability.rb
926
890
  - lib/spree/testing_support/dummy_app.rb
927
891
  - lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js
928
892
  - lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css
@@ -947,16 +911,12 @@ files:
947
911
  - lib/spree/testing_support/factories/option_type_factory.rb
948
912
  - lib/spree/testing_support/factories/option_value_factory.rb
949
913
  - lib/spree/testing_support/factories/order_factory.rb
950
- - lib/spree/testing_support/factories/order_promotion_factory.rb
951
914
  - lib/spree/testing_support/factories/payment_factory.rb
952
915
  - lib/spree/testing_support/factories/payment_method_factory.rb
953
916
  - lib/spree/testing_support/factories/price_factory.rb
954
917
  - lib/spree/testing_support/factories/product_factory.rb
955
918
  - lib/spree/testing_support/factories/product_option_type_factory.rb
956
919
  - lib/spree/testing_support/factories/product_property_factory.rb
957
- - lib/spree/testing_support/factories/promotion_category_factory.rb
958
- - lib/spree/testing_support/factories/promotion_code_factory.rb
959
- - lib/spree/testing_support/factories/promotion_factory.rb
960
920
  - lib/spree/testing_support/factories/property_factory.rb
961
921
  - lib/spree/testing_support/factories/refund_factory.rb
962
922
  - lib/spree/testing_support/factories/refund_reason_factory.rb
@@ -1003,7 +963,10 @@ files:
1003
963
  - lib/spree/testing_support/preferences.rb
1004
964
  - lib/spree/testing_support/rake.rb
1005
965
  - lib/spree/testing_support/sequences.rb
966
+ - lib/spree/testing_support/shared_examples/calculator.rb
1006
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
1007
970
  - lib/spree/testing_support/silence_deprecations.rb
1008
971
  - lib/spree/testing_support/translations.rb
1009
972
  - lib/spree/testing_support/url_helpers.rb
@@ -1051,14 +1014,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1051
1014
  requirements:
1052
1015
  - - ">="
1053
1016
  - !ruby/object:Gem::Version
1054
- version: 3.0.0
1017
+ version: 3.1.0
1055
1018
  required_rubygems_version: !ruby/object:Gem::Requirement
1056
1019
  requirements:
1057
1020
  - - ">="
1058
1021
  - !ruby/object:Gem::Version
1059
1022
  version: 1.8.23
1060
1023
  requirements: []
1061
- rubygems_version: 3.4.19
1024
+ rubygems_version: 3.5.22
1062
1025
  signing_key:
1063
1026
  specification_version: 4
1064
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