spree_core 5.4.3 → 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 +2 -1
- 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/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 +28 -5
- 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/export.rb +30 -3
- 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 +6 -1
- data/app/models/spree/market.rb +32 -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_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/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/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/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/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/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/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/product_metrics_subscriber.rb +3 -7
- data/app/views/spree/invitation_mailer/invitation_email.html.erb +4 -0
- data/config/locales/en.yml +27 -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/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/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 +83 -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
|
|
@@ -1081,10 +1103,13 @@ files:
|
|
|
1081
1103
|
- app/models/spree/price_rules/volume_rule.rb
|
|
1082
1104
|
- app/models/spree/price_rules/zone_rule.rb
|
|
1083
1105
|
- app/models/spree/product.rb
|
|
1106
|
+
- app/models/spree/product/channels.rb
|
|
1107
|
+
- app/models/spree/product/legacy_multi_store_support.rb
|
|
1084
1108
|
- app/models/spree/product/slugs.rb
|
|
1085
1109
|
- app/models/spree/product/webhooks.rb
|
|
1086
1110
|
- app/models/spree/product_option_type.rb
|
|
1087
1111
|
- app/models/spree/product_promotion_rule.rb
|
|
1112
|
+
- app/models/spree/product_publication.rb
|
|
1088
1113
|
- app/models/spree/promotion.rb
|
|
1089
1114
|
- app/models/spree/promotion/actions/create_adjustment.rb
|
|
1090
1115
|
- app/models/spree/promotion/actions/create_item_adjustments.rb
|
|
@@ -1189,6 +1214,8 @@ files:
|
|
|
1189
1214
|
- app/models/spree/stock_movement.rb
|
|
1190
1215
|
- app/models/spree/stock_movement/custom_events.rb
|
|
1191
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
|
|
1192
1219
|
- app/models/spree/stock_transfer.rb
|
|
1193
1220
|
- app/models/spree/store.rb
|
|
1194
1221
|
- app/models/spree/store_credit.rb
|
|
@@ -1210,13 +1237,13 @@ files:
|
|
|
1210
1237
|
- app/models/spree/user_identity.rb
|
|
1211
1238
|
- app/models/spree/variant.rb
|
|
1212
1239
|
- app/models/spree/variant/webhooks.rb
|
|
1240
|
+
- app/models/spree/variant_media.rb
|
|
1213
1241
|
- app/models/spree/webhook_delivery.rb
|
|
1214
1242
|
- app/models/spree/webhook_endpoint.rb
|
|
1215
1243
|
- app/models/spree/wished_item.rb
|
|
1216
1244
|
- app/models/spree/wishlist.rb
|
|
1217
1245
|
- app/models/spree/zone.rb
|
|
1218
1246
|
- app/models/spree/zone_member.rb
|
|
1219
|
-
- app/paginators/spree/shared/paginate.rb
|
|
1220
1247
|
- app/presenters/spree/csv/coupon_code_presenter.rb
|
|
1221
1248
|
- app/presenters/spree/csv/customer_presenter.rb
|
|
1222
1249
|
- app/presenters/spree/csv/formula_sanitizer.rb
|
|
@@ -1229,14 +1256,9 @@ files:
|
|
|
1229
1256
|
- app/presenters/spree/data_feeds/base_presenter.rb
|
|
1230
1257
|
- app/presenters/spree/data_feeds/google_presenter.rb
|
|
1231
1258
|
- app/presenters/spree/filters/options_presenter.rb
|
|
1232
|
-
- app/presenters/spree/filters/price_presenter.rb
|
|
1233
|
-
- app/presenters/spree/filters/price_range_presenter.rb
|
|
1234
|
-
- app/presenters/spree/filters/quantified_price_range_presenter.rb
|
|
1235
|
-
- app/presenters/spree/product_summary_presenter.rb
|
|
1236
1259
|
- app/presenters/spree/search_provider/product_presenter.rb
|
|
1237
1260
|
- app/presenters/spree/variant_presenter.rb
|
|
1238
1261
|
- app/presenters/spree/variants/option_types_presenter.rb
|
|
1239
|
-
- app/presenters/spree/variants/options_presenter.rb
|
|
1240
1262
|
- app/services/spree/account/addresses/create.rb
|
|
1241
1263
|
- app/services/spree/account/addresses/update.rb
|
|
1242
1264
|
- app/services/spree/account/create.rb
|
|
@@ -1269,7 +1291,6 @@ files:
|
|
|
1269
1291
|
- app/services/spree/checkout/remove_store_credit.rb
|
|
1270
1292
|
- app/services/spree/checkout/select_shipping_method.rb
|
|
1271
1293
|
- app/services/spree/checkout/update.rb
|
|
1272
|
-
- app/services/spree/classifications/reposition.rb
|
|
1273
1294
|
- app/services/spree/compare_line_items.rb
|
|
1274
1295
|
- app/services/spree/country_to_timezone.rb
|
|
1275
1296
|
- app/services/spree/coupon_codes/bulk_generate.rb
|
|
@@ -1288,14 +1309,21 @@ files:
|
|
|
1288
1309
|
- app/services/spree/line_items/helper.rb
|
|
1289
1310
|
- app/services/spree/line_items/update.rb
|
|
1290
1311
|
- app/services/spree/locales/set_fallback_locale_for_store.rb
|
|
1312
|
+
- app/services/spree/newsletter/link_user.rb
|
|
1291
1313
|
- app/services/spree/newsletter/subscribe.rb
|
|
1292
1314
|
- app/services/spree/newsletter/verify.rb
|
|
1293
1315
|
- app/services/spree/orders/approve.rb
|
|
1316
|
+
- app/services/spree/orders/build_shipments.rb
|
|
1294
1317
|
- app/services/spree/orders/cancel.rb
|
|
1318
|
+
- app/services/spree/orders/complete.rb
|
|
1319
|
+
- app/services/spree/orders/create.rb
|
|
1295
1320
|
- app/services/spree/orders/create_user_account.rb
|
|
1321
|
+
- app/services/spree/orders/update.rb
|
|
1296
1322
|
- app/services/spree/orders/update_contact_information.rb
|
|
1323
|
+
- app/services/spree/orders/upsert_items.rb
|
|
1297
1324
|
- app/services/spree/payments/create.rb
|
|
1298
1325
|
- app/services/spree/payments/handle_webhook.rb
|
|
1326
|
+
- app/services/spree/prices/bulk_upsert.rb
|
|
1299
1327
|
- app/services/spree/products/auto_match_taxons.rb
|
|
1300
1328
|
- app/services/spree/products/duplicator.rb
|
|
1301
1329
|
- app/services/spree/products/prepare_nested_attributes.rb
|
|
@@ -1325,6 +1353,9 @@ files:
|
|
|
1325
1353
|
- app/services/spree/shipments/remove_item.rb
|
|
1326
1354
|
- app/services/spree/shipments/update.rb
|
|
1327
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
|
|
1328
1359
|
- app/services/spree/stores/settings_defaults_by_country.rb
|
|
1329
1360
|
- app/services/spree/tags/bulk_add.rb
|
|
1330
1361
|
- app/services/spree/tags/bulk_remove.rb
|
|
@@ -1337,7 +1368,6 @@ files:
|
|
|
1337
1368
|
- app/services/spree/wallet/create_payment_source.rb
|
|
1338
1369
|
- app/sorters/spree/base_sorter.rb
|
|
1339
1370
|
- app/sorters/spree/classifications/sort.rb
|
|
1340
|
-
- app/sorters/spree/orders/sort.rb
|
|
1341
1371
|
- app/sorters/spree/products/sort.rb
|
|
1342
1372
|
- app/subscribers/spree/event_log_subscriber.rb
|
|
1343
1373
|
- app/subscribers/spree/export_subscriber.rb
|
|
@@ -1516,7 +1546,26 @@ files:
|
|
|
1516
1546
|
- db/migrate/20260408000001_add_unique_index_to_spree_zone_members.rb
|
|
1517
1547
|
- db/migrate/20260424000001_add_unique_index_to_spree_payments_response_code.rb
|
|
1518
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
|
|
1519
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
|
|
1520
1569
|
- db/sample_data/customers.csv
|
|
1521
1570
|
- db/sample_data/markets.rb
|
|
1522
1571
|
- db/sample_data/metafield_definitions.rb
|
|
@@ -1530,6 +1579,15 @@ files:
|
|
|
1530
1579
|
- db/seeds.rb
|
|
1531
1580
|
- lib/friendly_id/history_decorator.rb
|
|
1532
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
|
|
1533
1591
|
- lib/generators/spree/authentication/custom/custom_generator.rb
|
|
1534
1592
|
- lib/generators/spree/authentication/custom/templates/authentication_helpers.rb.tt
|
|
1535
1593
|
- lib/generators/spree/authentication/devise/devise_generator.rb
|
|
@@ -1537,6 +1595,8 @@ files:
|
|
|
1537
1595
|
- lib/generators/spree/authentication/dummy/dummy_generator.rb
|
|
1538
1596
|
- lib/generators/spree/authentication/dummy/templates/authentication_helpers.rb.tt
|
|
1539
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
|
|
1540
1600
|
- lib/generators/spree/dummy/dummy_generator.rb
|
|
1541
1601
|
- lib/generators/spree/dummy/templates/app/assets/config/manifest.js
|
|
1542
1602
|
- lib/generators/spree/dummy/templates/rails/application.rb
|
|
@@ -1548,6 +1608,7 @@ files:
|
|
|
1548
1608
|
- lib/generators/spree/dummy_model/templates/migration.rb.tt
|
|
1549
1609
|
- lib/generators/spree/dummy_model/templates/model.rb.tt
|
|
1550
1610
|
- lib/generators/spree/model/model_generator.rb
|
|
1611
|
+
- lib/generators/spree/model/templates/create_table_migration.rb.tt
|
|
1551
1612
|
- lib/generators/spree/model/templates/model.rb.tt
|
|
1552
1613
|
- lib/generators/spree/model_decorator/model_decorator_generator.rb
|
|
1553
1614
|
- lib/generators/spree/model_decorator/templates/model_decorator.rb.tt
|
|
@@ -1557,7 +1618,6 @@ files:
|
|
|
1557
1618
|
- lib/spree/core/components.rb
|
|
1558
1619
|
- lib/spree/core/configuration.rb
|
|
1559
1620
|
- lib/spree/core/controller_helpers/auth.rb
|
|
1560
|
-
- lib/spree/core/controller_helpers/common.rb
|
|
1561
1621
|
- lib/spree/core/controller_helpers/currency.rb
|
|
1562
1622
|
- lib/spree/core/controller_helpers/locale.rb
|
|
1563
1623
|
- lib/spree/core/controller_helpers/order.rb
|
|
@@ -1571,6 +1631,7 @@ files:
|
|
|
1571
1631
|
- lib/spree/core/partials.rb
|
|
1572
1632
|
- lib/spree/core/permission_configuration.rb
|
|
1573
1633
|
- lib/spree/core/preferences/configuration.rb
|
|
1634
|
+
- lib/spree/core/preferences/masking.rb
|
|
1574
1635
|
- lib/spree/core/preferences/preferable.rb
|
|
1575
1636
|
- lib/spree/core/preferences/preferable_class_methods.rb
|
|
1576
1637
|
- lib/spree/core/preferences/runtime_configuration.rb
|
|
@@ -1580,9 +1641,7 @@ files:
|
|
|
1580
1641
|
- lib/spree/core/pricing/resolver.rb
|
|
1581
1642
|
- lib/spree/core/ransack_configuration.rb
|
|
1582
1643
|
- lib/spree/core/routes.rb
|
|
1583
|
-
- lib/spree/core/token_generator.rb
|
|
1584
1644
|
- lib/spree/core/version.rb
|
|
1585
|
-
- lib/spree/database_type_utilities.rb
|
|
1586
1645
|
- lib/spree/events.rb
|
|
1587
1646
|
- lib/spree/events/adapters/active_support_notifications.rb
|
|
1588
1647
|
- lib/spree/events/adapters/base.rb
|
|
@@ -1595,7 +1654,6 @@ files:
|
|
|
1595
1654
|
- lib/spree/service_module.rb
|
|
1596
1655
|
- lib/spree/testing_support/ability_helpers.rb
|
|
1597
1656
|
- lib/spree/testing_support/authorization_helpers.rb
|
|
1598
|
-
- lib/spree/testing_support/bar_ability.rb
|
|
1599
1657
|
- lib/spree/testing_support/caching.rb
|
|
1600
1658
|
- lib/spree/testing_support/capybara_config.rb
|
|
1601
1659
|
- lib/spree/testing_support/capybara_ext.rb
|
|
@@ -1609,6 +1667,7 @@ files:
|
|
|
1609
1667
|
- lib/spree/testing_support/factories/api_key_factory.rb
|
|
1610
1668
|
- lib/spree/testing_support/factories/asset_factory.rb
|
|
1611
1669
|
- lib/spree/testing_support/factories/calculator_factory.rb
|
|
1670
|
+
- lib/spree/testing_support/factories/channel_factory.rb
|
|
1612
1671
|
- lib/spree/testing_support/factories/classification_factory.rb
|
|
1613
1672
|
- lib/spree/testing_support/factories/country_factory.rb
|
|
1614
1673
|
- lib/spree/testing_support/factories/coupon_code_factory.rb
|
|
@@ -1653,12 +1712,14 @@ files:
|
|
|
1653
1712
|
- lib/spree/testing_support/factories/price_rule_factory.rb
|
|
1654
1713
|
- lib/spree/testing_support/factories/product_factory.rb
|
|
1655
1714
|
- lib/spree/testing_support/factories/product_option_type_factory.rb
|
|
1715
|
+
- lib/spree/testing_support/factories/product_publication_factory.rb
|
|
1656
1716
|
- lib/spree/testing_support/factories/product_translation_factory.rb
|
|
1657
1717
|
- lib/spree/testing_support/factories/promotion_action_factory.rb
|
|
1658
1718
|
- lib/spree/testing_support/factories/promotion_category_factory.rb
|
|
1659
1719
|
- lib/spree/testing_support/factories/promotion_factory.rb
|
|
1660
1720
|
- lib/spree/testing_support/factories/promotion_rule_factory.rb
|
|
1661
1721
|
- lib/spree/testing_support/factories/prototype_factory.rb
|
|
1722
|
+
- lib/spree/testing_support/factories/refresh_token_factory.rb
|
|
1662
1723
|
- lib/spree/testing_support/factories/refund_factory.rb
|
|
1663
1724
|
- lib/spree/testing_support/factories/reimbursement_credit_factory.rb
|
|
1664
1725
|
- lib/spree/testing_support/factories/reimbursement_factory.rb
|
|
@@ -1678,13 +1739,13 @@ files:
|
|
|
1678
1739
|
- lib/spree/testing_support/factories/stock_item_factory.rb
|
|
1679
1740
|
- lib/spree/testing_support/factories/stock_location_factory.rb
|
|
1680
1741
|
- lib/spree/testing_support/factories/stock_movement_factory.rb
|
|
1742
|
+
- lib/spree/testing_support/factories/stock_reservation_factory.rb
|
|
1681
1743
|
- lib/spree/testing_support/factories/stock_transfer_factory.rb
|
|
1682
1744
|
- lib/spree/testing_support/factories/store_credit_category_factory.rb
|
|
1683
1745
|
- lib/spree/testing_support/factories/store_credit_event_factory.rb
|
|
1684
1746
|
- lib/spree/testing_support/factories/store_credit_factory.rb
|
|
1685
1747
|
- lib/spree/testing_support/factories/store_credit_type_factory.rb
|
|
1686
1748
|
- lib/spree/testing_support/factories/store_factory.rb
|
|
1687
|
-
- lib/spree/testing_support/factories/store_product_factory.rb
|
|
1688
1749
|
- lib/spree/testing_support/factories/tax_category_factory.rb
|
|
1689
1750
|
- lib/spree/testing_support/factories/tax_rate_factory.rb
|
|
1690
1751
|
- lib/spree/testing_support/factories/taxon_factory.rb
|
|
@@ -1713,8 +1774,10 @@ files:
|
|
|
1713
1774
|
- lib/spree/testing_support/store.rb
|
|
1714
1775
|
- lib/spree/testing_support/url_helpers.rb
|
|
1715
1776
|
- lib/spree/translation_migrations.rb
|
|
1777
|
+
- lib/spree/upgrades/5_4_to_5_5/manifest.yml
|
|
1716
1778
|
- lib/spree/webhooks.rb
|
|
1717
1779
|
- lib/spree_core.rb
|
|
1780
|
+
- lib/tasks/channels.rake
|
|
1718
1781
|
- lib/tasks/cli.rake
|
|
1719
1782
|
- lib/tasks/core.rake
|
|
1720
1783
|
- lib/tasks/dependencies.rake
|
|
@@ -1722,9 +1785,11 @@ files:
|
|
|
1722
1785
|
- lib/tasks/media.rake
|
|
1723
1786
|
- lib/tasks/price_history.rake
|
|
1724
1787
|
- lib/tasks/products.rake
|
|
1788
|
+
- lib/tasks/publications.rake
|
|
1725
1789
|
- lib/tasks/sample_data.rake
|
|
1726
1790
|
- lib/tasks/search.rake
|
|
1727
1791
|
- lib/tasks/taxons.rake
|
|
1792
|
+
- lib/tasks/upgrade.rake
|
|
1728
1793
|
- lib/tasks/variants.rake
|
|
1729
1794
|
- spec/fixtures/favicon.ico
|
|
1730
1795
|
- spec/fixtures/files/customers_import.csv
|
|
@@ -1747,9 +1812,9 @@ licenses:
|
|
|
1747
1812
|
- BSD-3-Clause
|
|
1748
1813
|
metadata:
|
|
1749
1814
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
1750
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.
|
|
1815
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.5.0.rc1
|
|
1751
1816
|
documentation_uri: https://docs.spreecommerce.org/
|
|
1752
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.
|
|
1817
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.5.0.rc1
|
|
1753
1818
|
post_install_message:
|
|
1754
1819
|
rdoc_options: []
|
|
1755
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
|