spree_core 5.4.2 → 5.5.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.
- checksums.yaml +4 -4
- data/app/helpers/spree/base_helper.rb +0 -82
- data/app/helpers/spree/currency_helper.rb +0 -12
- data/app/helpers/spree/products_helper.rb +0 -8
- data/app/jobs/spree/base_job.rb +18 -0
- data/app/jobs/spree/events/subscriber_job.rb +3 -2
- data/app/jobs/spree/exports/generate_job.rb +11 -0
- data/app/jobs/spree/images/save_from_url_job.rb +23 -8
- data/app/jobs/spree/imports/assign_tags_job.rb +11 -0
- data/app/jobs/spree/imports/base_job.rb +15 -0
- data/app/jobs/spree/imports/create_categories_job.rb +37 -0
- data/app/jobs/spree/imports/create_rows_job.rb +1 -3
- data/app/jobs/spree/imports/process_group_job.rb +8 -6
- data/app/jobs/spree/imports/process_rows_job.rb +1 -3
- data/app/jobs/spree/media/migrate_product_assets_job.rb +83 -0
- data/app/jobs/spree/products/refresh_metrics_job.rb +15 -4
- data/app/jobs/spree/reports/generate_job.rb +11 -0
- data/app/jobs/spree/search_provider/index_job.rb +5 -1
- data/app/jobs/spree/search_provider/remove_job.rb +4 -0
- data/app/jobs/spree/stock_reservations/expire_job.rb +11 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +34 -1
- data/app/models/concerns/spree/display_on.rb +31 -0
- data/app/models/concerns/spree/metafields.rb +167 -5
- data/app/models/concerns/spree/preference_schema.rb +191 -0
- data/app/models/concerns/spree/prefixed_id.rb +94 -11
- data/app/models/concerns/spree/product_scopes.rb +36 -17
- data/app/models/concerns/spree/publishable.rb +1 -1
- data/app/models/concerns/spree/ransackable_attributes.rb +5 -1
- data/app/models/concerns/spree/search_indexable.rb +8 -7
- data/app/models/concerns/spree/searchable.rb +11 -2
- data/app/models/concerns/spree/stores/channels.rb +20 -0
- data/app/models/concerns/spree/stores/markets.rb +21 -5
- data/app/models/concerns/spree/typed_associations.rb +120 -0
- data/app/models/concerns/spree/user_methods.rb +71 -12
- data/app/models/spree/ability.rb +4 -117
- data/app/models/spree/api_key.rb +53 -0
- data/app/models/spree/asset.rb +37 -14
- data/app/models/spree/authentication/strategy_registry.rb +72 -0
- data/app/models/spree/base.rb +18 -1
- data/app/models/spree/channel.rb +159 -0
- data/app/models/spree/country.rb +2 -0
- data/app/models/spree/current.rb +5 -1
- data/app/models/spree/custom_field.rb +9 -0
- data/app/models/spree/custom_field_definition.rb +7 -0
- data/app/models/spree/customer_group.rb +8 -2
- data/app/models/spree/event.rb +6 -6
- data/app/models/spree/export.rb +32 -5
- data/app/models/spree/exports/product_translations.rb +1 -1
- data/app/models/spree/gateway/bogus.rb +6 -1
- data/app/models/spree/gateway.rb +25 -0
- data/app/models/spree/gift_card.rb +1 -1
- data/app/models/spree/gift_card_batch.rb +4 -1
- data/app/models/spree/import.rb +5 -0
- data/app/models/spree/import_row.rb +12 -0
- data/app/models/spree/line_item.rb +7 -2
- data/app/models/spree/market.rb +57 -1
- data/app/models/spree/metafield.rb +38 -0
- data/app/models/spree/metafield_definition.rb +29 -6
- data/app/models/spree/metafields/json.rb +10 -0
- data/app/models/spree/newsletter_subscriber.rb +19 -3
- data/app/models/spree/option_type.rb +48 -7
- data/app/models/spree/order/checkout.rb +3 -3
- data/app/models/spree/order.rb +102 -6
- data/app/models/spree/order_approval.rb +19 -0
- data/app/models/spree/order_cancellation.rb +19 -0
- data/app/models/spree/order_inventory.rb +24 -2
- data/app/models/spree/order_routing/has_strategy_preference.rb +28 -0
- data/app/models/spree/order_routing/rules/default_location.rb +16 -0
- data/app/models/spree/order_routing/rules/minimize_splits.rb +45 -0
- data/app/models/spree/order_routing/rules/preferred_location.rb +22 -0
- data/app/models/spree/order_routing/strategy/base.rb +47 -0
- data/app/models/spree/order_routing/strategy/legacy.rb +33 -0
- data/app/models/spree/order_routing/strategy/reducer.rb +68 -0
- data/app/models/spree/order_routing/strategy/rules.rb +81 -0
- data/app/models/spree/order_routing_rule.rb +75 -0
- data/app/models/spree/payment_setup_sessions/bogus.rb +4 -0
- data/app/models/spree/permission_sets/configuration_management.rb +16 -0
- data/app/models/spree/permission_sets/product_display.rb +2 -0
- data/app/models/spree/permission_sets/product_management.rb +2 -0
- data/app/models/spree/price.rb +14 -1
- data/app/models/spree/price_list.rb +129 -17
- data/app/models/spree/price_rule.rb +11 -1
- data/app/models/spree/price_rules/customer_group_rule.rb +15 -1
- data/app/models/spree/price_rules/market_rule.rb +16 -1
- data/app/models/spree/price_rules/user_rule.rb +21 -2
- data/app/models/spree/product/channels.rb +149 -0
- data/app/models/spree/product/legacy_multi_store_support.rb +40 -0
- data/app/models/spree/product/slugs.rb +1 -1
- data/app/models/spree/product.rb +172 -31
- data/app/models/spree/product_publication.rb +43 -0
- data/app/models/spree/promotion/actions/create_adjustment.rb +4 -0
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +4 -0
- data/app/models/spree/promotion/actions/create_line_items.rb +32 -14
- data/app/models/spree/promotion/rules/country.rb +40 -18
- data/app/models/spree/promotion/rules/customer_group.rb +10 -1
- data/app/models/spree/promotion/rules/product.rb +4 -0
- data/app/models/spree/promotion/rules/taxon.rb +24 -1
- data/app/models/spree/promotion/rules/user.rb +21 -0
- data/app/models/spree/promotion/rules/user_logged_in.rb +6 -0
- data/app/models/spree/promotion.rb +22 -1
- data/app/models/spree/promotion_action.rb +17 -11
- data/app/models/spree/promotion_rule.rb +17 -18
- data/app/models/spree/search_provider/meilisearch.rb +12 -2
- data/app/models/spree/shipment.rb +10 -4
- data/app/models/spree/stock/availability_validator.rb +1 -1
- data/app/models/spree/stock/quantifier.rb +89 -9
- data/app/models/spree/stock_item.rb +36 -0
- data/app/models/spree/stock_location.rb +52 -0
- data/app/models/spree/stock_reservation.rb +38 -0
- data/app/models/spree/stock_reservations/insufficient_stock_error.rb +12 -0
- data/app/models/spree/store.rb +18 -72
- data/app/models/spree/store_credit.rb +0 -8
- data/app/models/spree/store_product.rb +11 -23
- data/app/models/spree/subscriber.rb +12 -12
- data/app/models/spree/taxon.rb +0 -5
- data/app/models/spree/user_identity.rb +1 -2
- data/app/models/spree/variant.rb +132 -18
- data/app/models/spree/variant_media.rb +46 -0
- data/app/models/spree/webhook_delivery.rb +1 -1
- data/app/models/spree/webhook_endpoint.rb +24 -0
- data/app/models/spree/wished_item.rb +0 -13
- data/app/presenters/spree/csv/formula_sanitizer.rb +28 -0
- data/app/presenters/spree/csv/product_variant_presenter.rb +23 -3
- data/app/presenters/spree/search_provider/product_presenter.rb +11 -4
- data/app/presenters/spree/variant_presenter.rb +4 -3
- data/app/services/spree/addresses/update.rb +6 -8
- data/app/services/spree/cart/add_item.rb +10 -0
- data/app/services/spree/cart/empty.rb +2 -0
- data/app/services/spree/cart/remove_line_item.rb +10 -0
- data/app/services/spree/cart/remove_out_of_stock_items.rb +1 -1
- data/app/services/spree/cart/set_quantity.rb +10 -0
- data/app/services/spree/carts/complete.rb +1 -0
- data/app/services/spree/carts/create.rb +1 -0
- data/app/services/spree/carts/update.rb +18 -2
- data/app/services/spree/carts/upsert_items.rb +6 -6
- data/app/services/spree/credit_cards/destroy.rb +1 -1
- data/app/services/spree/imports/row_processors/customer.rb +4 -1
- data/app/services/spree/imports/row_processors/product_variant.rb +95 -57
- data/app/services/spree/newsletter/link_user.rb +53 -0
- data/app/services/spree/newsletter/subscribe.rb +31 -9
- data/app/services/spree/orders/approve.rb +27 -6
- data/app/services/spree/orders/build_shipments.rb +29 -0
- data/app/services/spree/orders/cancel.rb +34 -3
- data/app/services/spree/orders/complete.rb +53 -0
- data/app/services/spree/orders/create.rb +156 -0
- data/app/services/spree/orders/update.rb +51 -0
- data/app/services/spree/orders/upsert_items.rb +70 -0
- data/app/services/spree/payments/handle_webhook.rb +3 -10
- data/app/services/spree/prices/bulk_upsert.rb +201 -0
- data/app/services/spree/products/duplicator.rb +1 -1
- data/app/services/spree/products/prepare_nested_attributes.rb +2 -30
- data/app/services/spree/sample_data/loader.rb +30 -0
- data/app/services/spree/stock_reservations/extend.rb +19 -0
- data/app/services/spree/stock_reservations/release.rb +12 -0
- data/app/services/spree/stock_reservations/reserve.rb +103 -0
- data/app/services/spree/taxons/remove_products.rb +7 -1
- data/app/subscribers/spree/event_log_subscriber.rb +1 -1
- data/app/subscribers/spree/product_metrics_subscriber.rb +3 -7
- data/app/views/spree/invitation_mailer/invitation_email.html.erb +4 -0
- data/config/locales/en.yml +35 -10
- data/config/routes.rb +9 -0
- data/db/migrate/20260429000001_create_spree_order_cancellations.rb +25 -0
- data/db/migrate/20260429000002_create_spree_order_approvals.rb +22 -0
- data/db/migrate/20260429000003_add_status_to_spree_orders.rb +6 -0
- data/db/migrate/20260429000004_add_scopes_to_spree_api_keys.rb +11 -0
- data/db/migrate/20260501000001_create_spree_stock_reservations.rb +19 -0
- data/db/migrate/20260504103113_add_type_to_spree_payment_setup_sessions.rb +6 -0
- data/db/migrate/20260507162651_create_spree_variant_media.rb +23 -0
- data/db/migrate/20260508175303_add_pickup_to_spree_stock_locations.rb +12 -0
- data/db/migrate/20260508204040_create_spree_channels.rb +18 -0
- data/db/migrate/20260508204041_create_spree_order_routing_rules.rb +18 -0
- data/db/migrate/20260508204042_add_preferred_stock_location_to_spree_orders.rb +5 -0
- data/db/migrate/20260508204043_add_channel_id_to_spree_orders.rb +10 -0
- data/db/migrate/20260511000001_backfill_status_on_spree_orders.rb +57 -0
- data/db/migrate/20260515000001_add_store_id_to_spree_newsletter_subscribers.rb +25 -0
- data/db/migrate/20260529000001_add_unique_index_to_spree_price_rules.rb +41 -0
- data/db/migrate/20260529000002_add_unique_index_to_spree_promotion_rules.rb +37 -0
- data/db/migrate/20260601000001_create_spree_product_publications.rb +14 -0
- data/db/migrate/20260601000002_add_store_id_to_spree_products.rb +16 -0
- data/db/migrate/20260602000001_add_default_to_spree_channels.rb +14 -0
- data/db/sample_data/channels.rb +12 -0
- data/db/sample_data/orders.rb +1 -1
- data/db/sample_data/products.csv +212 -212
- data/lib/generators/spree/api_resource/api_resource_generator.rb +353 -0
- data/lib/generators/spree/api_resource/templates/admin_controller.rb.tt +23 -0
- data/lib/generators/spree/api_resource/templates/admin_controller_spec.rb.tt +59 -0
- data/lib/generators/spree/api_resource/templates/admin_serializer.rb.tt +11 -0
- data/lib/generators/spree/api_resource/templates/factory.rb.tt +26 -0
- data/lib/generators/spree/api_resource/templates/store_aliased_serializer.rb.tt +12 -0
- data/lib/generators/spree/api_resource/templates/store_controller.rb.tt +31 -0
- data/lib/generators/spree/api_resource/templates/store_controller_spec.rb.tt +61 -0
- data/lib/generators/spree/api_resource/templates/store_serializer.rb.tt +14 -0
- data/lib/generators/spree/controller_decorator/controller_decorator_generator.rb +66 -0
- data/lib/generators/spree/controller_decorator/templates/controller_decorator.rb.tt +25 -0
- data/lib/generators/spree/model/model_generator.rb +73 -7
- data/lib/generators/spree/model/templates/create_table_migration.rb.tt +40 -0
- data/lib/generators/spree/model/templates/model.rb.tt +28 -2
- data/lib/spree/core/configuration.rb +7 -0
- data/lib/spree/core/controller_helpers/auth.rb +0 -12
- data/lib/spree/core/controller_helpers/currency.rb +0 -17
- data/lib/spree/core/controller_helpers/order.rb +0 -19
- data/lib/spree/core/dependencies.rb +5 -2
- data/lib/spree/core/engine.rb +54 -7
- data/lib/spree/core/permission_configuration.rb +15 -0
- data/lib/spree/core/preferences/masking.rb +47 -0
- data/lib/spree/core/preferences/preferable_class_methods.rb +7 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +56 -5
- data/lib/spree/events/adapters/active_support_notifications.rb +1 -1
- data/lib/spree/events/adapters/base.rb +3 -3
- data/lib/spree/events/registry.rb +1 -1
- data/lib/spree/events.rb +1 -1
- data/lib/spree/permitted_attributes.rb +9 -7
- data/lib/spree/testing_support/factories/address_factory.rb +16 -9
- data/lib/spree/testing_support/factories/api_key_factory.rb +1 -0
- data/lib/spree/testing_support/factories/channel_factory.rb +8 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -8
- data/lib/spree/testing_support/factories/newsletter_subscriber_factory.rb +2 -0
- data/lib/spree/testing_support/factories/product_factory.rb +16 -7
- data/lib/spree/testing_support/factories/product_publication_factory.rb +6 -0
- data/lib/spree/testing_support/factories/refresh_token_factory.rb +15 -0
- data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
- data/lib/spree/testing_support/factories/stock_reservation_factory.rb +31 -0
- data/lib/spree/testing_support/factories/variant_factory.rb +3 -3
- data/lib/spree/testing_support/order_walkthrough.rb +1 -1
- data/lib/spree/testing_support/store.rb +10 -0
- data/lib/spree/upgrades/5_4_to_5_5/manifest.yml +53 -0
- data/lib/tasks/channels.rake +94 -0
- data/lib/tasks/core.rake +1 -0
- data/lib/tasks/media.rake +27 -0
- data/lib/tasks/products.rake +4 -6
- data/lib/tasks/publications.rake +60 -0
- data/lib/tasks/upgrade.rake +211 -0
- metadata +86 -18
- data/app/finders/spree/variants/visible_finder.rb +0 -23
- data/app/paginators/spree/shared/paginate.rb +0 -30
- data/app/presenters/spree/filters/price_presenter.rb +0 -23
- data/app/presenters/spree/filters/price_range_presenter.rb +0 -30
- data/app/presenters/spree/filters/quantified_price_range_presenter.rb +0 -45
- data/app/presenters/spree/product_summary_presenter.rb +0 -27
- data/app/presenters/spree/variants/options_presenter.rb +0 -82
- data/app/services/spree/classifications/reposition.rb +0 -23
- data/app/sorters/spree/orders/sort.rb +0 -10
- data/lib/spree/core/controller_helpers/common.rb +0 -14
- data/lib/spree/core/token_generator.rb +0 -23
- data/lib/spree/database_type_utilities.rb +0 -22
- data/lib/spree/testing_support/bar_ability.rb +0 -14
- data/lib/spree/testing_support/factories/store_product_factory.rb +0 -6
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# spree:upgrade — runs the data-backfill rake tasks shipped with the
|
|
4
|
+
# currently-installed spree_core. Intended to run on production (or any
|
|
5
|
+
# environment) after `bundle update` + `db:migrate` have already happened
|
|
6
|
+
# in your deploy pipeline.
|
|
7
|
+
#
|
|
8
|
+
# Walks EVERY upgrade manifest whose `to` is ≤ the installed minor version,
|
|
9
|
+
# in ascending order. So an app that's been on 5.3 and jumps straight to
|
|
10
|
+
# 5.5 still gets the 5.3→5.4 data backfills before the 5.4→5.5 ones.
|
|
11
|
+
# Every step in every manifest is required to be idempotent — re-running
|
|
12
|
+
# the task on an already-upgraded app is a safe no-op.
|
|
13
|
+
#
|
|
14
|
+
# Usage:
|
|
15
|
+
# bundle exec rake spree:upgrade # walk all eligible manifests
|
|
16
|
+
# bundle exec rake spree:upgrade DRY_RUN=1 # print plan, run nothing
|
|
17
|
+
# bundle exec rake spree:upgrade STEP=channels # run one step by id (any manifest)
|
|
18
|
+
# bundle exec rake spree:upgrade TO=5.4 # cap the walk at this version
|
|
19
|
+
#
|
|
20
|
+
# Manifests live alongside this file at lib/spree/upgrades/<from>_to_<to>/
|
|
21
|
+
# manifest.yml and ship inside the spree_core gem.
|
|
22
|
+
|
|
23
|
+
require 'yaml'
|
|
24
|
+
|
|
25
|
+
namespace :spree do
|
|
26
|
+
desc 'Run the post-deploy upgrade tasks for the installed Spree version'
|
|
27
|
+
task upgrade: :environment do
|
|
28
|
+
Spree::Upgrade::Runner.new(
|
|
29
|
+
target_version: ENV['TO'],
|
|
30
|
+
step_id: ENV['STEP'],
|
|
31
|
+
dry_run: ENV['DRY_RUN'] == '1'
|
|
32
|
+
).call
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
module Spree
|
|
37
|
+
module Upgrade
|
|
38
|
+
# Two-segment "5.5" form of the installed Spree version.
|
|
39
|
+
def self.installed_minor_version
|
|
40
|
+
Spree.version.split('.').first(2).join('.')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Root directory containing N_M_to_O_P/manifest.yml files inside
|
|
44
|
+
# the spree_core gem.
|
|
45
|
+
def self.manifests_root
|
|
46
|
+
File.expand_path('../spree/upgrades', __dir__)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# All available manifest directories, parsed into { from:, to:, dir: }.
|
|
50
|
+
# Sorted by `to` ascending, with `from` as a tiebreaker (smallest first)
|
|
51
|
+
# for the rare case where two manifests share a `to` boundary.
|
|
52
|
+
def self.available_manifests
|
|
53
|
+
Dir.glob(File.join(manifests_root, '*_to_*')).filter_map do |dir|
|
|
54
|
+
name = File.basename(dir)
|
|
55
|
+
match = name.match(/\A([\d_]+)_to_([\d_]+)\z/)
|
|
56
|
+
next unless match
|
|
57
|
+
|
|
58
|
+
{ from: match[1].tr('_', '.'), to: match[2].tr('_', '.'), dir: dir }
|
|
59
|
+
end.sort_by { |m| version_parts(m[:to]) + version_parts(m[:from]) }
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def self.version_parts(v)
|
|
63
|
+
v.split('.').map { |s| Integer(s, 10) rescue 0 }
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Compare two dotted-version strings (returns -1, 0, +1).
|
|
67
|
+
def self.compare(a, b)
|
|
68
|
+
version_parts(a) <=> version_parts(b)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# The runner is a class (not a method) so individual concerns (selection,
|
|
72
|
+
# rendering, invocation) stay separable and the plan can be inspected
|
|
73
|
+
# without execution.
|
|
74
|
+
class Runner
|
|
75
|
+
attr_reader :target_version, :step_id, :dry_run, :target_explicit
|
|
76
|
+
|
|
77
|
+
def initialize(target_version: nil, step_id: nil, dry_run: false)
|
|
78
|
+
@target_explicit = !target_version.nil?
|
|
79
|
+
@target_version = target_version || Spree::Upgrade.installed_minor_version
|
|
80
|
+
@step_id = step_id
|
|
81
|
+
@dry_run = dry_run
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def call
|
|
85
|
+
manifests = eligible_manifests
|
|
86
|
+
|
|
87
|
+
if manifests.empty?
|
|
88
|
+
puts " No upgrade manifests apply to Spree #{target_version} (installed: #{Spree::Upgrade.installed_minor_version})."
|
|
89
|
+
return
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
if step_id
|
|
93
|
+
run_single_step(manifests)
|
|
94
|
+
else
|
|
95
|
+
run_full_walk(manifests)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
private
|
|
100
|
+
|
|
101
|
+
# In plan-mode without explicit TO, show manifests ahead of the installed
|
|
102
|
+
# version — the path the operator is about to walk. Otherwise filter to
|
|
103
|
+
# manifests whose `to` is ≤ target.
|
|
104
|
+
def eligible_manifests
|
|
105
|
+
Spree::Upgrade.available_manifests
|
|
106
|
+
.select { |manifest| manifest_eligible?(manifest) }
|
|
107
|
+
.map { |entry| load_manifest_yaml(entry) }
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def manifest_eligible?(manifest)
|
|
111
|
+
if dry_run && !target_explicit
|
|
112
|
+
Spree::Upgrade.compare(manifest[:from], Spree::Upgrade.installed_minor_version) >= 0
|
|
113
|
+
else
|
|
114
|
+
Spree::Upgrade.compare(manifest[:to], target_version) <= 0
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def load_manifest_yaml(entry)
|
|
119
|
+
YAML.safe_load_file(File.join(entry[:dir], 'manifest.yml'))
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def run_full_walk(manifests)
|
|
123
|
+
total_steps = manifests.sum { |m| m['steps'].size }
|
|
124
|
+
reported_target = if dry_run && !target_explicit
|
|
125
|
+
manifests.map { |m| m['to'] }.compact.max_by { |v| Spree::Upgrade.version_parts(v) } || target_version
|
|
126
|
+
else
|
|
127
|
+
target_version
|
|
128
|
+
end
|
|
129
|
+
puts
|
|
130
|
+
puts " Walking #{manifests.size} manifest(s), #{total_steps} step(s) total. Target: Spree #{reported_target}."
|
|
131
|
+
|
|
132
|
+
manifests.each do |manifest|
|
|
133
|
+
print_manifest_header(manifest)
|
|
134
|
+
manifest['steps'].each_with_index do |step, i|
|
|
135
|
+
print_step(step, i + 1, manifest['steps'].size)
|
|
136
|
+
unless dry_run
|
|
137
|
+
invoke(step)
|
|
138
|
+
print_step_complete(step)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
puts
|
|
144
|
+
puts dry_run ? ' (dry run — nothing executed)' : ' Upgrade tasks complete.'
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# STEP=<id> looks across every eligible manifest; we need exactly one
|
|
148
|
+
# match. Multiple matches are likely a manifest bug (two manifests
|
|
149
|
+
# referencing the same step id) but we surface it rather than picking
|
|
150
|
+
# silently.
|
|
151
|
+
def run_single_step(manifests)
|
|
152
|
+
matches = manifests.flat_map do |manifest|
|
|
153
|
+
manifest['steps'].select { |s| s['id'] == step_id }.map { |s| [manifest, s] }
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
if matches.empty?
|
|
157
|
+
available = manifests.flat_map { |m| m['steps'] }.map { |s| s['id'] }.uniq.join(', ')
|
|
158
|
+
abort " No step with id '#{step_id}' in any eligible manifest. Available: #{available}"
|
|
159
|
+
elsif matches.size > 1
|
|
160
|
+
locations = matches.map { |m, _| "#{m['from']} → #{m['to']}" }.join(', ')
|
|
161
|
+
abort " Step id '#{step_id}' is ambiguous — defined in: #{locations}. Pass TO=<version> to narrow."
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
manifest, step = matches.first
|
|
165
|
+
print_manifest_header(manifest)
|
|
166
|
+
print_step(step, 1, 1)
|
|
167
|
+
unless dry_run
|
|
168
|
+
invoke(step)
|
|
169
|
+
print_step_complete(step)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
puts
|
|
173
|
+
puts dry_run ? ' (dry run — nothing executed)' : " Step '#{step_id}' complete."
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def print_manifest_header(manifest)
|
|
177
|
+
puts
|
|
178
|
+
puts " ── Spree #{manifest['from']} → #{manifest['to']} ──"
|
|
179
|
+
puts " Docs: #{manifest['docs']}" if manifest['docs']
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def print_step(step, index, total)
|
|
183
|
+
puts
|
|
184
|
+
puts " Step #{index}/#{total} [#{step['id']}]"
|
|
185
|
+
puts " #{step['name']}"
|
|
186
|
+
puts " > bin/rake #{step['task']}"
|
|
187
|
+
return unless step['notes']
|
|
188
|
+
|
|
189
|
+
step['notes'].each_line { |line| puts " #{line.chomp}" }
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def print_step_complete(step)
|
|
193
|
+
puts " ✓ #{step['task']} done."
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def invoke(step)
|
|
197
|
+
task = step.fetch('task')
|
|
198
|
+
puts " Running #{task}..."
|
|
199
|
+
|
|
200
|
+
# Rake caches invoked tasks in-process; explicit reenable lets a
|
|
201
|
+
# single `rake spree:upgrade` run re-invoke aggregators that share
|
|
202
|
+
# subtasks across multiple manifests (e.g. two manifests both
|
|
203
|
+
# depending on `spree:install:migrations` would otherwise only
|
|
204
|
+
# invoke it once).
|
|
205
|
+
rake_task = Rake::Task[task]
|
|
206
|
+
rake_task.reenable
|
|
207
|
+
rake_task.invoke
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
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.
|
|
4
|
+
version: 5.5.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sean Schofield
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2026-
|
|
13
|
+
date: 2026-06-10 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: i18n-tasks
|
|
@@ -841,7 +841,6 @@ files:
|
|
|
841
841
|
- app/finders/spree/taxons/find.rb
|
|
842
842
|
- app/finders/spree/variants/find.rb
|
|
843
843
|
- app/finders/spree/variants/option_types_finder.rb
|
|
844
|
-
- app/finders/spree/variants/visible_finder.rb
|
|
845
844
|
- app/helpers/spree/addresses_helper.rb
|
|
846
845
|
- app/helpers/spree/base_helper.rb
|
|
847
846
|
- app/helpers/spree/currency_helper.rb
|
|
@@ -864,9 +863,13 @@ files:
|
|
|
864
863
|
- app/jobs/spree/exports/generate_job.rb
|
|
865
864
|
- app/jobs/spree/gift_cards/bulk_generate_job.rb
|
|
866
865
|
- app/jobs/spree/images/save_from_url_job.rb
|
|
866
|
+
- app/jobs/spree/imports/assign_tags_job.rb
|
|
867
|
+
- app/jobs/spree/imports/base_job.rb
|
|
868
|
+
- app/jobs/spree/imports/create_categories_job.rb
|
|
867
869
|
- app/jobs/spree/imports/create_rows_job.rb
|
|
868
870
|
- app/jobs/spree/imports/process_group_job.rb
|
|
869
871
|
- app/jobs/spree/imports/process_rows_job.rb
|
|
872
|
+
- app/jobs/spree/media/migrate_product_assets_job.rb
|
|
870
873
|
- app/jobs/spree/payments/handle_webhook_job.rb
|
|
871
874
|
- app/jobs/spree/products/auto_match_taxons_job.rb
|
|
872
875
|
- app/jobs/spree/products/refresh_metrics_job.rb
|
|
@@ -875,6 +878,7 @@ files:
|
|
|
875
878
|
- app/jobs/spree/search_provider/index_job.rb
|
|
876
879
|
- app/jobs/spree/search_provider/remove_job.rb
|
|
877
880
|
- app/jobs/spree/stock_locations/stock_items/create_job.rb
|
|
881
|
+
- app/jobs/spree/stock_reservations/expire_job.rb
|
|
878
882
|
- app/jobs/spree/variants/remove_from_incomplete_orders_job.rb
|
|
879
883
|
- app/jobs/spree/variants/remove_line_item_job.rb
|
|
880
884
|
- app/jobs/spree/variants/touch_job.rb
|
|
@@ -901,6 +905,7 @@ files:
|
|
|
901
905
|
- app/models/concerns/spree/number_identifier.rb
|
|
902
906
|
- app/models/concerns/spree/parameterizable_name.rb
|
|
903
907
|
- app/models/concerns/spree/payment_source_concern.rb
|
|
908
|
+
- app/models/concerns/spree/preference_schema.rb
|
|
904
909
|
- app/models/concerns/spree/prefixed_id.rb
|
|
905
910
|
- app/models/concerns/spree/product_scopes.rb
|
|
906
911
|
- app/models/concerns/spree/publishable.rb
|
|
@@ -909,11 +914,13 @@ files:
|
|
|
909
914
|
- app/models/concerns/spree/searchable.rb
|
|
910
915
|
- app/models/concerns/spree/single_store_resource.rb
|
|
911
916
|
- app/models/concerns/spree/store_scoped_resource.rb
|
|
917
|
+
- app/models/concerns/spree/stores/channels.rb
|
|
912
918
|
- app/models/concerns/spree/stores/markets.rb
|
|
913
919
|
- app/models/concerns/spree/stores/setup.rb
|
|
914
920
|
- app/models/concerns/spree/translatable_resource.rb
|
|
915
921
|
- app/models/concerns/spree/translatable_resource_scopes.rb
|
|
916
922
|
- app/models/concerns/spree/translatable_resource_slug.rb
|
|
923
|
+
- app/models/concerns/spree/typed_associations.rb
|
|
917
924
|
- app/models/concerns/spree/unique_name.rb
|
|
918
925
|
- app/models/concerns/spree/user_address.rb
|
|
919
926
|
- app/models/concerns/spree/user_management.rb
|
|
@@ -936,6 +943,7 @@ files:
|
|
|
936
943
|
- app/models/spree/asset/support/active_storage.rb
|
|
937
944
|
- app/models/spree/authentication/strategies/base_strategy.rb
|
|
938
945
|
- app/models/spree/authentication/strategies/email_password_strategy.rb
|
|
946
|
+
- app/models/spree/authentication/strategy_registry.rb
|
|
939
947
|
- app/models/spree/base.rb
|
|
940
948
|
- app/models/spree/base_analytics_event_handler.rb
|
|
941
949
|
- app/models/spree/calculator.rb
|
|
@@ -955,6 +963,7 @@ files:
|
|
|
955
963
|
- app/models/spree/calculator/tiered_flat_rate.rb
|
|
956
964
|
- app/models/spree/calculator/tiered_percent.rb
|
|
957
965
|
- app/models/spree/category.rb
|
|
966
|
+
- app/models/spree/channel.rb
|
|
958
967
|
- app/models/spree/checkout/default_requirements.rb
|
|
959
968
|
- app/models/spree/checkout/registry.rb
|
|
960
969
|
- app/models/spree/checkout/requirement.rb
|
|
@@ -965,6 +974,8 @@ files:
|
|
|
965
974
|
- app/models/spree/coupon_code.rb
|
|
966
975
|
- app/models/spree/credit_card.rb
|
|
967
976
|
- app/models/spree/current.rb
|
|
977
|
+
- app/models/spree/custom_field.rb
|
|
978
|
+
- app/models/spree/custom_field_definition.rb
|
|
968
979
|
- app/models/spree/customer_group.rb
|
|
969
980
|
- app/models/spree/customer_group_user.rb
|
|
970
981
|
- app/models/spree/customer_return.rb
|
|
@@ -1033,10 +1044,21 @@ files:
|
|
|
1033
1044
|
- app/models/spree/order/payments.rb
|
|
1034
1045
|
- app/models/spree/order/store_credit.rb
|
|
1035
1046
|
- app/models/spree/order/webhooks.rb
|
|
1047
|
+
- app/models/spree/order_approval.rb
|
|
1048
|
+
- app/models/spree/order_cancellation.rb
|
|
1036
1049
|
- app/models/spree/order_contents.rb
|
|
1037
1050
|
- app/models/spree/order_inventory.rb
|
|
1038
1051
|
- app/models/spree/order_merger.rb
|
|
1039
1052
|
- app/models/spree/order_promotion.rb
|
|
1053
|
+
- app/models/spree/order_routing/has_strategy_preference.rb
|
|
1054
|
+
- app/models/spree/order_routing/rules/default_location.rb
|
|
1055
|
+
- app/models/spree/order_routing/rules/minimize_splits.rb
|
|
1056
|
+
- app/models/spree/order_routing/rules/preferred_location.rb
|
|
1057
|
+
- app/models/spree/order_routing/strategy/base.rb
|
|
1058
|
+
- app/models/spree/order_routing/strategy/legacy.rb
|
|
1059
|
+
- app/models/spree/order_routing/strategy/reducer.rb
|
|
1060
|
+
- app/models/spree/order_routing/strategy/rules.rb
|
|
1061
|
+
- app/models/spree/order_routing_rule.rb
|
|
1040
1062
|
- app/models/spree/order_updater.rb
|
|
1041
1063
|
- app/models/spree/payment.rb
|
|
1042
1064
|
- app/models/spree/payment/custom_events.rb
|
|
@@ -1052,6 +1074,7 @@ files:
|
|
|
1052
1074
|
- app/models/spree/payment_session.rb
|
|
1053
1075
|
- app/models/spree/payment_sessions/bogus.rb
|
|
1054
1076
|
- app/models/spree/payment_setup_session.rb
|
|
1077
|
+
- app/models/spree/payment_setup_sessions/bogus.rb
|
|
1055
1078
|
- app/models/spree/payment_source.rb
|
|
1056
1079
|
- app/models/spree/permission_sets/base.rb
|
|
1057
1080
|
- app/models/spree/permission_sets/configuration_management.rb
|
|
@@ -1080,10 +1103,13 @@ files:
|
|
|
1080
1103
|
- app/models/spree/price_rules/volume_rule.rb
|
|
1081
1104
|
- app/models/spree/price_rules/zone_rule.rb
|
|
1082
1105
|
- app/models/spree/product.rb
|
|
1106
|
+
- app/models/spree/product/channels.rb
|
|
1107
|
+
- app/models/spree/product/legacy_multi_store_support.rb
|
|
1083
1108
|
- app/models/spree/product/slugs.rb
|
|
1084
1109
|
- app/models/spree/product/webhooks.rb
|
|
1085
1110
|
- app/models/spree/product_option_type.rb
|
|
1086
1111
|
- app/models/spree/product_promotion_rule.rb
|
|
1112
|
+
- app/models/spree/product_publication.rb
|
|
1087
1113
|
- app/models/spree/promotion.rb
|
|
1088
1114
|
- app/models/spree/promotion/actions/create_adjustment.rb
|
|
1089
1115
|
- app/models/spree/promotion/actions/create_item_adjustments.rb
|
|
@@ -1188,6 +1214,8 @@ files:
|
|
|
1188
1214
|
- app/models/spree/stock_movement.rb
|
|
1189
1215
|
- app/models/spree/stock_movement/custom_events.rb
|
|
1190
1216
|
- app/models/spree/stock_movement/webhooks.rb
|
|
1217
|
+
- app/models/spree/stock_reservation.rb
|
|
1218
|
+
- app/models/spree/stock_reservations/insufficient_stock_error.rb
|
|
1191
1219
|
- app/models/spree/stock_transfer.rb
|
|
1192
1220
|
- app/models/spree/store.rb
|
|
1193
1221
|
- app/models/spree/store_credit.rb
|
|
@@ -1209,15 +1237,16 @@ files:
|
|
|
1209
1237
|
- app/models/spree/user_identity.rb
|
|
1210
1238
|
- app/models/spree/variant.rb
|
|
1211
1239
|
- app/models/spree/variant/webhooks.rb
|
|
1240
|
+
- app/models/spree/variant_media.rb
|
|
1212
1241
|
- app/models/spree/webhook_delivery.rb
|
|
1213
1242
|
- app/models/spree/webhook_endpoint.rb
|
|
1214
1243
|
- app/models/spree/wished_item.rb
|
|
1215
1244
|
- app/models/spree/wishlist.rb
|
|
1216
1245
|
- app/models/spree/zone.rb
|
|
1217
1246
|
- app/models/spree/zone_member.rb
|
|
1218
|
-
- app/paginators/spree/shared/paginate.rb
|
|
1219
1247
|
- app/presenters/spree/csv/coupon_code_presenter.rb
|
|
1220
1248
|
- app/presenters/spree/csv/customer_presenter.rb
|
|
1249
|
+
- app/presenters/spree/csv/formula_sanitizer.rb
|
|
1221
1250
|
- app/presenters/spree/csv/gift_card_presenter.rb
|
|
1222
1251
|
- app/presenters/spree/csv/metafields_helper.rb
|
|
1223
1252
|
- app/presenters/spree/csv/newsletter_subscriber_presenter.rb
|
|
@@ -1227,14 +1256,9 @@ files:
|
|
|
1227
1256
|
- app/presenters/spree/data_feeds/base_presenter.rb
|
|
1228
1257
|
- app/presenters/spree/data_feeds/google_presenter.rb
|
|
1229
1258
|
- app/presenters/spree/filters/options_presenter.rb
|
|
1230
|
-
- app/presenters/spree/filters/price_presenter.rb
|
|
1231
|
-
- app/presenters/spree/filters/price_range_presenter.rb
|
|
1232
|
-
- app/presenters/spree/filters/quantified_price_range_presenter.rb
|
|
1233
|
-
- app/presenters/spree/product_summary_presenter.rb
|
|
1234
1259
|
- app/presenters/spree/search_provider/product_presenter.rb
|
|
1235
1260
|
- app/presenters/spree/variant_presenter.rb
|
|
1236
1261
|
- app/presenters/spree/variants/option_types_presenter.rb
|
|
1237
|
-
- app/presenters/spree/variants/options_presenter.rb
|
|
1238
1262
|
- app/services/spree/account/addresses/create.rb
|
|
1239
1263
|
- app/services/spree/account/addresses/update.rb
|
|
1240
1264
|
- app/services/spree/account/create.rb
|
|
@@ -1267,7 +1291,6 @@ files:
|
|
|
1267
1291
|
- app/services/spree/checkout/remove_store_credit.rb
|
|
1268
1292
|
- app/services/spree/checkout/select_shipping_method.rb
|
|
1269
1293
|
- app/services/spree/checkout/update.rb
|
|
1270
|
-
- app/services/spree/classifications/reposition.rb
|
|
1271
1294
|
- app/services/spree/compare_line_items.rb
|
|
1272
1295
|
- app/services/spree/country_to_timezone.rb
|
|
1273
1296
|
- app/services/spree/coupon_codes/bulk_generate.rb
|
|
@@ -1286,14 +1309,21 @@ files:
|
|
|
1286
1309
|
- app/services/spree/line_items/helper.rb
|
|
1287
1310
|
- app/services/spree/line_items/update.rb
|
|
1288
1311
|
- app/services/spree/locales/set_fallback_locale_for_store.rb
|
|
1312
|
+
- app/services/spree/newsletter/link_user.rb
|
|
1289
1313
|
- app/services/spree/newsletter/subscribe.rb
|
|
1290
1314
|
- app/services/spree/newsletter/verify.rb
|
|
1291
1315
|
- app/services/spree/orders/approve.rb
|
|
1316
|
+
- app/services/spree/orders/build_shipments.rb
|
|
1292
1317
|
- app/services/spree/orders/cancel.rb
|
|
1318
|
+
- app/services/spree/orders/complete.rb
|
|
1319
|
+
- app/services/spree/orders/create.rb
|
|
1293
1320
|
- app/services/spree/orders/create_user_account.rb
|
|
1321
|
+
- app/services/spree/orders/update.rb
|
|
1294
1322
|
- app/services/spree/orders/update_contact_information.rb
|
|
1323
|
+
- app/services/spree/orders/upsert_items.rb
|
|
1295
1324
|
- app/services/spree/payments/create.rb
|
|
1296
1325
|
- app/services/spree/payments/handle_webhook.rb
|
|
1326
|
+
- app/services/spree/prices/bulk_upsert.rb
|
|
1297
1327
|
- app/services/spree/products/auto_match_taxons.rb
|
|
1298
1328
|
- app/services/spree/products/duplicator.rb
|
|
1299
1329
|
- app/services/spree/products/prepare_nested_attributes.rb
|
|
@@ -1323,6 +1353,9 @@ files:
|
|
|
1323
1353
|
- app/services/spree/shipments/remove_item.rb
|
|
1324
1354
|
- app/services/spree/shipments/update.rb
|
|
1325
1355
|
- app/services/spree/stock_locations/stock_items/create.rb
|
|
1356
|
+
- app/services/spree/stock_reservations/extend.rb
|
|
1357
|
+
- app/services/spree/stock_reservations/release.rb
|
|
1358
|
+
- app/services/spree/stock_reservations/reserve.rb
|
|
1326
1359
|
- app/services/spree/stores/settings_defaults_by_country.rb
|
|
1327
1360
|
- app/services/spree/tags/bulk_add.rb
|
|
1328
1361
|
- app/services/spree/tags/bulk_remove.rb
|
|
@@ -1335,7 +1368,6 @@ files:
|
|
|
1335
1368
|
- app/services/spree/wallet/create_payment_source.rb
|
|
1336
1369
|
- app/sorters/spree/base_sorter.rb
|
|
1337
1370
|
- app/sorters/spree/classifications/sort.rb
|
|
1338
|
-
- app/sorters/spree/orders/sort.rb
|
|
1339
1371
|
- app/sorters/spree/products/sort.rb
|
|
1340
1372
|
- app/subscribers/spree/event_log_subscriber.rb
|
|
1341
1373
|
- app/subscribers/spree/export_subscriber.rb
|
|
@@ -1514,6 +1546,26 @@ files:
|
|
|
1514
1546
|
- db/migrate/20260408000001_add_unique_index_to_spree_zone_members.rb
|
|
1515
1547
|
- db/migrate/20260424000001_add_unique_index_to_spree_payments_response_code.rb
|
|
1516
1548
|
- db/migrate/20260424100000_add_processing_groups_to_spree_imports.rb
|
|
1549
|
+
- db/migrate/20260429000001_create_spree_order_cancellations.rb
|
|
1550
|
+
- db/migrate/20260429000002_create_spree_order_approvals.rb
|
|
1551
|
+
- db/migrate/20260429000003_add_status_to_spree_orders.rb
|
|
1552
|
+
- db/migrate/20260429000004_add_scopes_to_spree_api_keys.rb
|
|
1553
|
+
- db/migrate/20260501000001_create_spree_stock_reservations.rb
|
|
1554
|
+
- db/migrate/20260504103113_add_type_to_spree_payment_setup_sessions.rb
|
|
1555
|
+
- db/migrate/20260507162651_create_spree_variant_media.rb
|
|
1556
|
+
- db/migrate/20260508175303_add_pickup_to_spree_stock_locations.rb
|
|
1557
|
+
- db/migrate/20260508204040_create_spree_channels.rb
|
|
1558
|
+
- db/migrate/20260508204041_create_spree_order_routing_rules.rb
|
|
1559
|
+
- db/migrate/20260508204042_add_preferred_stock_location_to_spree_orders.rb
|
|
1560
|
+
- db/migrate/20260508204043_add_channel_id_to_spree_orders.rb
|
|
1561
|
+
- db/migrate/20260511000001_backfill_status_on_spree_orders.rb
|
|
1562
|
+
- db/migrate/20260515000001_add_store_id_to_spree_newsletter_subscribers.rb
|
|
1563
|
+
- db/migrate/20260529000001_add_unique_index_to_spree_price_rules.rb
|
|
1564
|
+
- db/migrate/20260529000002_add_unique_index_to_spree_promotion_rules.rb
|
|
1565
|
+
- db/migrate/20260601000001_create_spree_product_publications.rb
|
|
1566
|
+
- db/migrate/20260601000002_add_store_id_to_spree_products.rb
|
|
1567
|
+
- db/migrate/20260602000001_add_default_to_spree_channels.rb
|
|
1568
|
+
- db/sample_data/channels.rb
|
|
1517
1569
|
- db/sample_data/customers.csv
|
|
1518
1570
|
- db/sample_data/markets.rb
|
|
1519
1571
|
- db/sample_data/metafield_definitions.rb
|
|
@@ -1527,6 +1579,15 @@ files:
|
|
|
1527
1579
|
- db/seeds.rb
|
|
1528
1580
|
- lib/friendly_id/history_decorator.rb
|
|
1529
1581
|
- lib/friendly_id/paranoia.rb
|
|
1582
|
+
- lib/generators/spree/api_resource/api_resource_generator.rb
|
|
1583
|
+
- lib/generators/spree/api_resource/templates/admin_controller.rb.tt
|
|
1584
|
+
- lib/generators/spree/api_resource/templates/admin_controller_spec.rb.tt
|
|
1585
|
+
- lib/generators/spree/api_resource/templates/admin_serializer.rb.tt
|
|
1586
|
+
- lib/generators/spree/api_resource/templates/factory.rb.tt
|
|
1587
|
+
- lib/generators/spree/api_resource/templates/store_aliased_serializer.rb.tt
|
|
1588
|
+
- lib/generators/spree/api_resource/templates/store_controller.rb.tt
|
|
1589
|
+
- lib/generators/spree/api_resource/templates/store_controller_spec.rb.tt
|
|
1590
|
+
- lib/generators/spree/api_resource/templates/store_serializer.rb.tt
|
|
1530
1591
|
- lib/generators/spree/authentication/custom/custom_generator.rb
|
|
1531
1592
|
- lib/generators/spree/authentication/custom/templates/authentication_helpers.rb.tt
|
|
1532
1593
|
- lib/generators/spree/authentication/devise/devise_generator.rb
|
|
@@ -1534,6 +1595,8 @@ files:
|
|
|
1534
1595
|
- lib/generators/spree/authentication/dummy/dummy_generator.rb
|
|
1535
1596
|
- lib/generators/spree/authentication/dummy/templates/authentication_helpers.rb.tt
|
|
1536
1597
|
- lib/generators/spree/authentication/dummy/templates/create_spree_admin_users.rb.tt
|
|
1598
|
+
- lib/generators/spree/controller_decorator/controller_decorator_generator.rb
|
|
1599
|
+
- lib/generators/spree/controller_decorator/templates/controller_decorator.rb.tt
|
|
1537
1600
|
- lib/generators/spree/dummy/dummy_generator.rb
|
|
1538
1601
|
- lib/generators/spree/dummy/templates/app/assets/config/manifest.js
|
|
1539
1602
|
- lib/generators/spree/dummy/templates/rails/application.rb
|
|
@@ -1545,6 +1608,7 @@ files:
|
|
|
1545
1608
|
- lib/generators/spree/dummy_model/templates/migration.rb.tt
|
|
1546
1609
|
- lib/generators/spree/dummy_model/templates/model.rb.tt
|
|
1547
1610
|
- lib/generators/spree/model/model_generator.rb
|
|
1611
|
+
- lib/generators/spree/model/templates/create_table_migration.rb.tt
|
|
1548
1612
|
- lib/generators/spree/model/templates/model.rb.tt
|
|
1549
1613
|
- lib/generators/spree/model_decorator/model_decorator_generator.rb
|
|
1550
1614
|
- lib/generators/spree/model_decorator/templates/model_decorator.rb.tt
|
|
@@ -1554,7 +1618,6 @@ files:
|
|
|
1554
1618
|
- lib/spree/core/components.rb
|
|
1555
1619
|
- lib/spree/core/configuration.rb
|
|
1556
1620
|
- lib/spree/core/controller_helpers/auth.rb
|
|
1557
|
-
- lib/spree/core/controller_helpers/common.rb
|
|
1558
1621
|
- lib/spree/core/controller_helpers/currency.rb
|
|
1559
1622
|
- lib/spree/core/controller_helpers/locale.rb
|
|
1560
1623
|
- lib/spree/core/controller_helpers/order.rb
|
|
@@ -1568,6 +1631,7 @@ files:
|
|
|
1568
1631
|
- lib/spree/core/partials.rb
|
|
1569
1632
|
- lib/spree/core/permission_configuration.rb
|
|
1570
1633
|
- lib/spree/core/preferences/configuration.rb
|
|
1634
|
+
- lib/spree/core/preferences/masking.rb
|
|
1571
1635
|
- lib/spree/core/preferences/preferable.rb
|
|
1572
1636
|
- lib/spree/core/preferences/preferable_class_methods.rb
|
|
1573
1637
|
- lib/spree/core/preferences/runtime_configuration.rb
|
|
@@ -1577,9 +1641,7 @@ files:
|
|
|
1577
1641
|
- lib/spree/core/pricing/resolver.rb
|
|
1578
1642
|
- lib/spree/core/ransack_configuration.rb
|
|
1579
1643
|
- lib/spree/core/routes.rb
|
|
1580
|
-
- lib/spree/core/token_generator.rb
|
|
1581
1644
|
- lib/spree/core/version.rb
|
|
1582
|
-
- lib/spree/database_type_utilities.rb
|
|
1583
1645
|
- lib/spree/events.rb
|
|
1584
1646
|
- lib/spree/events/adapters/active_support_notifications.rb
|
|
1585
1647
|
- lib/spree/events/adapters/base.rb
|
|
@@ -1592,7 +1654,6 @@ files:
|
|
|
1592
1654
|
- lib/spree/service_module.rb
|
|
1593
1655
|
- lib/spree/testing_support/ability_helpers.rb
|
|
1594
1656
|
- lib/spree/testing_support/authorization_helpers.rb
|
|
1595
|
-
- lib/spree/testing_support/bar_ability.rb
|
|
1596
1657
|
- lib/spree/testing_support/caching.rb
|
|
1597
1658
|
- lib/spree/testing_support/capybara_config.rb
|
|
1598
1659
|
- lib/spree/testing_support/capybara_ext.rb
|
|
@@ -1606,6 +1667,7 @@ files:
|
|
|
1606
1667
|
- lib/spree/testing_support/factories/api_key_factory.rb
|
|
1607
1668
|
- lib/spree/testing_support/factories/asset_factory.rb
|
|
1608
1669
|
- lib/spree/testing_support/factories/calculator_factory.rb
|
|
1670
|
+
- lib/spree/testing_support/factories/channel_factory.rb
|
|
1609
1671
|
- lib/spree/testing_support/factories/classification_factory.rb
|
|
1610
1672
|
- lib/spree/testing_support/factories/country_factory.rb
|
|
1611
1673
|
- lib/spree/testing_support/factories/coupon_code_factory.rb
|
|
@@ -1650,12 +1712,14 @@ files:
|
|
|
1650
1712
|
- lib/spree/testing_support/factories/price_rule_factory.rb
|
|
1651
1713
|
- lib/spree/testing_support/factories/product_factory.rb
|
|
1652
1714
|
- lib/spree/testing_support/factories/product_option_type_factory.rb
|
|
1715
|
+
- lib/spree/testing_support/factories/product_publication_factory.rb
|
|
1653
1716
|
- lib/spree/testing_support/factories/product_translation_factory.rb
|
|
1654
1717
|
- lib/spree/testing_support/factories/promotion_action_factory.rb
|
|
1655
1718
|
- lib/spree/testing_support/factories/promotion_category_factory.rb
|
|
1656
1719
|
- lib/spree/testing_support/factories/promotion_factory.rb
|
|
1657
1720
|
- lib/spree/testing_support/factories/promotion_rule_factory.rb
|
|
1658
1721
|
- lib/spree/testing_support/factories/prototype_factory.rb
|
|
1722
|
+
- lib/spree/testing_support/factories/refresh_token_factory.rb
|
|
1659
1723
|
- lib/spree/testing_support/factories/refund_factory.rb
|
|
1660
1724
|
- lib/spree/testing_support/factories/reimbursement_credit_factory.rb
|
|
1661
1725
|
- lib/spree/testing_support/factories/reimbursement_factory.rb
|
|
@@ -1675,13 +1739,13 @@ files:
|
|
|
1675
1739
|
- lib/spree/testing_support/factories/stock_item_factory.rb
|
|
1676
1740
|
- lib/spree/testing_support/factories/stock_location_factory.rb
|
|
1677
1741
|
- lib/spree/testing_support/factories/stock_movement_factory.rb
|
|
1742
|
+
- lib/spree/testing_support/factories/stock_reservation_factory.rb
|
|
1678
1743
|
- lib/spree/testing_support/factories/stock_transfer_factory.rb
|
|
1679
1744
|
- lib/spree/testing_support/factories/store_credit_category_factory.rb
|
|
1680
1745
|
- lib/spree/testing_support/factories/store_credit_event_factory.rb
|
|
1681
1746
|
- lib/spree/testing_support/factories/store_credit_factory.rb
|
|
1682
1747
|
- lib/spree/testing_support/factories/store_credit_type_factory.rb
|
|
1683
1748
|
- lib/spree/testing_support/factories/store_factory.rb
|
|
1684
|
-
- lib/spree/testing_support/factories/store_product_factory.rb
|
|
1685
1749
|
- lib/spree/testing_support/factories/tax_category_factory.rb
|
|
1686
1750
|
- lib/spree/testing_support/factories/tax_rate_factory.rb
|
|
1687
1751
|
- lib/spree/testing_support/factories/taxon_factory.rb
|
|
@@ -1710,8 +1774,10 @@ files:
|
|
|
1710
1774
|
- lib/spree/testing_support/store.rb
|
|
1711
1775
|
- lib/spree/testing_support/url_helpers.rb
|
|
1712
1776
|
- lib/spree/translation_migrations.rb
|
|
1777
|
+
- lib/spree/upgrades/5_4_to_5_5/manifest.yml
|
|
1713
1778
|
- lib/spree/webhooks.rb
|
|
1714
1779
|
- lib/spree_core.rb
|
|
1780
|
+
- lib/tasks/channels.rake
|
|
1715
1781
|
- lib/tasks/cli.rake
|
|
1716
1782
|
- lib/tasks/core.rake
|
|
1717
1783
|
- lib/tasks/dependencies.rake
|
|
@@ -1719,9 +1785,11 @@ files:
|
|
|
1719
1785
|
- lib/tasks/media.rake
|
|
1720
1786
|
- lib/tasks/price_history.rake
|
|
1721
1787
|
- lib/tasks/products.rake
|
|
1788
|
+
- lib/tasks/publications.rake
|
|
1722
1789
|
- lib/tasks/sample_data.rake
|
|
1723
1790
|
- lib/tasks/search.rake
|
|
1724
1791
|
- lib/tasks/taxons.rake
|
|
1792
|
+
- lib/tasks/upgrade.rake
|
|
1725
1793
|
- lib/tasks/variants.rake
|
|
1726
1794
|
- spec/fixtures/favicon.ico
|
|
1727
1795
|
- spec/fixtures/files/customers_import.csv
|
|
@@ -1744,9 +1812,9 @@ licenses:
|
|
|
1744
1812
|
- BSD-3-Clause
|
|
1745
1813
|
metadata:
|
|
1746
1814
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
1747
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.
|
|
1815
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.5.0.rc1
|
|
1748
1816
|
documentation_uri: https://docs.spreecommerce.org/
|
|
1749
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.
|
|
1817
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.5.0.rc1
|
|
1750
1818
|
post_install_message:
|
|
1751
1819
|
rdoc_options: []
|
|
1752
1820
|
require_paths:
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Variants
|
|
3
|
-
class VisibleFinder
|
|
4
|
-
def initialize(scope:, current_currency:)
|
|
5
|
-
Spree::Deprecation.warn('Spree::Variants::VisibleFinder is deprecated and will be removed in Spree 5.5.')
|
|
6
|
-
@scope = scope
|
|
7
|
-
@current_currency = current_currency
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def execute
|
|
11
|
-
Spree::Variant.where(id: active_variants).joins(:option_values).order('spree_option_values.position ASC')
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
attr_reader :scope, :current_currency
|
|
17
|
-
|
|
18
|
-
def active_variants
|
|
19
|
-
scope.active(current_currency).unscope(:order)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Shared
|
|
3
|
-
class Paginate
|
|
4
|
-
def initialize(collection, params)
|
|
5
|
-
Spree::Deprecation.warn('Spree::Shared::Paginate is deprecated and will be removed in Spree 5.5. Please use Kaminari instead.')
|
|
6
|
-
|
|
7
|
-
raise 'Kaminari is not installed. Please add it to your Gemfile.' unless defined?(Kaminari)
|
|
8
|
-
|
|
9
|
-
@collection = collection
|
|
10
|
-
@page = params[:page]
|
|
11
|
-
|
|
12
|
-
per_page_limit = Spree::Api::Config[:api_v2_per_page_limit]
|
|
13
|
-
|
|
14
|
-
@per_page = if params[:per_page].to_i.between?(1, per_page_limit)
|
|
15
|
-
params[:per_page]
|
|
16
|
-
else
|
|
17
|
-
Kaminari.config.default_per_page
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def call
|
|
22
|
-
collection.page(page).per(per_page)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
attr_reader :collection, :page, :per_page
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Filters
|
|
3
|
-
class PricePresenter
|
|
4
|
-
def initialize(amount:, currency:)
|
|
5
|
-
Spree::Deprecation.warn('Spree::Filters::PricePresenter is deprecated and will be removed in Spree 5.5.')
|
|
6
|
-
@amount = amount.to_i
|
|
7
|
-
@currency = currency
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def to_i
|
|
11
|
-
amount
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def to_s
|
|
15
|
-
Spree::Money.new(amount, currency: currency, no_cents_if_whole: true).to_s
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
attr_reader :amount, :currency
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|