spree_core 6.0.0.rc7 → 6.0.1

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/jobs/spree/maintenance_tasks/run_job.rb +321 -0
  3. data/app/jobs/spree/seller_transfers/execute_pending_due_job.rb +7 -5
  4. data/app/jobs/spree/seller_transfers/execute_pending_job.rb +37 -17
  5. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/backfill_order_markets.rb +48 -0
  6. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/capture_methods.rb +40 -0
  7. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/deliveries.rb +15 -0
  8. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/order_coupon_codes.rb +15 -0
  9. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/promotion_option_value_rules.rb +15 -0
  10. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/rake_step.rb +83 -0
  11. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/returns.rb +20 -0
  12. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/store_regional_settings.rb +63 -0
  13. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/users_to_customers.rb +28 -0
  14. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade_step.rb +44 -0
  15. data/app/models/concerns/spree/translatable_resource.rb +19 -0
  16. data/app/models/spree/ability.rb +9 -0
  17. data/app/models/spree/invitation.rb +11 -2
  18. data/app/models/spree/maintenance_task.rb +221 -0
  19. data/app/models/spree/maintenance_task_run.rb +78 -0
  20. data/app/models/spree/order_routing/strategy/rules.rb +8 -48
  21. data/app/models/spree/seller_transfer.rb +51 -0
  22. data/app/models/spree/stock/coordinator.rb +37 -17
  23. data/app/models/spree/stock/packer.rb +19 -9
  24. data/app/models/spree/stock/prioritizer.rb +30 -15
  25. data/app/models/spree/store.rb +35 -2
  26. data/app/models/spree/upgrade_record.rb +62 -0
  27. data/app/services/spree/carts/update.rb +2 -1
  28. data/app/services/spree/maintenance_tasks/argument_parser.rb +23 -0
  29. data/app/services/spree/maintenance_tasks/cancel.rb +51 -0
  30. data/app/services/spree/maintenance_tasks/start.rb +127 -0
  31. data/app/services/spree/seeds/all.rb +22 -0
  32. data/app/services/spree/stock_reservations/reserve.rb +73 -25
  33. data/app/workflows/spree/seller_transfers/reverse.rb +5 -44
  34. data/config/locales/en.yml +1 -0
  35. data/db/migrate/20260813130001_add_capture_method_to_payment_methods.rb +1 -1
  36. data/db/migrate/20260815000001_create_spree_maintenance_task_runs.rb +40 -0
  37. data/db/migrate/20260816000001_create_spree_upgrade_records.rb +17 -0
  38. data/db/migrate/20261029100001_add_lockout_columns_to_spree_admin_users.rb +8 -0
  39. data/lib/generators/spree/api_resource/api_resource_generator.rb +2 -2
  40. data/lib/spree/checkout/default_requirements.rb +33 -5
  41. data/lib/spree/core/configuration.rb +6 -0
  42. data/lib/spree/core/engine.rb +10 -1
  43. data/lib/spree/core/permissions/default_catalog.rb +7 -0
  44. data/lib/spree/core/version.rb +1 -1
  45. data/lib/spree/core.rb +17 -1
  46. data/lib/spree/testing_support/factories/maintenance_task_run_factory.rb +7 -0
  47. data/lib/spree/time_zones.rb +34 -0
  48. data/lib/spree/upgrade.rb +189 -0
  49. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +30 -10
  50. data/lib/tasks/maintenance_tasks.rake +42 -0
  51. data/lib/tasks/upgrade.rake +81 -60
  52. metadata +28 -6
  53. data/lib/tasks/capture_methods_migration.rake +0 -30
  54. data/lib/tasks/order_market_backfill.rake +0 -27
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # 5.6 → 6.0 conversion of the per-payment-method auto_capture boolean onto the
4
- # capture_method vocabulary (docs/plans/6.0-store-scoped-configuration.md).
5
- # Idempotent — it only writes rows whose capture_method is still empty, so a
6
- # second run finds nothing to do and an interrupted run resumes for free.
7
- namespace :spree do
8
- desc 'Convert payment method auto_capture booleans into capture_method values'
9
- task migrate_capture_methods: :environment do
10
- batch_size = ENV.fetch('BATCH_SIZE', 5_000).to_i
11
- say = ->(message) { puts message }
12
-
13
- payment_methods = Spree::PaymentMethod.unscoped.where(capture_method: nil)
14
-
15
- # A method that captured on authorization charges at checkout. One that did
16
- # not only recorded "not at checkout" — the old column could not say
17
- # whether dispatch or staff was meant to take the money, and the store's
18
- # own setting is what decided. Leaving those rows empty is what makes them
19
- # keep inheriting it, so only the true case is written here.
20
- count = payment_methods.where(auto_capture: true).
21
- in_batches(of: batch_size).
22
- update_all(capture_method: 'checkout')
23
- say.call "spree_payment_methods.capture_method: #{count} rows auto_capture → checkout"
24
-
25
- remaining = Spree::PaymentMethod.unscoped.where(capture_method: nil, auto_capture: false).count
26
- say.call "spree_payment_methods.capture_method: #{remaining} rows left inheriting the store setting"
27
-
28
- say.call 'migrate_capture_methods done.'
29
- end
30
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # 5.6 → 6.0: market is mandatory on orders in Spree 6. Orders created before
4
- # markets existed carry NULLs — backfill from the store's default market so
5
- # the 6.1 NOT NULL constraint can land. (channel_id has no equivalent task
6
- # here: the 5.4→5.5 manifest's spree:channels:backfill_order_channel_ids
7
- # already covers it on every upgrade path.)
8
- namespace :spree do
9
- desc 'Backfill missing market on orders from the store default market'
10
- task backfill_order_markets: :environment do
11
- batch_size = ENV.fetch('BATCH_SIZE', 5_000).to_i
12
-
13
- Spree::Store.all.find_each do |store|
14
- market_id = store.default_market&.id
15
-
16
- if market_id
17
- count = Spree::Order.unscoped.where(store_id: store.id, market_id: nil).
18
- in_batches(of: batch_size).update_all(market_id: market_id)
19
- puts "store #{store.code}: #{count} orders assigned market #{market_id}" if count.positive?
20
- else
21
- puts "store #{store.code}: no default market — orders left as-is"
22
- end
23
- end
24
-
25
- puts 'backfill_order_markets done. The NOT NULL constraint lands in 6.1.'
26
- end
27
- end