spree_core 5.2.6 → 5.3.0.rc1

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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/addresses_helper.rb +1 -23
  3. data/app/helpers/spree/base_helper.rb +25 -77
  4. data/app/helpers/spree/currency_helper.rb +2 -2
  5. data/app/helpers/spree/images_helper.rb +5 -0
  6. data/app/helpers/spree/mail_helper.rb +1 -1
  7. data/app/helpers/spree/products_helper.rb +1 -1
  8. data/app/jobs/spree/events/subscriber_job.rb +58 -0
  9. data/app/jobs/spree/products/refresh_metrics_job.rb +14 -0
  10. data/app/jobs/spree/products/touch_taxons_job.rb +0 -1
  11. data/app/jobs/spree/variants/touch_job.rb +9 -0
  12. data/app/models/concerns/spree/adjustment_source.rb +8 -0
  13. data/app/models/concerns/spree/parameterizable_name.rb +1 -1
  14. data/app/models/concerns/spree/product_scopes.rb +54 -8
  15. data/app/models/concerns/spree/publishable.rb +253 -0
  16. data/app/models/concerns/spree/unique_name.rb +1 -1
  17. data/app/models/concerns/spree/user_methods.rb +21 -1
  18. data/app/models/spree/ability.rb +3 -3
  19. data/app/models/spree/address.rb +0 -3
  20. data/app/models/spree/adjustable/promotion_accumulator.rb +1 -1
  21. data/app/models/spree/adjustment.rb +32 -6
  22. data/app/models/spree/asset.rb +6 -3
  23. data/app/models/spree/base.rb +3 -1
  24. data/app/models/spree/classification.rb +2 -2
  25. data/app/models/spree/credit_card.rb +0 -3
  26. data/app/models/spree/current.rb +24 -3
  27. data/app/models/spree/custom_domain.rb +1 -1
  28. data/app/models/spree/customer_group.rb +94 -0
  29. data/app/models/spree/customer_group_user.rb +16 -0
  30. data/app/models/spree/customer_return.rb +2 -3
  31. data/app/models/spree/digital.rb +2 -4
  32. data/app/models/spree/digital_link.rb +2 -3
  33. data/app/models/spree/event.rb +104 -0
  34. data/app/models/spree/export.rb +7 -1
  35. data/app/models/spree/gift_card.rb +13 -1
  36. data/app/models/spree/gift_card_batch.rb +3 -1
  37. data/app/models/spree/image.rb +20 -5
  38. data/app/models/spree/import.rb +17 -12
  39. data/app/models/spree/import_row.rb +13 -26
  40. data/app/models/spree/inventory_unit.rb +0 -3
  41. data/app/models/spree/invitation.rb +12 -6
  42. data/app/models/spree/line_item.rb +57 -4
  43. data/app/models/spree/newsletter_subscriber.rb +2 -0
  44. data/app/models/spree/option_type.rb +2 -5
  45. data/app/models/spree/option_value.rb +1 -4
  46. data/app/models/spree/order/checkout.rb +7 -2
  47. data/app/models/spree/order/emails.rb +3 -11
  48. data/app/models/spree/order/store_credit.rb +5 -1
  49. data/app/models/spree/order.rb +80 -31
  50. data/app/models/spree/order_updater.rb +28 -9
  51. data/app/models/spree/payment/custom_events.rb +37 -0
  52. data/app/models/spree/payment.rb +13 -4
  53. data/app/models/spree/payment_capture_event.rb +0 -4
  54. data/app/models/spree/payment_method.rb +1 -1
  55. data/app/models/spree/permission_sets/default_customer.rb +3 -3
  56. data/app/models/spree/policy.rb +1 -8
  57. data/app/models/spree/post.rb +2 -7
  58. data/app/models/spree/post_category.rb +2 -0
  59. data/app/models/spree/price.rb +8 -6
  60. data/app/models/spree/price_list.rb +263 -0
  61. data/app/models/spree/price_rule.rb +26 -0
  62. data/app/models/spree/price_rules/customer_group_rule.rb +21 -0
  63. data/app/models/spree/price_rules/user_rule.rb +19 -0
  64. data/app/models/spree/price_rules/volume_rule.rb +21 -0
  65. data/app/models/spree/price_rules/zone_rule.rb +19 -0
  66. data/app/models/spree/product.rb +117 -76
  67. data/app/models/spree/product_property.rb +2 -2
  68. data/app/models/spree/promotion/rules/customer_group.rb +22 -0
  69. data/app/models/spree/promotion/rules/user.rb +2 -2
  70. data/app/models/spree/promotion.rb +3 -4
  71. data/app/models/spree/promotion_handler/coupon.rb +3 -3
  72. data/app/models/spree/property.rb +3 -6
  73. data/app/models/spree/prototype.rb +0 -3
  74. data/app/models/spree/refund.rb +2 -3
  75. data/app/models/spree/reimbursement.rb +5 -3
  76. data/app/models/spree/report.rb +7 -1
  77. data/app/models/spree/reports/products_performance.rb +1 -1
  78. data/app/models/spree/reports/sales_total.rb +1 -1
  79. data/app/models/spree/return_authorization.rb +7 -3
  80. data/app/models/spree/return_item.rb +15 -4
  81. data/app/models/spree/shipment/custom_events.rb +47 -0
  82. data/app/models/spree/shipment.rb +12 -5
  83. data/app/models/spree/shipping_category.rb +0 -3
  84. data/app/models/spree/shipping_method.rb +0 -3
  85. data/app/models/spree/stock/quantifier.rb +1 -1
  86. data/app/models/spree/stock_item.rb +2 -0
  87. data/app/models/spree/stock_location.rb +0 -3
  88. data/app/models/spree/stock_movement/custom_events.rb +44 -0
  89. data/app/models/spree/stock_movement.rb +3 -0
  90. data/app/models/spree/stock_transfer.rb +2 -3
  91. data/app/models/spree/store.rb +64 -92
  92. data/app/models/spree/store_credit.rb +3 -4
  93. data/app/models/spree/store_product.rb +14 -0
  94. data/app/models/spree/subscriber.rb +186 -0
  95. data/app/models/spree/tax_category.rb +0 -4
  96. data/app/models/spree/tax_rate.rb +0 -3
  97. data/app/models/spree/taxon.rb +3 -36
  98. data/app/models/spree/taxonomy.rb +0 -3
  99. data/app/models/spree/variant.rb +114 -21
  100. data/app/models/spree/webhook_delivery.rb +60 -0
  101. data/app/models/spree/webhook_endpoint.rb +53 -0
  102. data/app/models/spree/wished_item.rb +2 -4
  103. data/app/models/spree/wishlist.rb +2 -3
  104. data/app/models/spree/zone.rb +0 -9
  105. data/app/paginators/spree/shared/paginate.rb +4 -0
  106. data/app/serializers/spree/events/asset_serializer.rb +22 -0
  107. data/app/serializers/spree/events/base_serializer.rb +61 -0
  108. data/app/serializers/spree/events/customer_return_serializer.rb +20 -0
  109. data/app/serializers/spree/events/digital_link_serializer.rb +20 -0
  110. data/app/serializers/spree/events/digital_serializer.rb +18 -0
  111. data/app/serializers/spree/events/export_serializer.rb +22 -0
  112. data/app/serializers/spree/events/gift_card_batch_serializer.rb +24 -0
  113. data/app/serializers/spree/events/gift_card_serializer.rb +29 -0
  114. data/app/serializers/spree/events/image_serializer.rb +9 -0
  115. data/app/serializers/spree/events/import_row_serializer.rb +23 -0
  116. data/app/serializers/spree/events/import_serializer.rb +24 -0
  117. data/app/serializers/spree/events/invitation_serializer.rb +28 -0
  118. data/app/serializers/spree/events/line_item_serializer.rb +31 -0
  119. data/app/serializers/spree/events/newsletter_subscriber_serializer.rb +21 -0
  120. data/app/serializers/spree/events/order_serializer.rb +39 -0
  121. data/app/serializers/spree/events/payment_serializer.rb +24 -0
  122. data/app/serializers/spree/events/post_category_serializer.rb +20 -0
  123. data/app/serializers/spree/events/post_serializer.rb +26 -0
  124. data/app/serializers/spree/events/price_serializer.rb +22 -0
  125. data/app/serializers/spree/events/product_serializer.rb +24 -0
  126. data/app/serializers/spree/events/promotion_serializer.rb +32 -0
  127. data/app/serializers/spree/events/refund_serializer.rb +23 -0
  128. data/app/serializers/spree/events/reimbursement_serializer.rb +22 -0
  129. data/app/serializers/spree/events/report_serializer.rb +23 -0
  130. data/app/serializers/spree/events/return_authorization_serializer.rb +22 -0
  131. data/app/serializers/spree/events/return_item_serializer.rb +27 -0
  132. data/app/serializers/spree/events/shipment_serializer.rb +24 -0
  133. data/app/serializers/spree/events/stock_item_serializer.rb +22 -0
  134. data/app/serializers/spree/events/stock_movement_serializer.rb +22 -0
  135. data/app/serializers/spree/events/stock_transfer_serializer.rb +22 -0
  136. data/app/serializers/spree/events/store_credit_serializer.rb +30 -0
  137. data/app/serializers/spree/events/user_serializer.rb +18 -0
  138. data/app/serializers/spree/events/variant_serializer.rb +34 -0
  139. data/app/serializers/spree/events/wished_item_serializer.rb +20 -0
  140. data/app/serializers/spree/events/wishlist_serializer.rb +22 -0
  141. data/app/services/spree/addresses/update.rb +1 -1
  142. data/app/services/spree/cart/add_item.rb +1 -1
  143. data/app/services/spree/coupon_codes/coupon_codes_handler.rb +2 -1
  144. data/app/services/spree/data_feeds/google/required_attributes.rb +4 -4
  145. data/app/services/spree/newsletter/verify.rb +5 -0
  146. data/app/services/spree/products/auto_match_taxons.rb +1 -1
  147. data/app/services/spree/seeds/all.rb +1 -1
  148. data/app/services/spree/taxons/add_products.rb +8 -4
  149. data/app/services/spree/taxons/regenerate_products.rb +8 -0
  150. data/app/services/spree/taxons/remove_products.rb +12 -7
  151. data/app/subscribers/spree/event_log_subscriber.rb +64 -0
  152. data/app/subscribers/spree/export_subscriber.rb +26 -0
  153. data/app/subscribers/spree/invitation_email_subscriber.rb +40 -0
  154. data/app/subscribers/spree/product_metrics_subscriber.rb +29 -0
  155. data/app/subscribers/spree/report_subscriber.rb +26 -0
  156. data/config/locales/en.yml +126 -0
  157. data/db/migrate/20251110120000_create_spree_price_lists.rb +22 -0
  158. data/db/migrate/20251110120001_create_spree_price_rules.rb +13 -0
  159. data/db/migrate/20251110120002_add_price_list_id_to_spree_prices.rb +6 -0
  160. data/db/migrate/20251110120003_add_price_list_id_to_spree_line_items.rb +5 -0
  161. data/db/migrate/20251201172118_fix_indexes_on_friendly_id_slugs.rb +8 -0
  162. data/db/migrate/20251214000001_create_spree_webhook_endpoints.rb +19 -0
  163. data/db/migrate/20251214000002_create_spree_webhook_deliveries.rb +23 -0
  164. data/db/migrate/20251222000000_add_performance_indexes_to_spree_adjustments.rb +25 -0
  165. data/db/migrate/20260112000000_fix_spree_prices_unique_indexes.rb +33 -0
  166. data/db/migrate/20260115120000_create_spree_customer_groups.rb +14 -0
  167. data/db/migrate/20260115120001_create_spree_customer_group_users.rb +14 -0
  168. data/db/migrate/20260117140831_remove_not_null_constraint_from_policy_name.rb +5 -0
  169. data/db/migrate/20260118120000_add_statistics_to_store_products.rb +11 -0
  170. data/db/migrate/20260119120000_add_counter_caches_to_spree_products.rb +9 -0
  171. data/db/migrate/20260119170000_add_counter_caches_to_spree_taxons.rb +9 -0
  172. data/db/migrate/20260120120000_add_image_count_to_spree_variants.rb +9 -0
  173. data/lib/generators/spree/dummy/dummy_generator.rb +14 -2
  174. data/lib/spree/core/configuration.rb +1 -0
  175. data/lib/spree/core/controller_helpers/auth.rb +0 -15
  176. data/lib/spree/core/controller_helpers/currency.rb +13 -9
  177. data/lib/spree/core/controller_helpers/search.rb +1 -1
  178. data/lib/spree/core/controller_helpers/store.rb +5 -1
  179. data/lib/spree/core/engine.rb +61 -78
  180. data/lib/spree/core/importer/order.rb +1 -1
  181. data/lib/spree/core/importer/product.rb +1 -1
  182. data/lib/spree/core/preferences/preferable.rb +14 -1
  183. data/lib/spree/core/pricing/context.rb +63 -0
  184. data/lib/spree/core/pricing/resolver.rb +129 -0
  185. data/lib/spree/core/search/base.rb +1 -1
  186. data/lib/spree/core/token_generator.rb +1 -1
  187. data/lib/spree/core/version.rb +1 -1
  188. data/lib/spree/core.rb +42 -47
  189. data/lib/spree/events/adapters/active_support_notifications.rb +112 -0
  190. data/lib/spree/events/adapters/base.rb +193 -0
  191. data/lib/spree/events/registry.rb +99 -0
  192. data/lib/spree/events.rb +240 -0
  193. data/lib/spree/permitted_attributes.rb +13 -2
  194. data/lib/spree/testing_support/common_rake.rb +68 -35
  195. data/lib/spree/testing_support/factories/customer_group_factory.rb +6 -0
  196. data/lib/spree/testing_support/factories/customer_group_user_factory.rb +6 -0
  197. data/lib/spree/testing_support/factories/price_factory.rb +4 -0
  198. data/lib/spree/testing_support/factories/price_list_factory.rb +34 -0
  199. data/lib/spree/testing_support/factories/price_rule_factory.rb +49 -0
  200. data/lib/spree/testing_support/factories/promotion_rule_factory.rb +12 -0
  201. data/lib/spree/testing_support/factories/stock_item_factory.rb +6 -4
  202. data/lib/spree/testing_support/factories/store_product_factory.rb +6 -0
  203. data/lib/spree/testing_support/factories/taxon_factory.rb +0 -1
  204. data/lib/spree/testing_support/factories/webhook_delivery_factory.rb +48 -0
  205. data/lib/spree/testing_support/factories/webhook_endpoint_factory.rb +22 -0
  206. data/lib/spree/testing_support/lifecycle_events.rb +38 -0
  207. data/lib/spree/testing_support/store.rb +4 -2
  208. data/lib/spree/webhooks.rb +22 -0
  209. data/lib/tasks/products.rake +40 -0
  210. data/lib/tasks/taxons.rake +19 -0
  211. data/lib/tasks/variants.rake +18 -0
  212. metadata +112 -114
  213. data/app/jobs/spree/themes/duplicate_components_job.rb +0 -59
  214. data/app/jobs/spree/themes/screenshot_job.rb +0 -81
  215. data/app/models/concerns/spree/has_page_links.rb +0 -53
  216. data/app/models/spree/page.rb +0 -188
  217. data/app/models/spree/page_block.rb +0 -73
  218. data/app/models/spree/page_blocks/buttons.rb +0 -29
  219. data/app/models/spree/page_blocks/heading.rb +0 -18
  220. data/app/models/spree/page_blocks/image.rb +0 -20
  221. data/app/models/spree/page_blocks/link.rb +0 -21
  222. data/app/models/spree/page_blocks/mega_nav.rb +0 -33
  223. data/app/models/spree/page_blocks/mega_nav_with_subcategories.rb +0 -32
  224. data/app/models/spree/page_blocks/metafields.rb +0 -18
  225. data/app/models/spree/page_blocks/nav.rb +0 -15
  226. data/app/models/spree/page_blocks/newsletter_form.rb +0 -18
  227. data/app/models/spree/page_blocks/products/brand.rb +0 -15
  228. data/app/models/spree/page_blocks/products/buy_buttons.rb +0 -24
  229. data/app/models/spree/page_blocks/products/description.rb +0 -18
  230. data/app/models/spree/page_blocks/products/price.rb +0 -18
  231. data/app/models/spree/page_blocks/products/quantity_selector.rb +0 -20
  232. data/app/models/spree/page_blocks/products/share.rb +0 -8
  233. data/app/models/spree/page_blocks/products/title.rb +0 -19
  234. data/app/models/spree/page_blocks/products/variant_picker.rb +0 -13
  235. data/app/models/spree/page_blocks/subheading.rb +0 -17
  236. data/app/models/spree/page_blocks/text.rb +0 -16
  237. data/app/models/spree/page_link.rb +0 -60
  238. data/app/models/spree/page_section.rb +0 -222
  239. data/app/models/spree/page_sections/announcement_bar.rb +0 -28
  240. data/app/models/spree/page_sections/breadcrumbs.rb +0 -12
  241. data/app/models/spree/page_sections/collection_banner.rb +0 -18
  242. data/app/models/spree/page_sections/custom_code.rb +0 -11
  243. data/app/models/spree/page_sections/featured_posts.rb +0 -45
  244. data/app/models/spree/page_sections/featured_product.rb +0 -50
  245. data/app/models/spree/page_sections/featured_taxon.rb +0 -90
  246. data/app/models/spree/page_sections/featured_taxons.rb +0 -45
  247. data/app/models/spree/page_sections/footer.rb +0 -101
  248. data/app/models/spree/page_sections/header.rb +0 -62
  249. data/app/models/spree/page_sections/image_banner.rb +0 -55
  250. data/app/models/spree/page_sections/image_with_text.rb +0 -65
  251. data/app/models/spree/page_sections/main_password_footer.rb +0 -18
  252. data/app/models/spree/page_sections/main_password_header.rb +0 -20
  253. data/app/models/spree/page_sections/newsletter.rb +0 -54
  254. data/app/models/spree/page_sections/page_title.rb +0 -19
  255. data/app/models/spree/page_sections/post_details.rb +0 -19
  256. data/app/models/spree/page_sections/post_grid.rb +0 -19
  257. data/app/models/spree/page_sections/product_details.rb +0 -53
  258. data/app/models/spree/page_sections/product_grid.rb +0 -13
  259. data/app/models/spree/page_sections/related_products.rb +0 -58
  260. data/app/models/spree/page_sections/rich_text.rb +0 -31
  261. data/app/models/spree/page_sections/taxon_banner.rb +0 -18
  262. data/app/models/spree/page_sections/taxon_grid.rb +0 -17
  263. data/app/models/spree/page_sections/video.rb +0 -107
  264. data/app/models/spree/pages/account.rb +0 -19
  265. data/app/models/spree/pages/cart.rb +0 -19
  266. data/app/models/spree/pages/checkout.rb +0 -15
  267. data/app/models/spree/pages/custom.rb +0 -38
  268. data/app/models/spree/pages/homepage.rb +0 -72
  269. data/app/models/spree/pages/login.rb +0 -19
  270. data/app/models/spree/pages/password.rb +0 -59
  271. data/app/models/spree/pages/post.rb +0 -27
  272. data/app/models/spree/pages/post_list.rb +0 -36
  273. data/app/models/spree/pages/product_details.rb +0 -30
  274. data/app/models/spree/pages/search_results.rb +0 -43
  275. data/app/models/spree/pages/shop_all.rb +0 -40
  276. data/app/models/spree/pages/taxon.rb +0 -29
  277. data/app/models/spree/pages/taxon_list.rb +0 -41
  278. data/app/models/spree/pages/wishlist.rb +0 -15
  279. data/app/models/spree/theme.rb +0 -233
  280. data/app/models/spree/themes/default.rb +0 -97
  281. data/app/services/spree/taxons/touch_featured_sections.rb +0 -21
  282. data/db/migrate/20250120094216_create_page_builder_models.rb +0 -78
  283. data/db/migrate/20250305121352_remove_page_builder_indices.rb +0 -11
  284. data/db/migrate/20250825175217_add_missing_page_builder_indexes.rb +0 -7
  285. data/db/migrate/20250913130044_add_page_links_counter_cache_to_spree_stores.rb +0 -10
  286. data/lib/generators/spree/dummy/templates/initializers/devise.rb +0 -3
  287. data/lib/generators/spree/install/install_generator.rb +0 -219
  288. data/lib/generators/spree/install/templates/config/initializers/spree.rb +0 -126
  289. data/lib/spree/core/webhooks.rb +0 -21
  290. data/lib/spree/testing_support/factories/page_block_factory.rb +0 -22
  291. data/lib/spree/testing_support/factories/page_factory.rb +0 -33
  292. data/lib/spree/testing_support/factories/page_link_factory.rb +0 -7
  293. data/lib/spree/testing_support/factories/page_section_factory.rb +0 -27
  294. data/lib/spree/testing_support/factories/theme_factory.rb +0 -14
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ factory :webhook_endpoint, class: Spree::WebhookEndpoint do
5
+ store
6
+ sequence(:url) { |n| "https://example.com/webhooks/#{n}" }
7
+ active { true }
8
+ subscriptions { [] }
9
+
10
+ trait :inactive do
11
+ active { false }
12
+ end
13
+
14
+ trait :with_subscriptions do
15
+ subscriptions { %w[order.created order.completed product.created] }
16
+ end
17
+
18
+ trait :all_events do
19
+ subscriptions { ['*'] }
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ shared_examples_for 'lifecycle events' do |factory: nil, event_prefix: nil|
4
+ let(:lifecycle_factory) { factory || described_class.name.demodulize.underscore.to_sym }
5
+ let(:lifecycle_event_prefix) { event_prefix || described_class.event_prefix }
6
+
7
+ describe 'lifecycle events', events: true do
8
+ describe "#{described_class.event_prefix}.created" do
9
+ it 'publishes created event when record is created' do
10
+ record = build(lifecycle_factory)
11
+ expect(record).to receive(:publish_event).with("#{lifecycle_event_prefix}.created")
12
+ allow(record).to receive(:publish_event).with(anything)
13
+
14
+ record.save!
15
+ end
16
+ end
17
+
18
+ describe "#{described_class.event_prefix}.updated" do
19
+ it 'publishes updated event when record is updated' do
20
+ record = create(lifecycle_factory)
21
+ expect(record).to receive(:publish_event).with("#{lifecycle_event_prefix}.updated")
22
+ allow(record).to receive(:publish_event).with(anything)
23
+
24
+ record.touch
25
+ end
26
+ end
27
+
28
+ describe "#{described_class.event_prefix}.deleted" do
29
+ it 'publishes deleted event when record is deleted' do
30
+ record = create(lifecycle_factory)
31
+ expect(record).to receive(:publish_event).with("#{lifecycle_event_prefix}.deleted", kind_of(Hash))
32
+ allow(record).to receive(:publish_event).with(anything)
33
+
34
+ record.destroy!
35
+ end
36
+ end
37
+ end
38
+ end
@@ -16,8 +16,10 @@ RSpec.configure do |config|
16
16
  # Ensure locale is set to :en before creating store to avoid translation issues
17
17
  # when previous tests left the locale in a different language
18
18
  I18n.with_locale(:en) do
19
- @default_country = Spree::Country.find_by(iso: 'US') || FactoryBot.create(:country_us)
20
- @default_store = Spree::Store.find_by(default: true) || FactoryBot.create(:store, default: true, default_country: @default_country, default_currency: 'USD')
19
+ Spree::Events.disable do
20
+ @default_country = Spree::Country.find_by(iso: 'US') || FactoryBot.create(:country_us)
21
+ @default_store = Spree::Store.find_by(default: true) || FactoryBot.create(:store, default: true, default_country: @default_country, default_currency: 'USD')
22
+ end
21
23
  end
22
24
  end
23
25
  end
@@ -0,0 +1,22 @@
1
+ module Spree
2
+ module Webhooks
3
+ def self.disable_webhooks
4
+ Spree::Deprecation.warn('Spree::Webhooks.disable_webhooks is deprecated. Use Spree::LegacyWebhooks.disable_webhooks instead.')
5
+ prev_value = disabled?
6
+ RequestStore.store[:disable_spree_legacy_webhooks] = true
7
+ yield
8
+ ensure
9
+ RequestStore.store[:disable_spree_legacy_webhooks] = prev_value
10
+ end
11
+
12
+ def self.disabled?
13
+ Spree::Deprecation.warn('Spree::Webhooks.disabled? is deprecated. Use Spree::LegacyWebhooks.disabled? instead.')
14
+ RequestStore.fetch(:disable_spree_legacy_webhooks) { false }
15
+ end
16
+
17
+ def self.disabled=(value)
18
+ Spree::Deprecation.warn('Spree::Webhooks.disabled= is deprecated. Use Spree::LegacyWebhooks.disabled= instead.')
19
+ RequestStore.store[:disable_spree_legacy_webhooks] = value
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,40 @@
1
+ namespace :spree do
2
+ namespace :products do
3
+ desc 'Reset counter caches (variant_count, classification_count, total_image_count) on products'
4
+ task reset_counter_caches: :environment do |_t, _args|
5
+ puts 'Resetting product counter caches...'
6
+
7
+ Spree::Product.find_each do |product|
8
+ product.update_columns(
9
+ variant_count: product.variants.count,
10
+ classification_count: product.classifications.count,
11
+ total_image_count: product.variant_images.count,
12
+ updated_at: Time.current
13
+ )
14
+ print '.'
15
+ end
16
+
17
+ puts "\nDone!"
18
+ end
19
+
20
+ desc 'Enqueue background jobs to populate product metrics for all store products'
21
+ task populate_metrics: :environment do
22
+ total_count = 0
23
+
24
+ Spree::StoreProduct.in_batches(of: 100) do |batch|
25
+ jobs = batch.pluck(:product_id, :store_id).map do |product_id, store_id|
26
+ Spree::Products::RefreshMetricsJob.new(product_id, store_id)
27
+ end
28
+ ActiveJob.perform_all_later(jobs)
29
+ total_count += jobs.size
30
+ print '.'
31
+ end
32
+
33
+ if total_count.zero?
34
+ puts 'No store products found.'
35
+ else
36
+ puts "\nEnqueued #{total_count} jobs to refresh product metrics."
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,19 @@
1
+ namespace :spree do
2
+ namespace :taxons do
3
+ desc 'Reset counter caches (children_count, classification_count) on taxons'
4
+ task reset_counter_caches: :environment do |_t, _args|
5
+ puts 'Resetting taxon counter caches...'
6
+
7
+ Spree::Taxon.find_each do |taxon|
8
+ taxon.update_columns(
9
+ children_count: taxon.children.count,
10
+ classification_count: taxon.classifications.count,
11
+ updated_at: Time.current
12
+ )
13
+ print '.'
14
+ end
15
+
16
+ puts "\nDone!"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ namespace :spree do
2
+ namespace :variants do
3
+ desc 'Reset image_count counter cache on variants'
4
+ task reset_counter_caches: :environment do |_t, _args|
5
+ puts 'Resetting variant counter caches...'
6
+
7
+ Spree::Variant.find_each do |variant|
8
+ variant.update_columns(
9
+ image_count: variant.images.count,
10
+ updated_at: Time.current
11
+ )
12
+ print '.'
13
+ end
14
+
15
+ puts "\nDone!"
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.6
4
+ version: 5.3.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -87,20 +87,6 @@ dependencies:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
- - !ruby/object:Gem::Dependency
91
- name: auto_strip_attributes
92
- requirement: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '2.6'
97
- type: :runtime
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '2.6'
104
90
  - !ruby/object:Gem::Dependency
105
91
  name: awesome_nested_set
106
92
  requirement: !ruby/object:Gem::Requirement
@@ -217,20 +203,6 @@ dependencies:
217
203
  - - "<"
218
204
  - !ruby/object:Gem::Version
219
205
  version: '4'
220
- - !ruby/object:Gem::Dependency
221
- name: kaminari
222
- requirement: !ruby/object:Gem::Requirement
223
- requirements:
224
- - - "~>"
225
- - !ruby/object:Gem::Version
226
- version: '1.2'
227
- type: :runtime
228
- prerelease: false
229
- version_requirements: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - "~>"
232
- - !ruby/object:Gem::Version
233
- version: '1.2'
234
206
  - !ruby/object:Gem::Dependency
235
207
  name: money
236
208
  requirement: !ruby/object:Gem::Requirement
@@ -573,6 +545,20 @@ dependencies:
573
545
  - - "~>"
574
546
  - !ruby/object:Gem::Version
575
547
  version: '0.10'
548
+ - !ruby/object:Gem::Dependency
549
+ name: ar_lazy_preload
550
+ requirement: !ruby/object:Gem::Requirement
551
+ requirements:
552
+ - - "~>"
553
+ - !ruby/object:Gem::Version
554
+ version: '2.0'
555
+ type: :runtime
556
+ prerelease: false
557
+ version_requirements: !ruby/object:Gem::Requirement
558
+ requirements:
559
+ - - "~>"
560
+ - !ruby/object:Gem::Version
561
+ version: '2.0'
576
562
  description: Spree Models, Helpers, Services and core libraries
577
563
  email: hello@spreecommerce.org
578
564
  executables: []
@@ -836,19 +822,20 @@ files:
836
822
  - app/jobs/spree/addresses/geocode_address_job.rb
837
823
  - app/jobs/spree/base_job.rb
838
824
  - app/jobs/spree/coupon_codes/bulk_generate_job.rb
825
+ - app/jobs/spree/events/subscriber_job.rb
839
826
  - app/jobs/spree/exports/generate_job.rb
840
827
  - app/jobs/spree/gift_cards/bulk_generate_job.rb
841
828
  - app/jobs/spree/images/save_from_url_job.rb
842
829
  - app/jobs/spree/imports/create_rows_job.rb
843
830
  - app/jobs/spree/imports/process_rows_job.rb
844
831
  - app/jobs/spree/products/auto_match_taxons_job.rb
832
+ - app/jobs/spree/products/refresh_metrics_job.rb
845
833
  - app/jobs/spree/products/touch_taxons_job.rb
846
834
  - app/jobs/spree/reports/generate_job.rb
847
835
  - app/jobs/spree/stock_locations/stock_items/create_job.rb
848
- - app/jobs/spree/themes/duplicate_components_job.rb
849
- - app/jobs/spree/themes/screenshot_job.rb
850
836
  - app/jobs/spree/variants/remove_from_incomplete_orders_job.rb
851
837
  - app/jobs/spree/variants/remove_line_item_job.rb
838
+ - app/jobs/spree/variants/touch_job.rb
852
839
  - app/mailers/spree/base_mailer.rb
853
840
  - app/mailers/spree/export_mailer.rb
854
841
  - app/mailers/spree/invitation_mailer.rb
@@ -865,7 +852,6 @@ files:
865
852
  - app/models/concerns/spree/filter_param.rb
866
853
  - app/models/concerns/spree/has_image_alt_text.rb
867
854
  - app/models/concerns/spree/has_one_link.rb
868
- - app/models/concerns/spree/has_page_links.rb
869
855
  - app/models/concerns/spree/image_methods.rb
870
856
  - app/models/concerns/spree/integrations_concern.rb
871
857
  - app/models/concerns/spree/linkable.rb
@@ -881,6 +867,7 @@ files:
881
867
  - app/models/concerns/spree/payment_source_concern.rb
882
868
  - app/models/concerns/spree/previewable.rb
883
869
  - app/models/concerns/spree/product_scopes.rb
870
+ - app/models/concerns/spree/publishable.rb
884
871
  - app/models/concerns/spree/ransackable_attributes.rb
885
872
  - app/models/concerns/spree/single_store_resource.rb
886
873
  - app/models/concerns/spree/stores/setup.rb
@@ -930,11 +917,14 @@ files:
930
917
  - app/models/spree/credit_card.rb
931
918
  - app/models/spree/current.rb
932
919
  - app/models/spree/custom_domain.rb
920
+ - app/models/spree/customer_group.rb
921
+ - app/models/spree/customer_group_user.rb
933
922
  - app/models/spree/customer_return.rb
934
923
  - app/models/spree/data_feed.rb
935
924
  - app/models/spree/data_feed/google.rb
936
925
  - app/models/spree/digital.rb
937
926
  - app/models/spree/digital_link.rb
927
+ - app/models/spree/event.rb
938
928
  - app/models/spree/exchange.rb
939
929
  - app/models/spree/export.rb
940
930
  - app/models/spree/exports/customers.rb
@@ -994,70 +984,8 @@ files:
994
984
  - app/models/spree/order_merger.rb
995
985
  - app/models/spree/order_promotion.rb
996
986
  - app/models/spree/order_updater.rb
997
- - app/models/spree/page.rb
998
- - app/models/spree/page_block.rb
999
- - app/models/spree/page_blocks/buttons.rb
1000
- - app/models/spree/page_blocks/heading.rb
1001
- - app/models/spree/page_blocks/image.rb
1002
- - app/models/spree/page_blocks/link.rb
1003
- - app/models/spree/page_blocks/mega_nav.rb
1004
- - app/models/spree/page_blocks/mega_nav_with_subcategories.rb
1005
- - app/models/spree/page_blocks/metafields.rb
1006
- - app/models/spree/page_blocks/nav.rb
1007
- - app/models/spree/page_blocks/newsletter_form.rb
1008
- - app/models/spree/page_blocks/products/brand.rb
1009
- - app/models/spree/page_blocks/products/buy_buttons.rb
1010
- - app/models/spree/page_blocks/products/description.rb
1011
- - app/models/spree/page_blocks/products/price.rb
1012
- - app/models/spree/page_blocks/products/quantity_selector.rb
1013
- - app/models/spree/page_blocks/products/share.rb
1014
- - app/models/spree/page_blocks/products/title.rb
1015
- - app/models/spree/page_blocks/products/variant_picker.rb
1016
- - app/models/spree/page_blocks/subheading.rb
1017
- - app/models/spree/page_blocks/text.rb
1018
- - app/models/spree/page_link.rb
1019
- - app/models/spree/page_section.rb
1020
- - app/models/spree/page_sections/announcement_bar.rb
1021
- - app/models/spree/page_sections/breadcrumbs.rb
1022
- - app/models/spree/page_sections/collection_banner.rb
1023
- - app/models/spree/page_sections/custom_code.rb
1024
- - app/models/spree/page_sections/featured_posts.rb
1025
- - app/models/spree/page_sections/featured_product.rb
1026
- - app/models/spree/page_sections/featured_taxon.rb
1027
- - app/models/spree/page_sections/featured_taxons.rb
1028
- - app/models/spree/page_sections/footer.rb
1029
- - app/models/spree/page_sections/header.rb
1030
- - app/models/spree/page_sections/image_banner.rb
1031
- - app/models/spree/page_sections/image_with_text.rb
1032
- - app/models/spree/page_sections/main_password_footer.rb
1033
- - app/models/spree/page_sections/main_password_header.rb
1034
- - app/models/spree/page_sections/newsletter.rb
1035
- - app/models/spree/page_sections/page_title.rb
1036
- - app/models/spree/page_sections/post_details.rb
1037
- - app/models/spree/page_sections/post_grid.rb
1038
- - app/models/spree/page_sections/product_details.rb
1039
- - app/models/spree/page_sections/product_grid.rb
1040
- - app/models/spree/page_sections/related_products.rb
1041
- - app/models/spree/page_sections/rich_text.rb
1042
- - app/models/spree/page_sections/taxon_banner.rb
1043
- - app/models/spree/page_sections/taxon_grid.rb
1044
- - app/models/spree/page_sections/video.rb
1045
- - app/models/spree/pages/account.rb
1046
- - app/models/spree/pages/cart.rb
1047
- - app/models/spree/pages/checkout.rb
1048
- - app/models/spree/pages/custom.rb
1049
- - app/models/spree/pages/homepage.rb
1050
- - app/models/spree/pages/login.rb
1051
- - app/models/spree/pages/password.rb
1052
- - app/models/spree/pages/post.rb
1053
- - app/models/spree/pages/post_list.rb
1054
- - app/models/spree/pages/product_details.rb
1055
- - app/models/spree/pages/search_results.rb
1056
- - app/models/spree/pages/shop_all.rb
1057
- - app/models/spree/pages/taxon.rb
1058
- - app/models/spree/pages/taxon_list.rb
1059
- - app/models/spree/pages/wishlist.rb
1060
987
  - app/models/spree/payment.rb
988
+ - app/models/spree/payment/custom_events.rb
1061
989
  - app/models/spree/payment/gateway_options.rb
1062
990
  - app/models/spree/payment/processing.rb
1063
991
  - app/models/spree/payment/webhooks.rb
@@ -1086,6 +1014,12 @@ files:
1086
1014
  - app/models/spree/post_category.rb
1087
1015
  - app/models/spree/preference.rb
1088
1016
  - app/models/spree/price.rb
1017
+ - app/models/spree/price_list.rb
1018
+ - app/models/spree/price_rule.rb
1019
+ - app/models/spree/price_rules/customer_group_rule.rb
1020
+ - app/models/spree/price_rules/user_rule.rb
1021
+ - app/models/spree/price_rules/volume_rule.rb
1022
+ - app/models/spree/price_rules/zone_rule.rb
1089
1023
  - app/models/spree/product.rb
1090
1024
  - app/models/spree/product/slugs.rb
1091
1025
  - app/models/spree/product/webhooks.rb
@@ -1099,6 +1033,7 @@ files:
1099
1033
  - app/models/spree/promotion/actions/free_shipping.rb
1100
1034
  - app/models/spree/promotion/rules/country.rb
1101
1035
  - app/models/spree/promotion/rules/currency.rb
1036
+ - app/models/spree/promotion/rules/customer_group.rb
1102
1037
  - app/models/spree/promotion/rules/first_order.rb
1103
1038
  - app/models/spree/promotion/rules/item_total.rb
1104
1039
  - app/models/spree/promotion/rules/one_use_per_user.rb
@@ -1159,6 +1094,7 @@ files:
1159
1094
  - app/models/spree/role.rb
1160
1095
  - app/models/spree/role_user.rb
1161
1096
  - app/models/spree/shipment.rb
1097
+ - app/models/spree/shipment/custom_events.rb
1162
1098
  - app/models/spree/shipment/emails.rb
1163
1099
  - app/models/spree/shipment/webhooks.rb
1164
1100
  - app/models/spree/shipment_handler.rb
@@ -1190,6 +1126,7 @@ files:
1190
1126
  - app/models/spree/stock_item/webhooks.rb
1191
1127
  - app/models/spree/stock_location.rb
1192
1128
  - app/models/spree/stock_movement.rb
1129
+ - app/models/spree/stock_movement/custom_events.rb
1193
1130
  - app/models/spree/stock_movement/webhooks.rb
1194
1131
  - app/models/spree/stock_transfer.rb
1195
1132
  - app/models/spree/store.rb
@@ -1203,6 +1140,7 @@ files:
1203
1140
  - app/models/spree/store_payment_method.rb
1204
1141
  - app/models/spree/store_product.rb
1205
1142
  - app/models/spree/store_promotion.rb
1143
+ - app/models/spree/subscriber.rb
1206
1144
  - app/models/spree/tax_category.rb
1207
1145
  - app/models/spree/tax_rate.rb
1208
1146
  - app/models/spree/taxon.rb
@@ -1213,10 +1151,10 @@ files:
1213
1151
  - app/models/spree/taxon_rules/sale.rb
1214
1152
  - app/models/spree/taxon_rules/tag.rb
1215
1153
  - app/models/spree/taxonomy.rb
1216
- - app/models/spree/theme.rb
1217
- - app/models/spree/themes/default.rb
1218
1154
  - app/models/spree/variant.rb
1219
1155
  - app/models/spree/variant/webhooks.rb
1156
+ - app/models/spree/webhook_delivery.rb
1157
+ - app/models/spree/webhook_endpoint.rb
1220
1158
  - app/models/spree/wished_item.rb
1221
1159
  - app/models/spree/wishlist.rb
1222
1160
  - app/models/spree/zone.rb
@@ -1238,6 +1176,41 @@ files:
1238
1176
  - app/presenters/spree/variant_presenter.rb
1239
1177
  - app/presenters/spree/variants/option_types_presenter.rb
1240
1178
  - app/presenters/spree/variants/options_presenter.rb
1179
+ - app/serializers/spree/events/asset_serializer.rb
1180
+ - app/serializers/spree/events/base_serializer.rb
1181
+ - app/serializers/spree/events/customer_return_serializer.rb
1182
+ - app/serializers/spree/events/digital_link_serializer.rb
1183
+ - app/serializers/spree/events/digital_serializer.rb
1184
+ - app/serializers/spree/events/export_serializer.rb
1185
+ - app/serializers/spree/events/gift_card_batch_serializer.rb
1186
+ - app/serializers/spree/events/gift_card_serializer.rb
1187
+ - app/serializers/spree/events/image_serializer.rb
1188
+ - app/serializers/spree/events/import_row_serializer.rb
1189
+ - app/serializers/spree/events/import_serializer.rb
1190
+ - app/serializers/spree/events/invitation_serializer.rb
1191
+ - app/serializers/spree/events/line_item_serializer.rb
1192
+ - app/serializers/spree/events/newsletter_subscriber_serializer.rb
1193
+ - app/serializers/spree/events/order_serializer.rb
1194
+ - app/serializers/spree/events/payment_serializer.rb
1195
+ - app/serializers/spree/events/post_category_serializer.rb
1196
+ - app/serializers/spree/events/post_serializer.rb
1197
+ - app/serializers/spree/events/price_serializer.rb
1198
+ - app/serializers/spree/events/product_serializer.rb
1199
+ - app/serializers/spree/events/promotion_serializer.rb
1200
+ - app/serializers/spree/events/refund_serializer.rb
1201
+ - app/serializers/spree/events/reimbursement_serializer.rb
1202
+ - app/serializers/spree/events/report_serializer.rb
1203
+ - app/serializers/spree/events/return_authorization_serializer.rb
1204
+ - app/serializers/spree/events/return_item_serializer.rb
1205
+ - app/serializers/spree/events/shipment_serializer.rb
1206
+ - app/serializers/spree/events/stock_item_serializer.rb
1207
+ - app/serializers/spree/events/stock_movement_serializer.rb
1208
+ - app/serializers/spree/events/stock_transfer_serializer.rb
1209
+ - app/serializers/spree/events/store_credit_serializer.rb
1210
+ - app/serializers/spree/events/user_serializer.rb
1211
+ - app/serializers/spree/events/variant_serializer.rb
1212
+ - app/serializers/spree/events/wished_item_serializer.rb
1213
+ - app/serializers/spree/events/wishlist_serializer.rb
1241
1214
  - app/services/spree/account/addresses/create.rb
1242
1215
  - app/services/spree/account/addresses/update.rb
1243
1216
  - app/services/spree/account/create.rb
@@ -1326,7 +1299,6 @@ files:
1326
1299
  - app/services/spree/taxons/add_products.rb
1327
1300
  - app/services/spree/taxons/regenerate_products.rb
1328
1301
  - app/services/spree/taxons/remove_products.rb
1329
- - app/services/spree/taxons/touch_featured_sections.rb
1330
1302
  - app/services/spree/themes/duplicator.rb
1331
1303
  - app/services/spree/tracking_numbers/base_service.rb
1332
1304
  - app/services/spree/variants/remove_line_items.rb
@@ -1336,6 +1308,11 @@ files:
1336
1308
  - app/sorters/spree/orders/sort.rb
1337
1309
  - app/sorters/spree/posts/sort.rb
1338
1310
  - app/sorters/spree/products/sort.rb
1311
+ - app/subscribers/spree/event_log_subscriber.rb
1312
+ - app/subscribers/spree/export_subscriber.rb
1313
+ - app/subscribers/spree/invitation_email_subscriber.rb
1314
+ - app/subscribers/spree/product_metrics_subscriber.rb
1315
+ - app/subscribers/spree/report_subscriber.rb
1339
1316
  - app/validators/email_validator.rb
1340
1317
  - app/validators/spree/addresses/phone_validator.rb
1341
1318
  - app/validators/spree/url_validator.rb
@@ -1446,7 +1423,6 @@ files:
1446
1423
  - db/migrate/20250113180019_add_preferences_to_spree_stores.rb
1447
1424
  - db/migrate/20250114193857_add_metadata_to_spree_stores.rb
1448
1425
  - db/migrate/20250119165904_create_spree_custom_domains.rb
1449
- - db/migrate/20250120094216_create_page_builder_models.rb
1450
1426
  - db/migrate/20250120152208_add_default_locale_to_action_text_rich_texts.rb
1451
1427
  - db/migrate/20250121160028_create_spree_posts_and_spree_post_categories.rb
1452
1428
  - db/migrate/20250122113708_add_first_and_last_name_to_spree_admin_class.rb
@@ -1458,7 +1434,6 @@ files:
1458
1434
  - db/migrate/20250207084000_add_accepts_email_marketing_field_to_spree_users_table.rb
1459
1435
  - db/migrate/20250217171018_create_action_text_video_embeds.rb
1460
1436
  - db/migrate/20250304115943_add_performed_by_to_spree_reimbursements.rb
1461
- - db/migrate/20250305121352_remove_page_builder_indices.rb
1462
1437
  - db/migrate/20250305121657_remove_spree_posts_indices.rb
1463
1438
  - db/migrate/20250311105934_create_spree_gateway_customers.rb
1464
1439
  - db/migrate/20250312202705_add_unique_index_on_promotion_rules_associations.rb
@@ -1479,14 +1454,28 @@ files:
1479
1454
  - db/migrate/20250730154601_add_unique_index_on_spree_properties_name.rb
1480
1455
  - db/migrate/20250811112056_create_spree_policies.rb
1481
1456
  - db/migrate/20250821211705_fix_unique_index_on_spree_order_promotions.rb
1482
- - db/migrate/20250825175217_add_missing_page_builder_indexes.rb
1483
1457
  - db/migrate/20250826093602_create_spree_newsletter_subscribers.rb
1484
1458
  - db/migrate/20250902143122_fix_policies_store_association.rb
1485
1459
  - db/migrate/20250911205659_add_missing_index_on_spree_products_promotionable.rb
1486
- - db/migrate/20250913130044_add_page_links_counter_cache_to_spree_stores.rb
1487
1460
  - db/migrate/20250914101955_add_missing_indexes_on_spree_adjustments.rb
1488
1461
  - db/migrate/20250915093930_add_metadata_to_spree_newsletter_subscribers.rb
1489
1462
  - db/migrate/20250923141845_create_spree_imports.rb
1463
+ - db/migrate/20251110120000_create_spree_price_lists.rb
1464
+ - db/migrate/20251110120001_create_spree_price_rules.rb
1465
+ - db/migrate/20251110120002_add_price_list_id_to_spree_prices.rb
1466
+ - db/migrate/20251110120003_add_price_list_id_to_spree_line_items.rb
1467
+ - db/migrate/20251201172118_fix_indexes_on_friendly_id_slugs.rb
1468
+ - db/migrate/20251214000001_create_spree_webhook_endpoints.rb
1469
+ - db/migrate/20251214000002_create_spree_webhook_deliveries.rb
1470
+ - db/migrate/20251222000000_add_performance_indexes_to_spree_adjustments.rb
1471
+ - db/migrate/20260112000000_fix_spree_prices_unique_indexes.rb
1472
+ - db/migrate/20260115120000_create_spree_customer_groups.rb
1473
+ - db/migrate/20260115120001_create_spree_customer_group_users.rb
1474
+ - db/migrate/20260117140831_remove_not_null_constraint_from_policy_name.rb
1475
+ - db/migrate/20260118120000_add_statistics_to_store_products.rb
1476
+ - db/migrate/20260119120000_add_counter_caches_to_spree_products.rb
1477
+ - db/migrate/20260119170000_add_counter_caches_to_spree_taxons.rb
1478
+ - db/migrate/20260120120000_add_image_count_to_spree_variants.rb
1490
1479
  - db/seeds.rb
1491
1480
  - lib/friendly_id/history_decorator.rb
1492
1481
  - lib/friendly_id/paranoia.rb
@@ -1498,7 +1487,6 @@ files:
1498
1487
  - lib/generators/spree/cursor_rules/templates/spree_rules.mdc
1499
1488
  - lib/generators/spree/dummy/dummy_generator.rb
1500
1489
  - lib/generators/spree/dummy/templates/app/assets/config/manifest.js
1501
- - lib/generators/spree/dummy/templates/initializers/devise.rb
1502
1490
  - lib/generators/spree/dummy/templates/rails/application.rb
1503
1491
  - lib/generators/spree/dummy/templates/rails/boot.rb
1504
1492
  - lib/generators/spree/dummy/templates/rails/database.yml
@@ -1507,8 +1495,6 @@ files:
1507
1495
  - lib/generators/spree/dummy_model/dummy_model_generator.rb
1508
1496
  - lib/generators/spree/dummy_model/templates/migration.rb.tt
1509
1497
  - lib/generators/spree/dummy_model/templates/model.rb.tt
1510
- - lib/generators/spree/install/install_generator.rb
1511
- - lib/generators/spree/install/templates/config/initializers/spree.rb
1512
1498
  - lib/generators/spree/model/model_generator.rb
1513
1499
  - lib/generators/spree/model/templates/model.rb.tt
1514
1500
  - lib/generators/spree/model_decorator/model_decorator_generator.rb
@@ -1543,6 +1529,8 @@ files:
1543
1529
  - lib/spree/core/preferences/runtime_configuration.rb
1544
1530
  - lib/spree/core/preferences/scoped_store.rb
1545
1531
  - lib/spree/core/preferences/store.rb
1532
+ - lib/spree/core/pricing/context.rb
1533
+ - lib/spree/core/pricing/resolver.rb
1546
1534
  - lib/spree/core/product_filters.rb
1547
1535
  - lib/spree/core/query_filters.rb
1548
1536
  - lib/spree/core/query_filters/comparable.rb
@@ -1554,8 +1542,11 @@ files:
1554
1542
  - lib/spree/core/search/base.rb
1555
1543
  - lib/spree/core/token_generator.rb
1556
1544
  - lib/spree/core/version.rb
1557
- - lib/spree/core/webhooks.rb
1558
1545
  - lib/spree/database_type_utilities.rb
1546
+ - lib/spree/events.rb
1547
+ - lib/spree/events/adapters/active_support_notifications.rb
1548
+ - lib/spree/events/adapters/base.rb
1549
+ - lib/spree/events/registry.rb
1559
1550
  - lib/spree/i18n.rb
1560
1551
  - lib/spree/localized_number.rb
1561
1552
  - lib/spree/migrations.rb
@@ -1581,6 +1572,8 @@ files:
1581
1572
  - lib/spree/testing_support/factories/coupon_code_factory.rb
1582
1573
  - lib/spree/testing_support/factories/credit_card_factory.rb
1583
1574
  - lib/spree/testing_support/factories/custom_domain_factory.rb
1575
+ - lib/spree/testing_support/factories/customer_group_factory.rb
1576
+ - lib/spree/testing_support/factories/customer_group_user_factory.rb
1584
1577
  - lib/spree/testing_support/factories/customer_return_factory.rb
1585
1578
  - lib/spree/testing_support/factories/digital_factory.rb
1586
1579
  - lib/spree/testing_support/factories/digital_link_factory.rb
@@ -1605,10 +1598,6 @@ files:
1605
1598
  - lib/spree/testing_support/factories/options_factory.rb
1606
1599
  - lib/spree/testing_support/factories/order_factory.rb
1607
1600
  - lib/spree/testing_support/factories/order_promotion_factory.rb
1608
- - lib/spree/testing_support/factories/page_block_factory.rb
1609
- - lib/spree/testing_support/factories/page_factory.rb
1610
- - lib/spree/testing_support/factories/page_link_factory.rb
1611
- - lib/spree/testing_support/factories/page_section_factory.rb
1612
1601
  - lib/spree/testing_support/factories/payment_capture_event_factory.rb
1613
1602
  - lib/spree/testing_support/factories/payment_factory.rb
1614
1603
  - lib/spree/testing_support/factories/payment_method_factory.rb
@@ -1617,6 +1606,8 @@ files:
1617
1606
  - lib/spree/testing_support/factories/post_category_factory.rb
1618
1607
  - lib/spree/testing_support/factories/post_factory.rb
1619
1608
  - lib/spree/testing_support/factories/price_factory.rb
1609
+ - lib/spree/testing_support/factories/price_list_factory.rb
1610
+ - lib/spree/testing_support/factories/price_rule_factory.rb
1620
1611
  - lib/spree/testing_support/factories/product_factory.rb
1621
1612
  - lib/spree/testing_support/factories/product_option_type_factory.rb
1622
1613
  - lib/spree/testing_support/factories/product_property_factory.rb
@@ -1652,15 +1643,17 @@ files:
1652
1643
  - lib/spree/testing_support/factories/store_credit_factory.rb
1653
1644
  - lib/spree/testing_support/factories/store_credit_type_factory.rb
1654
1645
  - lib/spree/testing_support/factories/store_factory.rb
1646
+ - lib/spree/testing_support/factories/store_product_factory.rb
1655
1647
  - lib/spree/testing_support/factories/tax_category_factory.rb
1656
1648
  - lib/spree/testing_support/factories/tax_rate_factory.rb
1657
1649
  - lib/spree/testing_support/factories/taxon_factory.rb
1658
1650
  - lib/spree/testing_support/factories/taxon_image_factory.rb
1659
1651
  - lib/spree/testing_support/factories/taxon_rule_factory.rb
1660
1652
  - lib/spree/testing_support/factories/taxonomy_factory.rb
1661
- - lib/spree/testing_support/factories/theme_factory.rb
1662
1653
  - lib/spree/testing_support/factories/user_factory.rb
1663
1654
  - lib/spree/testing_support/factories/variant_factory.rb
1655
+ - lib/spree/testing_support/factories/webhook_delivery_factory.rb
1656
+ - lib/spree/testing_support/factories/webhook_endpoint_factory.rb
1664
1657
  - lib/spree/testing_support/factories/wished_variant_factory.rb
1665
1658
  - lib/spree/testing_support/factories/wishlist_factory.rb
1666
1659
  - lib/spree/testing_support/factories/zone_factory.rb
@@ -1671,6 +1664,7 @@ files:
1671
1664
  - lib/spree/testing_support/image_helpers.rb
1672
1665
  - lib/spree/testing_support/jobs.rb
1673
1666
  - lib/spree/testing_support/kernel.rb
1667
+ - lib/spree/testing_support/lifecycle_events.rb
1674
1668
  - lib/spree/testing_support/locale_helpers.rb
1675
1669
  - lib/spree/testing_support/metadata.rb
1676
1670
  - lib/spree/testing_support/next_instance_of.rb
@@ -1680,10 +1674,14 @@ files:
1680
1674
  - lib/spree/testing_support/store.rb
1681
1675
  - lib/spree/testing_support/url_helpers.rb
1682
1676
  - lib/spree/translation_migrations.rb
1677
+ - lib/spree/webhooks.rb
1683
1678
  - lib/spree_core.rb
1684
1679
  - lib/tasks/core.rake
1685
1680
  - lib/tasks/dependencies.rake
1686
1681
  - lib/tasks/exchanges.rake
1682
+ - lib/tasks/products.rake
1683
+ - lib/tasks/taxons.rake
1684
+ - lib/tasks/variants.rake
1687
1685
  - spec/fixtures/favicon.ico
1688
1686
  - spec/fixtures/files/example.json
1689
1687
  - spec/fixtures/files/icon_256x256.gif
@@ -1704,9 +1702,9 @@ licenses:
1704
1702
  - BSD-3-Clause
1705
1703
  metadata:
1706
1704
  bug_tracker_uri: https://github.com/spree/spree/issues
1707
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.2.6
1705
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.3.0.rc1
1708
1706
  documentation_uri: https://docs.spreecommerce.org/
1709
- source_code_uri: https://github.com/spree/spree/tree/v5.2.6
1707
+ source_code_uri: https://github.com/spree/spree/tree/v5.3.0.rc1
1710
1708
  rdoc_options: []
1711
1709
  require_paths:
1712
1710
  - lib
@@ -1714,7 +1712,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1714
1712
  requirements:
1715
1713
  - - ">="
1716
1714
  - !ruby/object:Gem::Version
1717
- version: '3.0'
1715
+ version: '3.2'
1718
1716
  required_rubygems_version: !ruby/object:Gem::Requirement
1719
1717
  requirements:
1720
1718
  - - ">="