spree_core 5.4.3 → 5.5.0.rc2
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 +60 -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 +7 -3
- 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 +45 -3
- data/app/models/spree/exports/coupon_codes.rb +4 -0
- data/app/models/spree/exports/newsletter_subscribers.rb +4 -0
- data/app/models/spree/exports/product_translations.rb +4 -0
- 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 +83 -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 +28 -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/migrate/20260612000001_change_spree_user_identities_info_to_jsonb.rb +13 -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 +17 -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/generators/spree/subscriber/subscriber_generator.rb +116 -0
- data/lib/generators/spree/subscriber/templates/subscriber.rb.tt +17 -0
- data/lib/generators/spree/subscriber/templates/subscriber_spec.rb.tt +9 -0
- 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/cli.rake +2 -1
- 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 +87 -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
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.rc2
|
|
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-15 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,27 @@ 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/migrate/20260612000001_change_spree_user_identities_info_to_jsonb.rb
|
|
1569
|
+
- db/sample_data/channels.rb
|
|
1520
1570
|
- db/sample_data/customers.csv
|
|
1521
1571
|
- db/sample_data/markets.rb
|
|
1522
1572
|
- db/sample_data/metafield_definitions.rb
|
|
@@ -1530,6 +1580,15 @@ files:
|
|
|
1530
1580
|
- db/seeds.rb
|
|
1531
1581
|
- lib/friendly_id/history_decorator.rb
|
|
1532
1582
|
- lib/friendly_id/paranoia.rb
|
|
1583
|
+
- lib/generators/spree/api_resource/api_resource_generator.rb
|
|
1584
|
+
- lib/generators/spree/api_resource/templates/admin_controller.rb.tt
|
|
1585
|
+
- lib/generators/spree/api_resource/templates/admin_controller_spec.rb.tt
|
|
1586
|
+
- lib/generators/spree/api_resource/templates/admin_serializer.rb.tt
|
|
1587
|
+
- lib/generators/spree/api_resource/templates/factory.rb.tt
|
|
1588
|
+
- lib/generators/spree/api_resource/templates/store_aliased_serializer.rb.tt
|
|
1589
|
+
- lib/generators/spree/api_resource/templates/store_controller.rb.tt
|
|
1590
|
+
- lib/generators/spree/api_resource/templates/store_controller_spec.rb.tt
|
|
1591
|
+
- lib/generators/spree/api_resource/templates/store_serializer.rb.tt
|
|
1533
1592
|
- lib/generators/spree/authentication/custom/custom_generator.rb
|
|
1534
1593
|
- lib/generators/spree/authentication/custom/templates/authentication_helpers.rb.tt
|
|
1535
1594
|
- lib/generators/spree/authentication/devise/devise_generator.rb
|
|
@@ -1537,6 +1596,8 @@ files:
|
|
|
1537
1596
|
- lib/generators/spree/authentication/dummy/dummy_generator.rb
|
|
1538
1597
|
- lib/generators/spree/authentication/dummy/templates/authentication_helpers.rb.tt
|
|
1539
1598
|
- lib/generators/spree/authentication/dummy/templates/create_spree_admin_users.rb.tt
|
|
1599
|
+
- lib/generators/spree/controller_decorator/controller_decorator_generator.rb
|
|
1600
|
+
- lib/generators/spree/controller_decorator/templates/controller_decorator.rb.tt
|
|
1540
1601
|
- lib/generators/spree/dummy/dummy_generator.rb
|
|
1541
1602
|
- lib/generators/spree/dummy/templates/app/assets/config/manifest.js
|
|
1542
1603
|
- lib/generators/spree/dummy/templates/rails/application.rb
|
|
@@ -1548,16 +1609,19 @@ files:
|
|
|
1548
1609
|
- lib/generators/spree/dummy_model/templates/migration.rb.tt
|
|
1549
1610
|
- lib/generators/spree/dummy_model/templates/model.rb.tt
|
|
1550
1611
|
- lib/generators/spree/model/model_generator.rb
|
|
1612
|
+
- lib/generators/spree/model/templates/create_table_migration.rb.tt
|
|
1551
1613
|
- lib/generators/spree/model/templates/model.rb.tt
|
|
1552
1614
|
- lib/generators/spree/model_decorator/model_decorator_generator.rb
|
|
1553
1615
|
- lib/generators/spree/model_decorator/templates/model_decorator.rb.tt
|
|
1616
|
+
- lib/generators/spree/subscriber/subscriber_generator.rb
|
|
1617
|
+
- lib/generators/spree/subscriber/templates/subscriber.rb.tt
|
|
1618
|
+
- lib/generators/spree/subscriber/templates/subscriber_spec.rb.tt
|
|
1554
1619
|
- lib/mobility/plugins/store_based_fallbacks.rb
|
|
1555
1620
|
- lib/spree/analytics.rb
|
|
1556
1621
|
- lib/spree/core.rb
|
|
1557
1622
|
- lib/spree/core/components.rb
|
|
1558
1623
|
- lib/spree/core/configuration.rb
|
|
1559
1624
|
- lib/spree/core/controller_helpers/auth.rb
|
|
1560
|
-
- lib/spree/core/controller_helpers/common.rb
|
|
1561
1625
|
- lib/spree/core/controller_helpers/currency.rb
|
|
1562
1626
|
- lib/spree/core/controller_helpers/locale.rb
|
|
1563
1627
|
- lib/spree/core/controller_helpers/order.rb
|
|
@@ -1571,6 +1635,7 @@ files:
|
|
|
1571
1635
|
- lib/spree/core/partials.rb
|
|
1572
1636
|
- lib/spree/core/permission_configuration.rb
|
|
1573
1637
|
- lib/spree/core/preferences/configuration.rb
|
|
1638
|
+
- lib/spree/core/preferences/masking.rb
|
|
1574
1639
|
- lib/spree/core/preferences/preferable.rb
|
|
1575
1640
|
- lib/spree/core/preferences/preferable_class_methods.rb
|
|
1576
1641
|
- lib/spree/core/preferences/runtime_configuration.rb
|
|
@@ -1580,9 +1645,7 @@ files:
|
|
|
1580
1645
|
- lib/spree/core/pricing/resolver.rb
|
|
1581
1646
|
- lib/spree/core/ransack_configuration.rb
|
|
1582
1647
|
- lib/spree/core/routes.rb
|
|
1583
|
-
- lib/spree/core/token_generator.rb
|
|
1584
1648
|
- lib/spree/core/version.rb
|
|
1585
|
-
- lib/spree/database_type_utilities.rb
|
|
1586
1649
|
- lib/spree/events.rb
|
|
1587
1650
|
- lib/spree/events/adapters/active_support_notifications.rb
|
|
1588
1651
|
- lib/spree/events/adapters/base.rb
|
|
@@ -1595,7 +1658,6 @@ files:
|
|
|
1595
1658
|
- lib/spree/service_module.rb
|
|
1596
1659
|
- lib/spree/testing_support/ability_helpers.rb
|
|
1597
1660
|
- lib/spree/testing_support/authorization_helpers.rb
|
|
1598
|
-
- lib/spree/testing_support/bar_ability.rb
|
|
1599
1661
|
- lib/spree/testing_support/caching.rb
|
|
1600
1662
|
- lib/spree/testing_support/capybara_config.rb
|
|
1601
1663
|
- lib/spree/testing_support/capybara_ext.rb
|
|
@@ -1609,6 +1671,7 @@ files:
|
|
|
1609
1671
|
- lib/spree/testing_support/factories/api_key_factory.rb
|
|
1610
1672
|
- lib/spree/testing_support/factories/asset_factory.rb
|
|
1611
1673
|
- lib/spree/testing_support/factories/calculator_factory.rb
|
|
1674
|
+
- lib/spree/testing_support/factories/channel_factory.rb
|
|
1612
1675
|
- lib/spree/testing_support/factories/classification_factory.rb
|
|
1613
1676
|
- lib/spree/testing_support/factories/country_factory.rb
|
|
1614
1677
|
- lib/spree/testing_support/factories/coupon_code_factory.rb
|
|
@@ -1653,12 +1716,14 @@ files:
|
|
|
1653
1716
|
- lib/spree/testing_support/factories/price_rule_factory.rb
|
|
1654
1717
|
- lib/spree/testing_support/factories/product_factory.rb
|
|
1655
1718
|
- lib/spree/testing_support/factories/product_option_type_factory.rb
|
|
1719
|
+
- lib/spree/testing_support/factories/product_publication_factory.rb
|
|
1656
1720
|
- lib/spree/testing_support/factories/product_translation_factory.rb
|
|
1657
1721
|
- lib/spree/testing_support/factories/promotion_action_factory.rb
|
|
1658
1722
|
- lib/spree/testing_support/factories/promotion_category_factory.rb
|
|
1659
1723
|
- lib/spree/testing_support/factories/promotion_factory.rb
|
|
1660
1724
|
- lib/spree/testing_support/factories/promotion_rule_factory.rb
|
|
1661
1725
|
- lib/spree/testing_support/factories/prototype_factory.rb
|
|
1726
|
+
- lib/spree/testing_support/factories/refresh_token_factory.rb
|
|
1662
1727
|
- lib/spree/testing_support/factories/refund_factory.rb
|
|
1663
1728
|
- lib/spree/testing_support/factories/reimbursement_credit_factory.rb
|
|
1664
1729
|
- lib/spree/testing_support/factories/reimbursement_factory.rb
|
|
@@ -1678,13 +1743,13 @@ files:
|
|
|
1678
1743
|
- lib/spree/testing_support/factories/stock_item_factory.rb
|
|
1679
1744
|
- lib/spree/testing_support/factories/stock_location_factory.rb
|
|
1680
1745
|
- lib/spree/testing_support/factories/stock_movement_factory.rb
|
|
1746
|
+
- lib/spree/testing_support/factories/stock_reservation_factory.rb
|
|
1681
1747
|
- lib/spree/testing_support/factories/stock_transfer_factory.rb
|
|
1682
1748
|
- lib/spree/testing_support/factories/store_credit_category_factory.rb
|
|
1683
1749
|
- lib/spree/testing_support/factories/store_credit_event_factory.rb
|
|
1684
1750
|
- lib/spree/testing_support/factories/store_credit_factory.rb
|
|
1685
1751
|
- lib/spree/testing_support/factories/store_credit_type_factory.rb
|
|
1686
1752
|
- lib/spree/testing_support/factories/store_factory.rb
|
|
1687
|
-
- lib/spree/testing_support/factories/store_product_factory.rb
|
|
1688
1753
|
- lib/spree/testing_support/factories/tax_category_factory.rb
|
|
1689
1754
|
- lib/spree/testing_support/factories/tax_rate_factory.rb
|
|
1690
1755
|
- lib/spree/testing_support/factories/taxon_factory.rb
|
|
@@ -1713,8 +1778,10 @@ files:
|
|
|
1713
1778
|
- lib/spree/testing_support/store.rb
|
|
1714
1779
|
- lib/spree/testing_support/url_helpers.rb
|
|
1715
1780
|
- lib/spree/translation_migrations.rb
|
|
1781
|
+
- lib/spree/upgrades/5_4_to_5_5/manifest.yml
|
|
1716
1782
|
- lib/spree/webhooks.rb
|
|
1717
1783
|
- lib/spree_core.rb
|
|
1784
|
+
- lib/tasks/channels.rake
|
|
1718
1785
|
- lib/tasks/cli.rake
|
|
1719
1786
|
- lib/tasks/core.rake
|
|
1720
1787
|
- lib/tasks/dependencies.rake
|
|
@@ -1722,9 +1789,11 @@ files:
|
|
|
1722
1789
|
- lib/tasks/media.rake
|
|
1723
1790
|
- lib/tasks/price_history.rake
|
|
1724
1791
|
- lib/tasks/products.rake
|
|
1792
|
+
- lib/tasks/publications.rake
|
|
1725
1793
|
- lib/tasks/sample_data.rake
|
|
1726
1794
|
- lib/tasks/search.rake
|
|
1727
1795
|
- lib/tasks/taxons.rake
|
|
1796
|
+
- lib/tasks/upgrade.rake
|
|
1728
1797
|
- lib/tasks/variants.rake
|
|
1729
1798
|
- spec/fixtures/favicon.ico
|
|
1730
1799
|
- spec/fixtures/files/customers_import.csv
|
|
@@ -1747,9 +1816,9 @@ licenses:
|
|
|
1747
1816
|
- BSD-3-Clause
|
|
1748
1817
|
metadata:
|
|
1749
1818
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
1750
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.
|
|
1819
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.5.0.rc2
|
|
1751
1820
|
documentation_uri: https://docs.spreecommerce.org/
|
|
1752
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.
|
|
1821
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.5.0.rc2
|
|
1753
1822
|
post_install_message:
|
|
1754
1823
|
rdoc_options: []
|
|
1755
1824
|
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
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Filters
|
|
3
|
-
class PriceRangePresenter
|
|
4
|
-
def self.from_param(param, currency:)
|
|
5
|
-
prices = param.split('-')
|
|
6
|
-
|
|
7
|
-
new(
|
|
8
|
-
min_price: PricePresenter.new(amount: prices.first, currency: currency),
|
|
9
|
-
max_price: PricePresenter.new(amount: prices.last, currency: currency)
|
|
10
|
-
)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def initialize(min_price:, max_price:)
|
|
14
|
-
Spree::Deprecation.warn('Spree::Filters::PriceRangePresenter is deprecated and will be removed in Spree 5.5.')
|
|
15
|
-
@min_price = min_price
|
|
16
|
-
@max_price = max_price
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
attr_reader :min_price, :max_price
|
|
20
|
-
|
|
21
|
-
def to_param
|
|
22
|
-
"#{min_price.to_i}-#{max_price.to_i}"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def to_s
|
|
26
|
-
"#{min_price} - #{max_price}"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Filters
|
|
3
|
-
class QuantifiedPriceRangePresenter
|
|
4
|
-
ALLOWED_QUANTIFIERS = [
|
|
5
|
-
:less_than,
|
|
6
|
-
:more_than
|
|
7
|
-
].freeze
|
|
8
|
-
|
|
9
|
-
def initialize(price:, quantifier:)
|
|
10
|
-
Spree::Deprecation.warn('Spree::Filters::QuantifiedPriceRangePresenter is deprecated and will be removed in Spree 5.5.')
|
|
11
|
-
if ALLOWED_QUANTIFIERS.exclude?(quantifier.to_sym)
|
|
12
|
-
raise ArgumentError, "quantifier must be one of: #{ALLOWED_QUANTIFIERS.join(', ')}"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
@price = price
|
|
16
|
-
@quantifier = quantifier.to_sym
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def to_param
|
|
20
|
-
case quantifier
|
|
21
|
-
when :less_than
|
|
22
|
-
less_than_param
|
|
23
|
-
when :more_than
|
|
24
|
-
more_than_param
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def to_s
|
|
29
|
-
"#{I18n.t("activerecord.attributes.spree/product.#{quantifier}")} #{price}"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
private
|
|
33
|
-
|
|
34
|
-
attr_reader :price, :quantifier
|
|
35
|
-
|
|
36
|
-
def less_than_param
|
|
37
|
-
"0-#{price.to_i}"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def more_than_param
|
|
41
|
-
"#{price.to_i}-Infinity"
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
class ProductSummaryPresenter
|
|
3
|
-
include Rails.application.routes.url_helpers
|
|
4
|
-
|
|
5
|
-
def initialize(product)
|
|
6
|
-
Spree::Deprecation.warn('Spree::ProductSummaryPresenter is deprecated and will be removed in Spree 5.5.')
|
|
7
|
-
@product = product
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def call
|
|
11
|
-
{
|
|
12
|
-
name: @product.name,
|
|
13
|
-
images: images
|
|
14
|
-
}
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
def images
|
|
20
|
-
@product.images.map do |image|
|
|
21
|
-
{
|
|
22
|
-
url_product: rails_representation_url(image.url(:product), only_path: true)
|
|
23
|
-
}
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Variants
|
|
3
|
-
class OptionsPresenter
|
|
4
|
-
WORDS_CONNECTOR = ', '.freeze
|
|
5
|
-
|
|
6
|
-
attr_reader :variant
|
|
7
|
-
|
|
8
|
-
delegate :option_values, to: :variant
|
|
9
|
-
|
|
10
|
-
def initialize(variant)
|
|
11
|
-
Spree::Deprecation.warn('Spree::Variants::OptionsPresenter is deprecated and will be removed in Spree 5.5. Please use Spree::Variant#options_text instead.')
|
|
12
|
-
@variant = variant
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def to_sentence
|
|
16
|
-
options = option_values
|
|
17
|
-
options = sort_options(options)
|
|
18
|
-
options = present_options(options)
|
|
19
|
-
|
|
20
|
-
join_options(options)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def to_hash
|
|
24
|
-
options = option_values
|
|
25
|
-
options = sort_options(options)
|
|
26
|
-
options = present_options_as_hash(options)
|
|
27
|
-
|
|
28
|
-
join_hash_options(options)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def sort_options(options)
|
|
34
|
-
if options.first&.association(:option_type)&.loaded?
|
|
35
|
-
options.sort_by { |o| o.option_type.position }
|
|
36
|
-
else
|
|
37
|
-
options.includes(:option_type).sort_by { |o| o.option_type.position }
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def present_options(options)
|
|
42
|
-
options.map do |ov|
|
|
43
|
-
method = "present_#{ov.option_type.name}_option"
|
|
44
|
-
|
|
45
|
-
respond_to?(method, true) ? send(method, ov) : present_option(ov)
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def present_color_option(option)
|
|
50
|
-
"#{option.option_type.presentation}: #{option.presentation}"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def present_option(option)
|
|
54
|
-
"#{option.option_type.presentation}: #{option.presentation}"
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def join_options(options)
|
|
58
|
-
options.to_sentence(words_connector: WORDS_CONNECTOR, two_words_connector: WORDS_CONNECTOR)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def present_options_as_hash(options)
|
|
62
|
-
options.map do |ov|
|
|
63
|
-
method = "present_#{ov.option_type.name}_option_as_hash"
|
|
64
|
-
|
|
65
|
-
respond_to?(method, true) ? send(method, ov) : present_option_as_hash(ov)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def present_option_as_hash(option)
|
|
70
|
-
{}.tap do |hash|
|
|
71
|
-
hash.store(option.option_type.presentation.downcase, option.presentation)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def join_hash_options(options)
|
|
76
|
-
return {} if options.empty?
|
|
77
|
-
|
|
78
|
-
options.inject(:merge).symbolize_keys
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Classifications
|
|
3
|
-
# @deprecated This service is deprecated and will be removed in Spree 5.5.
|
|
4
|
-
class Reposition
|
|
5
|
-
prepend Spree::ServiceModule::Base
|
|
6
|
-
|
|
7
|
-
def call(classification:, position:)
|
|
8
|
-
Spree::Deprecation.warn(
|
|
9
|
-
"#{self.class.name} is deprecated and will be removed in Spree 5.5.",
|
|
10
|
-
caller_locations(2)
|
|
11
|
-
)
|
|
12
|
-
if position.is_a?(String) && !position.match(/^\d+$/)
|
|
13
|
-
return failure(nil, I18n.t('errors.messages.not_a_number'))
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Because position we get back is 0-indexed.
|
|
17
|
-
# acts_as_list is 1-indexed.
|
|
18
|
-
classification.insert_at(position.to_i + 1)
|
|
19
|
-
success(classification)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|