spree_core 5.3.6 → 5.4.0.beta
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/finders/spree/orders/find_complete.rb +33 -2
- data/app/finders/spree/stores/find_default.rb +17 -0
- data/app/finders/spree/variants/visible_finder.rb +1 -0
- data/app/helpers/spree/addresses_helper.rb +1 -2
- data/app/helpers/spree/base_helper.rb +5 -4
- data/app/jobs/spree/api_key_touch_job.rb +9 -0
- data/app/jobs/spree/images/save_from_url_job.rb +23 -47
- data/app/models/concerns/spree/admin_user_methods.rb +32 -0
- data/app/models/concerns/spree/number_as_param.rb +5 -3
- data/app/models/concerns/spree/prefixed_id.rb +82 -0
- data/app/models/concerns/spree/product_scopes.rb +33 -18
- data/app/models/concerns/spree/publishable.rb +47 -47
- data/app/models/concerns/spree/{multi_store_resource.rb → store_scoped_resource.rb} +1 -10
- data/app/models/concerns/spree/stores/markets.rb +124 -0
- data/app/models/concerns/spree/user_methods.rb +7 -7
- data/app/models/concerns/spree/user_payment_source.rb +2 -0
- data/app/models/concerns/spree/user_roles.rb +1 -0
- data/app/models/spree/ability.rb +13 -0
- data/app/models/spree/address.rb +30 -0
- data/app/models/spree/adjustment.rb +2 -0
- data/app/models/spree/api_key.rb +47 -0
- data/app/models/spree/asset.rb +2 -0
- data/app/models/spree/authentication/strategies/base_strategy.rb +55 -0
- data/app/models/spree/authentication/strategies/email_password_strategy.rb +47 -0
- data/app/models/spree/base.rb +1 -0
- data/app/models/spree/calculator.rb +2 -0
- data/app/models/spree/country.rb +56 -0
- data/app/models/spree/coupon_code.rb +2 -0
- data/app/models/spree/credit_card.rb +2 -0
- data/app/models/spree/current.rb +9 -4
- data/app/models/spree/customer_group.rb +2 -0
- data/app/models/spree/customer_return.rb +2 -0
- data/app/models/spree/data_feed.rb +2 -0
- data/app/models/spree/digital.rb +2 -0
- data/app/models/spree/digital_link.rb +2 -0
- data/app/models/spree/export.rb +5 -4
- data/app/models/spree/fulfilment_changer.rb +8 -2
- data/app/models/spree/gateway/bogus.rb +60 -0
- data/app/models/spree/gateway_customer.rb +2 -0
- data/app/models/spree/gift_card.rb +2 -0
- data/app/models/spree/gift_card_batch.rb +2 -4
- data/app/models/spree/image.rb +18 -0
- data/app/models/spree/import.rb +5 -3
- data/app/models/spree/import_mapping.rb +2 -0
- data/app/models/spree/import_row.rb +2 -0
- data/app/models/spree/import_schemas/customers.rb +21 -0
- data/app/models/spree/imports/customers.rb +9 -0
- data/app/models/spree/integration.rb +2 -0
- data/app/models/spree/inventory_unit.rb +2 -0
- data/app/models/spree/invitation.rb +6 -6
- data/app/models/spree/legacy_admin_user.rb +31 -0
- data/app/models/spree/legacy_user.rb +19 -1
- data/app/models/spree/line_item.rb +15 -4
- data/app/models/spree/log_entry.rb +2 -0
- data/app/models/spree/market.rb +83 -0
- data/app/models/spree/market_country.rb +25 -0
- data/app/models/spree/metafield.rb +2 -0
- data/app/models/spree/metafield_definition.rb +2 -0
- data/app/models/spree/newsletter_subscriber.rb +2 -0
- data/app/models/spree/option_type.rb +2 -0
- data/app/models/spree/option_value.rb +2 -0
- data/app/models/spree/order/address_book.rb +2 -1
- data/app/models/spree/order.rb +75 -47
- data/app/models/spree/payment.rb +6 -1
- data/app/models/spree/payment_capture_event.rb +2 -0
- data/app/models/spree/payment_method.rb +59 -1
- data/app/models/spree/payment_session.rb +109 -0
- data/app/models/spree/payment_sessions/bogus.rb +4 -0
- data/app/models/spree/payment_setup_session.rb +79 -0
- data/app/models/spree/payment_source.rb +2 -0
- data/app/models/spree/permission_sets/default_customer.rb +19 -0
- data/app/models/spree/policy.rb +2 -0
- data/app/models/spree/post.rb +2 -0
- data/app/models/spree/post_category.rb +2 -0
- data/app/models/spree/price.rb +26 -2
- data/app/models/spree/price_list.rb +2 -0
- data/app/models/spree/price_rule.rb +2 -0
- data/app/models/spree/price_rules/market_rule.rb +19 -0
- data/app/models/spree/product.rb +41 -29
- data/app/models/spree/promotion/rules/country.rb +1 -1
- data/app/models/spree/promotion.rb +3 -1
- data/app/models/spree/promotion_action.rb +2 -0
- data/app/models/spree/promotion_category.rb +2 -0
- data/app/models/spree/promotion_rule.rb +2 -0
- data/app/models/spree/prototype.rb +2 -0
- data/app/models/spree/refund.rb +2 -4
- data/app/models/spree/refund_reason.rb +2 -0
- data/app/models/spree/reimbursement/credit.rb +2 -0
- data/app/models/spree/reimbursement.rb +2 -0
- data/app/models/spree/reimbursement_type.rb +2 -0
- data/app/models/spree/report.rb +3 -1
- data/app/models/spree/return_authorization.rb +2 -0
- data/app/models/spree/return_authorization_reason.rb +2 -0
- data/app/models/spree/return_item.rb +2 -0
- data/app/models/spree/role.rb +2 -0
- data/app/models/spree/shipment.rb +11 -1
- data/app/models/spree/shipping_category.rb +2 -0
- data/app/models/spree/shipping_method.rb +2 -0
- data/app/models/spree/shipping_method_category.rb +2 -0
- data/app/models/spree/shipping_rate.rb +2 -0
- data/app/models/spree/state_change.rb +2 -0
- data/app/models/spree/stock_item.rb +2 -0
- data/app/models/spree/stock_location.rb +2 -0
- data/app/models/spree/stock_movement.rb +2 -0
- data/app/models/spree/stock_transfer.rb +2 -1
- data/app/models/spree/store.rb +110 -179
- data/app/models/spree/store_credit.rb +2 -4
- data/app/models/spree/store_credit_category.rb +2 -0
- data/app/models/spree/store_credit_event.rb +2 -0
- data/app/models/spree/store_credit_type.rb +2 -0
- data/app/models/spree/store_product.rb +2 -0
- data/app/models/spree/tax_category.rb +2 -0
- data/app/models/spree/tax_rate.rb +2 -0
- data/app/models/spree/taxon.rb +4 -1
- data/app/models/spree/taxon_image.rb +8 -0
- data/app/models/spree/taxon_rule.rb +2 -0
- data/app/models/spree/taxonomy.rb +2 -0
- data/app/models/spree/user_identity.rb +81 -0
- data/app/models/spree/variant.rb +13 -3
- data/app/models/spree/webhook_delivery.rb +2 -0
- data/app/models/spree/webhook_endpoint.rb +2 -17
- data/app/models/spree/wished_item.rb +15 -0
- data/app/models/spree/wishlist.rb +2 -8
- data/app/models/spree/zone.rb +2 -6
- data/app/presenters/spree/filters/price_presenter.rb +1 -0
- data/app/presenters/spree/filters/price_range_presenter.rb +1 -0
- data/app/presenters/spree/filters/quantified_price_range_presenter.rb +1 -0
- data/app/presenters/spree/product_summary_presenter.rb +1 -0
- data/app/services/spree/addresses/helper.rb +22 -3
- data/app/services/spree/cart/associate.rb +19 -6
- data/app/services/spree/checkout/select_shipping_method.rb +13 -1
- data/app/services/spree/classifications/reposition.rb +5 -0
- data/app/services/spree/data_feeds/google/required_attributes.rb +8 -3
- data/app/services/spree/gift_cards/apply.rb +4 -5
- data/app/services/spree/imports/row_processors/customer.rb +70 -0
- data/app/services/spree/orders/approve.rb +5 -3
- data/app/services/spree/orders/cancel.rb +9 -4
- data/app/services/spree/products/prepare_nested_attributes.rb +1 -1
- data/app/services/spree/sample_data/import_runner.rb +54 -0
- data/app/services/spree/sample_data/loader.rb +78 -0
- data/app/services/spree/seeds/admin_user.rb +2 -3
- data/app/services/spree/seeds/all.rb +1 -0
- data/app/services/spree/seeds/api_keys.rb +16 -0
- data/app/services/spree/seeds/stores.rb +2 -4
- data/app/sorters/spree/orders/sort.rb +4 -0
- data/app/subscribers/spree/product_metrics_subscriber.rb +4 -4
- data/config/brakeman.ignore +120 -0
- data/config/locales/en.yml +20 -5
- data/db/migrate/20250923141900_create_spree_user_identities.rb +17 -0
- data/db/migrate/20260123000000_create_spree_api_keys.rb +19 -0
- data/db/migrate/20260131000000_add_thumbnail_id_to_spree_variants_and_products.rb +9 -0
- data/db/migrate/20260213000000_create_spree_payment_sessions.rb +27 -0
- data/db/migrate/20260218000000_create_spree_payment_setup_sessions.rb +24 -0
- data/db/migrate/20260220000000_create_spree_markets.rb +29 -0
- data/db/sample_data/customers.csv +21 -0
- data/db/sample_data/metafield_definitions.rb +7 -0
- data/db/sample_data/orders.rb +131 -0
- data/db/sample_data/payment_methods.rb +17 -0
- data/db/sample_data/posts.rb +7 -0
- data/db/sample_data/products.csv +1083 -0
- data/db/sample_data/promotions.rb +8 -0
- data/db/sample_data/shipping_methods.rb +39 -0
- data/lib/generators/spree/authentication/devise/devise_generator.rb +2 -2
- data/lib/generators/spree/authentication/dummy/dummy_generator.rb +54 -0
- data/lib/generators/spree/authentication/dummy/templates/authentication_helpers.rb.tt +52 -0
- data/lib/generators/spree/authentication/dummy/templates/create_spree_admin_users.rb.tt +33 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/spree/core/configuration.rb +1 -1
- data/lib/spree/core/controller_helpers/common.rb +6 -0
- data/lib/spree/core/controller_helpers/currency.rb +5 -0
- data/lib/spree/core/controller_helpers/order.rb +5 -1
- data/lib/spree/core/controller_helpers/store.rb +1 -1
- data/lib/spree/core/dependencies.rb +1 -1
- data/lib/spree/core/engine.rb +17 -4
- data/lib/spree/core/pricing/context.rb +6 -3
- data/lib/spree/core/product_filters.rb +14 -0
- data/lib/spree/core/query_filters/comparable.rb +4 -0
- data/lib/spree/core/query_filters/text.rb +4 -0
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +4 -4
- data/lib/spree/database_type_utilities.rb +7 -0
- data/lib/spree/events.rb +17 -10
- data/lib/spree/money.rb +2 -9
- data/lib/spree/permitted_attributes.rb +19 -7
- data/lib/spree/testing_support/capybara_config.rb +2 -2
- data/lib/spree/testing_support/common_rake.rb +15 -4
- data/lib/spree/testing_support/factories/api_key_factory.rb +19 -0
- data/lib/spree/testing_support/factories/custom_domain_factory.rb +7 -5
- data/lib/spree/testing_support/factories/import_factory.rb +12 -0
- data/lib/spree/testing_support/factories/market_factory.rb +35 -0
- data/lib/spree/testing_support/factories/order_factory.rb +3 -1
- data/lib/spree/testing_support/factories/payment_method_factory.rb +2 -0
- data/lib/spree/testing_support/factories/payment_session_factory.rb +47 -0
- data/lib/spree/testing_support/factories/payment_setup_session_factory.rb +31 -0
- data/lib/spree/testing_support/factories/price_rule_factory.rb +10 -0
- data/lib/spree/testing_support/factories/user_identity_factory.rb +15 -0
- data/lib/spree/testing_support/store.rb +3 -2
- data/lib/spree/webhooks.rb +7 -7
- data/lib/tasks/images.rake +20 -0
- data/lib/tasks/markets.rake +40 -0
- data/lib/tasks/sample_data.rake +15 -0
- data/spec/fixtures/files/customers_import.csv +4 -0
- metadata +88 -63
- data/LICENSE.md +0 -57
- data/app/finders/spree/stores/find_current.rb +0 -28
- data/app/models/spree/custom_domain.rb +0 -59
- data/app/presenters/spree/csv/formula_sanitizer.rb +0 -28
- data/app/serializers/spree/events/asset_serializer.rb +0 -22
- data/app/serializers/spree/events/base_serializer.rb +0 -61
- data/app/serializers/spree/events/customer_return_serializer.rb +0 -20
- data/app/serializers/spree/events/digital_link_serializer.rb +0 -20
- data/app/serializers/spree/events/digital_serializer.rb +0 -18
- data/app/serializers/spree/events/export_serializer.rb +0 -22
- data/app/serializers/spree/events/gift_card_batch_serializer.rb +0 -24
- data/app/serializers/spree/events/gift_card_serializer.rb +0 -29
- data/app/serializers/spree/events/image_serializer.rb +0 -9
- data/app/serializers/spree/events/import_row_serializer.rb +0 -23
- data/app/serializers/spree/events/import_serializer.rb +0 -24
- data/app/serializers/spree/events/invitation_serializer.rb +0 -28
- data/app/serializers/spree/events/line_item_serializer.rb +0 -31
- data/app/serializers/spree/events/newsletter_subscriber_serializer.rb +0 -21
- data/app/serializers/spree/events/order_serializer.rb +0 -39
- data/app/serializers/spree/events/payment_serializer.rb +0 -24
- data/app/serializers/spree/events/post_category_serializer.rb +0 -20
- data/app/serializers/spree/events/post_serializer.rb +0 -26
- data/app/serializers/spree/events/price_serializer.rb +0 -22
- data/app/serializers/spree/events/product_serializer.rb +0 -24
- data/app/serializers/spree/events/promotion_serializer.rb +0 -32
- data/app/serializers/spree/events/refund_serializer.rb +0 -23
- data/app/serializers/spree/events/reimbursement_serializer.rb +0 -22
- data/app/serializers/spree/events/report_serializer.rb +0 -23
- data/app/serializers/spree/events/return_authorization_serializer.rb +0 -22
- data/app/serializers/spree/events/return_item_serializer.rb +0 -27
- data/app/serializers/spree/events/shipment_serializer.rb +0 -24
- data/app/serializers/spree/events/stock_item_serializer.rb +0 -22
- data/app/serializers/spree/events/stock_movement_serializer.rb +0 -22
- data/app/serializers/spree/events/stock_transfer_serializer.rb +0 -22
- data/app/serializers/spree/events/store_credit_serializer.rb +0 -30
- data/app/serializers/spree/events/user_serializer.rb +0 -18
- data/app/serializers/spree/events/variant_serializer.rb +0 -34
- data/app/serializers/spree/events/wished_item_serializer.rb +0 -20
- data/app/serializers/spree/events/wishlist_serializer.rb +0 -22
metadata
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.4.0.beta
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sean Schofield
|
|
8
8
|
- Spark Solutions Sp. z o.o.
|
|
9
9
|
- Vendo Connect Inc.
|
|
10
|
+
autorequire:
|
|
10
11
|
bindir: bin
|
|
11
12
|
cert_chain: []
|
|
12
|
-
date:
|
|
13
|
+
date: 2026-02-25 00:00:00.000000000 Z
|
|
13
14
|
dependencies:
|
|
14
15
|
- !ruby/object:Gem::Dependency
|
|
15
16
|
name: i18n-tasks
|
|
@@ -217,6 +218,20 @@ dependencies:
|
|
|
217
218
|
- - "<"
|
|
218
219
|
- !ruby/object:Gem::Version
|
|
219
220
|
version: '4'
|
|
221
|
+
- !ruby/object:Gem::Dependency
|
|
222
|
+
name: jwt
|
|
223
|
+
requirement: !ruby/object:Gem::Requirement
|
|
224
|
+
requirements:
|
|
225
|
+
- - "~>"
|
|
226
|
+
- !ruby/object:Gem::Version
|
|
227
|
+
version: '3.1'
|
|
228
|
+
type: :runtime
|
|
229
|
+
prerelease: false
|
|
230
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
231
|
+
requirements:
|
|
232
|
+
- - "~>"
|
|
233
|
+
- !ruby/object:Gem::Version
|
|
234
|
+
version: '3.1'
|
|
220
235
|
- !ruby/object:Gem::Dependency
|
|
221
236
|
name: money
|
|
222
237
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -489,20 +504,6 @@ dependencies:
|
|
|
489
504
|
- - "~>"
|
|
490
505
|
- !ruby/object:Gem::Version
|
|
491
506
|
version: '1.0'
|
|
492
|
-
- !ruby/object:Gem::Dependency
|
|
493
|
-
name: request_store
|
|
494
|
-
requirement: !ruby/object:Gem::Requirement
|
|
495
|
-
requirements:
|
|
496
|
-
- - "~>"
|
|
497
|
-
- !ruby/object:Gem::Version
|
|
498
|
-
version: '1.7'
|
|
499
|
-
type: :runtime
|
|
500
|
-
prerelease: false
|
|
501
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
502
|
-
requirements:
|
|
503
|
-
- - "~>"
|
|
504
|
-
- !ruby/object:Gem::Version
|
|
505
|
-
version: '1.7'
|
|
506
507
|
- !ruby/object:Gem::Dependency
|
|
507
508
|
name: wannabe_bool
|
|
508
509
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -574,26 +575,39 @@ dependencies:
|
|
|
574
575
|
- !ruby/object:Gem::Version
|
|
575
576
|
version: '2.0'
|
|
576
577
|
- !ruby/object:Gem::Dependency
|
|
577
|
-
name:
|
|
578
|
+
name: bcrypt
|
|
578
579
|
requirement: !ruby/object:Gem::Requirement
|
|
579
580
|
requirements:
|
|
580
581
|
- - "~>"
|
|
581
582
|
- !ruby/object:Gem::Version
|
|
582
|
-
version: '1
|
|
583
|
+
version: '3.1'
|
|
583
584
|
type: :runtime
|
|
584
585
|
prerelease: false
|
|
585
586
|
version_requirements: !ruby/object:Gem::Requirement
|
|
586
587
|
requirements:
|
|
587
588
|
- - "~>"
|
|
588
589
|
- !ruby/object:Gem::Version
|
|
589
|
-
version: '1
|
|
590
|
+
version: '3.1'
|
|
591
|
+
- !ruby/object:Gem::Dependency
|
|
592
|
+
name: sqids
|
|
593
|
+
requirement: !ruby/object:Gem::Requirement
|
|
594
|
+
requirements:
|
|
595
|
+
- - "~>"
|
|
596
|
+
- !ruby/object:Gem::Version
|
|
597
|
+
version: '0.2'
|
|
598
|
+
type: :runtime
|
|
599
|
+
prerelease: false
|
|
600
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
601
|
+
requirements:
|
|
602
|
+
- - "~>"
|
|
603
|
+
- !ruby/object:Gem::Version
|
|
604
|
+
version: '0.2'
|
|
590
605
|
description: Spree Models, Helpers, Services and core libraries
|
|
591
606
|
email: hello@spreecommerce.org
|
|
592
607
|
executables: []
|
|
593
608
|
extensions: []
|
|
594
609
|
extra_rdoc_files: []
|
|
595
610
|
files:
|
|
596
|
-
- LICENSE.md
|
|
597
611
|
- README.md
|
|
598
612
|
- Rakefile
|
|
599
613
|
- app/assets/config/spree_core_manifest.js
|
|
@@ -827,7 +841,7 @@ files:
|
|
|
827
841
|
- app/finders/spree/posts/find.rb
|
|
828
842
|
- app/finders/spree/product_properties/find_available.rb
|
|
829
843
|
- app/finders/spree/products/find.rb
|
|
830
|
-
- app/finders/spree/stores/
|
|
844
|
+
- app/finders/spree/stores/find_default.rb
|
|
831
845
|
- app/finders/spree/taxons/find.rb
|
|
832
846
|
- app/finders/spree/variants/find.rb
|
|
833
847
|
- app/finders/spree/variants/option_types_finder.rb
|
|
@@ -849,6 +863,7 @@ files:
|
|
|
849
863
|
- app/javascript/spree/core/helpers/debounce.js
|
|
850
864
|
- app/javascript/spree/core/helpers/scroll_lock.js
|
|
851
865
|
- app/jobs/spree/addresses/geocode_address_job.rb
|
|
866
|
+
- app/jobs/spree/api_key_touch_job.rb
|
|
852
867
|
- app/jobs/spree/base_job.rb
|
|
853
868
|
- app/jobs/spree/coupon_codes/bulk_generate_job.rb
|
|
854
869
|
- app/jobs/spree/events/subscriber_job.rb
|
|
@@ -888,17 +903,19 @@ files:
|
|
|
888
903
|
- app/models/concerns/spree/metadata.rb
|
|
889
904
|
- app/models/concerns/spree/metafields.rb
|
|
890
905
|
- app/models/concerns/spree/multi_searchable.rb
|
|
891
|
-
- app/models/concerns/spree/multi_store_resource.rb
|
|
892
906
|
- app/models/concerns/spree/named_type.rb
|
|
893
907
|
- app/models/concerns/spree/number_as_param.rb
|
|
894
908
|
- app/models/concerns/spree/number_identifier.rb
|
|
895
909
|
- app/models/concerns/spree/parameterizable_name.rb
|
|
896
910
|
- app/models/concerns/spree/payment_source_concern.rb
|
|
911
|
+
- app/models/concerns/spree/prefixed_id.rb
|
|
897
912
|
- app/models/concerns/spree/previewable.rb
|
|
898
913
|
- app/models/concerns/spree/product_scopes.rb
|
|
899
914
|
- app/models/concerns/spree/publishable.rb
|
|
900
915
|
- app/models/concerns/spree/ransackable_attributes.rb
|
|
901
916
|
- app/models/concerns/spree/single_store_resource.rb
|
|
917
|
+
- app/models/concerns/spree/store_scoped_resource.rb
|
|
918
|
+
- app/models/concerns/spree/stores/markets.rb
|
|
902
919
|
- app/models/concerns/spree/stores/setup.rb
|
|
903
920
|
- app/models/concerns/spree/stores/socials.rb
|
|
904
921
|
- app/models/concerns/spree/translatable_resource.rb
|
|
@@ -920,8 +937,11 @@ files:
|
|
|
920
937
|
- app/models/spree/adjustable/adjustments_updater.rb
|
|
921
938
|
- app/models/spree/adjustable/promotion_accumulator.rb
|
|
922
939
|
- app/models/spree/adjustment.rb
|
|
940
|
+
- app/models/spree/api_key.rb
|
|
923
941
|
- app/models/spree/asset.rb
|
|
924
942
|
- app/models/spree/asset/support/active_storage.rb
|
|
943
|
+
- app/models/spree/authentication/strategies/base_strategy.rb
|
|
944
|
+
- app/models/spree/authentication/strategies/email_password_strategy.rb
|
|
925
945
|
- app/models/spree/base.rb
|
|
926
946
|
- app/models/spree/base_analytics_event_handler.rb
|
|
927
947
|
- app/models/spree/calculator.rb
|
|
@@ -945,7 +965,6 @@ files:
|
|
|
945
965
|
- app/models/spree/coupon_code.rb
|
|
946
966
|
- app/models/spree/credit_card.rb
|
|
947
967
|
- app/models/spree/current.rb
|
|
948
|
-
- app/models/spree/custom_domain.rb
|
|
949
968
|
- app/models/spree/customer_group.rb
|
|
950
969
|
- app/models/spree/customer_group_user.rb
|
|
951
970
|
- app/models/spree/customer_return.rb
|
|
@@ -975,15 +994,20 @@ files:
|
|
|
975
994
|
- app/models/spree/import_mapping.rb
|
|
976
995
|
- app/models/spree/import_row.rb
|
|
977
996
|
- app/models/spree/import_schema.rb
|
|
997
|
+
- app/models/spree/import_schemas/customers.rb
|
|
978
998
|
- app/models/spree/import_schemas/products.rb
|
|
999
|
+
- app/models/spree/imports/customers.rb
|
|
979
1000
|
- app/models/spree/imports/products.rb
|
|
980
1001
|
- app/models/spree/integration.rb
|
|
981
1002
|
- app/models/spree/inventory_unit.rb
|
|
982
1003
|
- app/models/spree/invitation.rb
|
|
983
1004
|
- app/models/spree/invitations/store.rb
|
|
1005
|
+
- app/models/spree/legacy_admin_user.rb
|
|
984
1006
|
- app/models/spree/legacy_user.rb
|
|
985
1007
|
- app/models/spree/line_item.rb
|
|
986
1008
|
- app/models/spree/log_entry.rb
|
|
1009
|
+
- app/models/spree/market.rb
|
|
1010
|
+
- app/models/spree/market_country.rb
|
|
987
1011
|
- app/models/spree/metafield.rb
|
|
988
1012
|
- app/models/spree/metafield_definition.rb
|
|
989
1013
|
- app/models/spree/metafields/boolean.rb
|
|
@@ -1022,6 +1046,9 @@ files:
|
|
|
1022
1046
|
- app/models/spree/payment_method.rb
|
|
1023
1047
|
- app/models/spree/payment_method/check.rb
|
|
1024
1048
|
- app/models/spree/payment_method/store_credit.rb
|
|
1049
|
+
- app/models/spree/payment_session.rb
|
|
1050
|
+
- app/models/spree/payment_sessions/bogus.rb
|
|
1051
|
+
- app/models/spree/payment_setup_session.rb
|
|
1025
1052
|
- app/models/spree/payment_source.rb
|
|
1026
1053
|
- app/models/spree/permission_sets/base.rb
|
|
1027
1054
|
- app/models/spree/permission_sets/configuration_management.rb
|
|
@@ -1046,6 +1073,7 @@ files:
|
|
|
1046
1073
|
- app/models/spree/price_list.rb
|
|
1047
1074
|
- app/models/spree/price_rule.rb
|
|
1048
1075
|
- app/models/spree/price_rules/customer_group_rule.rb
|
|
1076
|
+
- app/models/spree/price_rules/market_rule.rb
|
|
1049
1077
|
- app/models/spree/price_rules/user_rule.rb
|
|
1050
1078
|
- app/models/spree/price_rules/volume_rule.rb
|
|
1051
1079
|
- app/models/spree/price_rules/zone_rule.rb
|
|
@@ -1180,6 +1208,7 @@ files:
|
|
|
1180
1208
|
- app/models/spree/taxon_rules/sale.rb
|
|
1181
1209
|
- app/models/spree/taxon_rules/tag.rb
|
|
1182
1210
|
- app/models/spree/taxonomy.rb
|
|
1211
|
+
- app/models/spree/user_identity.rb
|
|
1183
1212
|
- app/models/spree/variant.rb
|
|
1184
1213
|
- app/models/spree/variant/webhooks.rb
|
|
1185
1214
|
- app/models/spree/webhook_delivery.rb
|
|
@@ -1190,7 +1219,6 @@ files:
|
|
|
1190
1219
|
- app/models/spree/zone_member.rb
|
|
1191
1220
|
- app/paginators/spree/shared/paginate.rb
|
|
1192
1221
|
- app/presenters/spree/csv/customer_presenter.rb
|
|
1193
|
-
- app/presenters/spree/csv/formula_sanitizer.rb
|
|
1194
1222
|
- app/presenters/spree/csv/gift_card_presenter.rb
|
|
1195
1223
|
- app/presenters/spree/csv/metafields_helper.rb
|
|
1196
1224
|
- app/presenters/spree/csv/newsletter_subscriber_presenter.rb
|
|
@@ -1206,41 +1234,6 @@ files:
|
|
|
1206
1234
|
- app/presenters/spree/variant_presenter.rb
|
|
1207
1235
|
- app/presenters/spree/variants/option_types_presenter.rb
|
|
1208
1236
|
- app/presenters/spree/variants/options_presenter.rb
|
|
1209
|
-
- app/serializers/spree/events/asset_serializer.rb
|
|
1210
|
-
- app/serializers/spree/events/base_serializer.rb
|
|
1211
|
-
- app/serializers/spree/events/customer_return_serializer.rb
|
|
1212
|
-
- app/serializers/spree/events/digital_link_serializer.rb
|
|
1213
|
-
- app/serializers/spree/events/digital_serializer.rb
|
|
1214
|
-
- app/serializers/spree/events/export_serializer.rb
|
|
1215
|
-
- app/serializers/spree/events/gift_card_batch_serializer.rb
|
|
1216
|
-
- app/serializers/spree/events/gift_card_serializer.rb
|
|
1217
|
-
- app/serializers/spree/events/image_serializer.rb
|
|
1218
|
-
- app/serializers/spree/events/import_row_serializer.rb
|
|
1219
|
-
- app/serializers/spree/events/import_serializer.rb
|
|
1220
|
-
- app/serializers/spree/events/invitation_serializer.rb
|
|
1221
|
-
- app/serializers/spree/events/line_item_serializer.rb
|
|
1222
|
-
- app/serializers/spree/events/newsletter_subscriber_serializer.rb
|
|
1223
|
-
- app/serializers/spree/events/order_serializer.rb
|
|
1224
|
-
- app/serializers/spree/events/payment_serializer.rb
|
|
1225
|
-
- app/serializers/spree/events/post_category_serializer.rb
|
|
1226
|
-
- app/serializers/spree/events/post_serializer.rb
|
|
1227
|
-
- app/serializers/spree/events/price_serializer.rb
|
|
1228
|
-
- app/serializers/spree/events/product_serializer.rb
|
|
1229
|
-
- app/serializers/spree/events/promotion_serializer.rb
|
|
1230
|
-
- app/serializers/spree/events/refund_serializer.rb
|
|
1231
|
-
- app/serializers/spree/events/reimbursement_serializer.rb
|
|
1232
|
-
- app/serializers/spree/events/report_serializer.rb
|
|
1233
|
-
- app/serializers/spree/events/return_authorization_serializer.rb
|
|
1234
|
-
- app/serializers/spree/events/return_item_serializer.rb
|
|
1235
|
-
- app/serializers/spree/events/shipment_serializer.rb
|
|
1236
|
-
- app/serializers/spree/events/stock_item_serializer.rb
|
|
1237
|
-
- app/serializers/spree/events/stock_movement_serializer.rb
|
|
1238
|
-
- app/serializers/spree/events/stock_transfer_serializer.rb
|
|
1239
|
-
- app/serializers/spree/events/store_credit_serializer.rb
|
|
1240
|
-
- app/serializers/spree/events/user_serializer.rb
|
|
1241
|
-
- app/serializers/spree/events/variant_serializer.rb
|
|
1242
|
-
- app/serializers/spree/events/wished_item_serializer.rb
|
|
1243
|
-
- app/serializers/spree/events/wishlist_serializer.rb
|
|
1244
1237
|
- app/services/spree/account/addresses/create.rb
|
|
1245
1238
|
- app/services/spree/account/addresses/update.rb
|
|
1246
1239
|
- app/services/spree/account/create.rb
|
|
@@ -1285,6 +1278,7 @@ files:
|
|
|
1285
1278
|
- app/services/spree/gift_cards/redeem.rb
|
|
1286
1279
|
- app/services/spree/gift_cards/remove.rb
|
|
1287
1280
|
- app/services/spree/imports/row_processors/base.rb
|
|
1281
|
+
- app/services/spree/imports/row_processors/customer.rb
|
|
1288
1282
|
- app/services/spree/imports/row_processors/product_variant.rb
|
|
1289
1283
|
- app/services/spree/line_items/create.rb
|
|
1290
1284
|
- app/services/spree/line_items/destroy.rb
|
|
@@ -1301,8 +1295,11 @@ files:
|
|
|
1301
1295
|
- app/services/spree/products/auto_match_taxons.rb
|
|
1302
1296
|
- app/services/spree/products/duplicator.rb
|
|
1303
1297
|
- app/services/spree/products/prepare_nested_attributes.rb
|
|
1298
|
+
- app/services/spree/sample_data/import_runner.rb
|
|
1299
|
+
- app/services/spree/sample_data/loader.rb
|
|
1304
1300
|
- app/services/spree/seeds/admin_user.rb
|
|
1305
1301
|
- app/services/spree/seeds/all.rb
|
|
1302
|
+
- app/services/spree/seeds/api_keys.rb
|
|
1306
1303
|
- app/services/spree/seeds/countries.rb
|
|
1307
1304
|
- app/services/spree/seeds/default_reimbursement_types.rb
|
|
1308
1305
|
- app/services/spree/seeds/digital_delivery.rb
|
|
@@ -1366,6 +1363,7 @@ files:
|
|
|
1366
1363
|
- app/views/spree/shared/_payment.html.erb
|
|
1367
1364
|
- app/views/spree/test_mailer/test_email.html.erb
|
|
1368
1365
|
- app/views/spree/test_mailer/test_email.text.erb
|
|
1366
|
+
- config/brakeman.ignore
|
|
1369
1367
|
- config/i18n-tasks.yml
|
|
1370
1368
|
- config/importmap.rb
|
|
1371
1369
|
- config/initializers/active_storage.rb
|
|
@@ -1490,6 +1488,7 @@ files:
|
|
|
1490
1488
|
- db/migrate/20250914101955_add_missing_indexes_on_spree_adjustments.rb
|
|
1491
1489
|
- db/migrate/20250915093930_add_metadata_to_spree_newsletter_subscribers.rb
|
|
1492
1490
|
- db/migrate/20250923141845_create_spree_imports.rb
|
|
1491
|
+
- db/migrate/20250923141900_create_spree_user_identities.rb
|
|
1493
1492
|
- db/migrate/20251110120000_create_spree_price_lists.rb
|
|
1494
1493
|
- db/migrate/20251110120001_create_spree_price_rules.rb
|
|
1495
1494
|
- db/migrate/20251110120002_add_price_list_id_to_spree_prices.rb
|
|
@@ -1506,6 +1505,19 @@ files:
|
|
|
1506
1505
|
- db/migrate/20260119120000_add_counter_caches_to_spree_products.rb
|
|
1507
1506
|
- db/migrate/20260119170000_add_counter_caches_to_spree_taxons.rb
|
|
1508
1507
|
- db/migrate/20260120120000_add_image_count_to_spree_variants.rb
|
|
1508
|
+
- db/migrate/20260123000000_create_spree_api_keys.rb
|
|
1509
|
+
- db/migrate/20260131000000_add_thumbnail_id_to_spree_variants_and_products.rb
|
|
1510
|
+
- db/migrate/20260213000000_create_spree_payment_sessions.rb
|
|
1511
|
+
- db/migrate/20260218000000_create_spree_payment_setup_sessions.rb
|
|
1512
|
+
- db/migrate/20260220000000_create_spree_markets.rb
|
|
1513
|
+
- db/sample_data/customers.csv
|
|
1514
|
+
- db/sample_data/metafield_definitions.rb
|
|
1515
|
+
- db/sample_data/orders.rb
|
|
1516
|
+
- db/sample_data/payment_methods.rb
|
|
1517
|
+
- db/sample_data/posts.rb
|
|
1518
|
+
- db/sample_data/products.csv
|
|
1519
|
+
- db/sample_data/promotions.rb
|
|
1520
|
+
- db/sample_data/shipping_methods.rb
|
|
1509
1521
|
- db/seeds.rb
|
|
1510
1522
|
- lib/friendly_id/history_decorator.rb
|
|
1511
1523
|
- lib/friendly_id/paranoia.rb
|
|
@@ -1513,6 +1525,9 @@ files:
|
|
|
1513
1525
|
- lib/generators/spree/authentication/custom/templates/authentication_helpers.rb.tt
|
|
1514
1526
|
- lib/generators/spree/authentication/devise/devise_generator.rb
|
|
1515
1527
|
- lib/generators/spree/authentication/devise/templates/authentication_helpers.rb.tt
|
|
1528
|
+
- lib/generators/spree/authentication/dummy/dummy_generator.rb
|
|
1529
|
+
- lib/generators/spree/authentication/dummy/templates/authentication_helpers.rb.tt
|
|
1530
|
+
- lib/generators/spree/authentication/dummy/templates/create_spree_admin_users.rb.tt
|
|
1516
1531
|
- lib/generators/spree/cursor_rules/cursor_rules_generator.rb
|
|
1517
1532
|
- lib/generators/spree/cursor_rules/templates/spree_rules.mdc
|
|
1518
1533
|
- lib/generators/spree/dummy/dummy_generator.rb
|
|
@@ -1595,6 +1610,7 @@ files:
|
|
|
1595
1610
|
- lib/spree/testing_support/factories.rb
|
|
1596
1611
|
- lib/spree/testing_support/factories/address_factory.rb
|
|
1597
1612
|
- lib/spree/testing_support/factories/adjustment_factory.rb
|
|
1613
|
+
- lib/spree/testing_support/factories/api_key_factory.rb
|
|
1598
1614
|
- lib/spree/testing_support/factories/asset_factory.rb
|
|
1599
1615
|
- lib/spree/testing_support/factories/calculator_factory.rb
|
|
1600
1616
|
- lib/spree/testing_support/factories/classification_factory.rb
|
|
@@ -1622,6 +1638,7 @@ files:
|
|
|
1622
1638
|
- lib/spree/testing_support/factories/invitation_factory.rb
|
|
1623
1639
|
- lib/spree/testing_support/factories/line_item_factory.rb
|
|
1624
1640
|
- lib/spree/testing_support/factories/log_entry_factory.rb
|
|
1641
|
+
- lib/spree/testing_support/factories/market_factory.rb
|
|
1625
1642
|
- lib/spree/testing_support/factories/metafield_definition_factory.rb
|
|
1626
1643
|
- lib/spree/testing_support/factories/metafield_factory.rb
|
|
1627
1644
|
- lib/spree/testing_support/factories/newsletter_subscriber_factory.rb
|
|
@@ -1631,6 +1648,8 @@ files:
|
|
|
1631
1648
|
- lib/spree/testing_support/factories/payment_capture_event_factory.rb
|
|
1632
1649
|
- lib/spree/testing_support/factories/payment_factory.rb
|
|
1633
1650
|
- lib/spree/testing_support/factories/payment_method_factory.rb
|
|
1651
|
+
- lib/spree/testing_support/factories/payment_session_factory.rb
|
|
1652
|
+
- lib/spree/testing_support/factories/payment_setup_session_factory.rb
|
|
1634
1653
|
- lib/spree/testing_support/factories/payment_source_factory.rb
|
|
1635
1654
|
- lib/spree/testing_support/factories/policy_factory.rb
|
|
1636
1655
|
- lib/spree/testing_support/factories/post_category_factory.rb
|
|
@@ -1681,6 +1700,7 @@ files:
|
|
|
1681
1700
|
- lib/spree/testing_support/factories/taxon_rule_factory.rb
|
|
1682
1701
|
- lib/spree/testing_support/factories/taxonomy_factory.rb
|
|
1683
1702
|
- lib/spree/testing_support/factories/user_factory.rb
|
|
1703
|
+
- lib/spree/testing_support/factories/user_identity_factory.rb
|
|
1684
1704
|
- lib/spree/testing_support/factories/variant_factory.rb
|
|
1685
1705
|
- lib/spree/testing_support/factories/webhook_delivery_factory.rb
|
|
1686
1706
|
- lib/spree/testing_support/factories/webhook_endpoint_factory.rb
|
|
@@ -1709,10 +1729,14 @@ files:
|
|
|
1709
1729
|
- lib/tasks/core.rake
|
|
1710
1730
|
- lib/tasks/dependencies.rake
|
|
1711
1731
|
- lib/tasks/exchanges.rake
|
|
1732
|
+
- lib/tasks/images.rake
|
|
1733
|
+
- lib/tasks/markets.rake
|
|
1712
1734
|
- lib/tasks/products.rake
|
|
1735
|
+
- lib/tasks/sample_data.rake
|
|
1713
1736
|
- lib/tasks/taxons.rake
|
|
1714
1737
|
- lib/tasks/variants.rake
|
|
1715
1738
|
- spec/fixtures/favicon.ico
|
|
1739
|
+
- spec/fixtures/files/customers_import.csv
|
|
1716
1740
|
- spec/fixtures/files/example.json
|
|
1717
1741
|
- spec/fixtures/files/icon_256x256.gif
|
|
1718
1742
|
- spec/fixtures/files/icon_256x256.png
|
|
@@ -1728,13 +1752,13 @@ files:
|
|
|
1728
1752
|
- vendor/javascript/tailwindcss-stimulus-components.js
|
|
1729
1753
|
homepage: https://spreecommerce.org
|
|
1730
1754
|
licenses:
|
|
1731
|
-
- AGPL-3.0-or-later
|
|
1732
1755
|
- BSD-3-Clause
|
|
1733
1756
|
metadata:
|
|
1734
1757
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
1735
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.
|
|
1758
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta
|
|
1736
1759
|
documentation_uri: https://docs.spreecommerce.org/
|
|
1737
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.
|
|
1760
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta
|
|
1761
|
+
post_install_message:
|
|
1738
1762
|
rdoc_options: []
|
|
1739
1763
|
require_paths:
|
|
1740
1764
|
- lib
|
|
@@ -1749,7 +1773,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1749
1773
|
- !ruby/object:Gem::Version
|
|
1750
1774
|
version: 1.8.23
|
|
1751
1775
|
requirements: []
|
|
1752
|
-
rubygems_version:
|
|
1776
|
+
rubygems_version: 3.5.22
|
|
1777
|
+
signing_key:
|
|
1753
1778
|
specification_version: 4
|
|
1754
1779
|
summary: The bare bones necessary for Spree
|
|
1755
1780
|
test_files: []
|
data/LICENSE.md
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# License
|
|
2
|
-
|
|
3
|
-
Copyright © 2024-present, Vendo Connect Inc.
|
|
4
|
-
|
|
5
|
-
Copyright © 2015-2024, Spark Solutions Sp. z o.o.
|
|
6
|
-
|
|
7
|
-
Copyright © 2007-2015, Spree Commerce Inc.
|
|
8
|
-
|
|
9
|
-
Spree Commerce is a free, open-source eCommerce framework giving you full control and customizability.
|
|
10
|
-
|
|
11
|
-
For **Spree Commerce versions 4.10** and later in the [spree/spree](https://github.com/spree/spree) repository two licenses apply simultaneously and users are required to comply with the terms of these two licenses at the same time:
|
|
12
|
-
|
|
13
|
-
* [AGPL-3.0](https://opensource.org/license/agpl-v3) - for all contributions from version 4.10 onwards
|
|
14
|
-
|
|
15
|
-
* [BSD-3-Clause](https://opensource.org/license/bsd-3-clause) - for all other contributions predating version 4.10
|
|
16
|
-
Effectively, for versions 4.10 and upwards **AGPL-3.0** license applies.
|
|
17
|
-
|
|
18
|
-
**Spree Commerce versions 4.9** and earlier in the [spree/spree](https://github.com/spree/spree) repository are available under the **BSD-3-Clause** license and users are required to comply with its terms.
|
|
19
|
-
|
|
20
|
-
If you’d like to use Spree Commerce without the AGPL-3.0 restrictions e.g. for a **SaaS** business, please talk to us about obtaining a [Commercial License](#commercial-license).
|
|
21
|
-
|
|
22
|
-
All third party components incorporated into this software are licensed under the original license provided by the owner of the applicable component.
|
|
23
|
-
|
|
24
|
-
Please refer to our [Licensing FAQ](https://spreecommerce.org/why-spree-is-changing-its-open-source-license-to-agpl-3-0-and-introducing-a-commercial-license/) in case of questions.
|
|
25
|
-
|
|
26
|
-
## AGPL-3.0 License - Spree 4.10 upwards
|
|
27
|
-
|
|
28
|
-
If you decide to accept the AGPL-3.0 license by using Spree Commerce version 4.10 or later, you must comply with the following terms:
|
|
29
|
-
|
|
30
|
-
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
31
|
-
|
|
32
|
-
This program is distributed in the hope that it will be useful,
|
|
33
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
34
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
35
|
-
GNU Affero General Public License for more details.
|
|
36
|
-
|
|
37
|
-
You should have received a copy of the GNU Affero General Public License
|
|
38
|
-
along with this program. If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/).
|
|
39
|
-
|
|
40
|
-
## BSD 3-Clause License
|
|
41
|
-
|
|
42
|
-
If you decide to accept the BSD-3-Clause license by using Spree Commerce, you must comply with the following terms:
|
|
43
|
-
|
|
44
|
-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
45
|
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
46
|
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
47
|
-
Neither the name of Spree Commerce Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
48
|
-
|
|
49
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
50
|
-
|
|
51
|
-
## Commercial License
|
|
52
|
-
|
|
53
|
-
Should you decide to use Spree Commerce version 4.10 or later for commercial redistribution (eg. SaaS) - also known as Commercial Distribution - you must do so in accordance with the terms and conditions contained in a separate written agreement between you and [Vendo Connect Inc.](https://www.getvendo.com/).
|
|
54
|
-
|
|
55
|
-
For more information about the Commercial License (CL) please contact [sales@getvendo.com](mailto:sales@getvendo.com).
|
|
56
|
-
|
|
57
|
-
Please refer to our [Licensing FAQ](https://spreecommerce.org/why-spree-is-changing-its-open-source-license-to-agpl-3-0-and-introducing-a-commercial-license/) in case of questions.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Stores
|
|
3
|
-
class FindCurrent
|
|
4
|
-
def initialize(scope: nil, url: nil)
|
|
5
|
-
@scope = scope || Spree::Store
|
|
6
|
-
@url = url
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def execute
|
|
10
|
-
store = by_url(scope) || scope.default
|
|
11
|
-
return if store.nil?
|
|
12
|
-
|
|
13
|
-
Spree::Current.store = store
|
|
14
|
-
store
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
protected
|
|
18
|
-
|
|
19
|
-
attr_reader :scope, :url
|
|
20
|
-
|
|
21
|
-
def by_url(scope)
|
|
22
|
-
return if url.blank?
|
|
23
|
-
|
|
24
|
-
scope.by_custom_domain(url).or(scope.by_url(url)).first
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
class CustomDomain < Spree::Base
|
|
3
|
-
include Spree::SingleStoreResource
|
|
4
|
-
include Spree::Metafields
|
|
5
|
-
include Spree::Metadata
|
|
6
|
-
|
|
7
|
-
normalizes :url, with: ->(value) { value&.to_s&.squish&.presence }
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
# Associations
|
|
11
|
-
#
|
|
12
|
-
belongs_to :store, class_name: 'Spree::Store', inverse_of: :custom_domains, touch: true
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
# Validations
|
|
16
|
-
#
|
|
17
|
-
validates :url, presence: true, uniqueness: true, format: {
|
|
18
|
-
with: %r{\A(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\z}i
|
|
19
|
-
}, length: { in: 1..63 }
|
|
20
|
-
validate :url_is_valid
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
# Callbacks
|
|
24
|
-
#
|
|
25
|
-
before_validation :sanitize_url
|
|
26
|
-
after_save :ensure_has_one_default
|
|
27
|
-
after_validation :ensure_default, on: :create
|
|
28
|
-
|
|
29
|
-
def url_is_valid
|
|
30
|
-
return if url.blank?
|
|
31
|
-
parts = url.split('.')
|
|
32
|
-
|
|
33
|
-
errors.add(:url, 'use domain or subdomain') if parts.size > 4 || parts.size < 2
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def ensure_default
|
|
37
|
-
self.default = store.custom_domains.count.zero?
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def ensure_has_one_default
|
|
41
|
-
store.custom_domains.where.not(id: id).update_all(default: false) if default?
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def active?
|
|
45
|
-
true
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def name
|
|
49
|
-
url
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
private
|
|
53
|
-
|
|
54
|
-
# remove https:// and http:// from the url
|
|
55
|
-
def sanitize_url
|
|
56
|
-
self.url = url&.gsub(%r{https?://}, '')
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module CSV
|
|
3
|
-
# Neutralizes CSV formula injection (CWE-1236 / OWASP "CSV Injection")
|
|
4
|
-
# by prefixing cells that would otherwise be evaluated as a formula
|
|
5
|
-
# when the exported file is opened in Excel, Google Sheets, LibreOffice,
|
|
6
|
-
# or Numbers.
|
|
7
|
-
#
|
|
8
|
-
# The leading apostrophe is the OWASP-recommended marker — spreadsheets
|
|
9
|
-
# render the cell as plain text without displaying the apostrophe.
|
|
10
|
-
module FormulaSanitizer
|
|
11
|
-
TRIGGERS = ["=", "+", "-", "@", "\t", "\r", "\n"].freeze
|
|
12
|
-
|
|
13
|
-
module_function
|
|
14
|
-
|
|
15
|
-
def cell(value)
|
|
16
|
-
return value unless value.is_a?(String)
|
|
17
|
-
return value if value.empty?
|
|
18
|
-
return value unless TRIGGERS.include?(value[0])
|
|
19
|
-
|
|
20
|
-
"'#{value}"
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def row(values)
|
|
24
|
-
values.map { |v| cell(v) }
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Spree
|
|
4
|
-
module Events
|
|
5
|
-
class AssetSerializer < BaseSerializer
|
|
6
|
-
protected
|
|
7
|
-
|
|
8
|
-
def attributes
|
|
9
|
-
{
|
|
10
|
-
id: resource.id,
|
|
11
|
-
type: resource.type,
|
|
12
|
-
viewable_type: resource.viewable_type,
|
|
13
|
-
viewable_id: resource.viewable_id,
|
|
14
|
-
position: resource.position,
|
|
15
|
-
alt: resource.alt,
|
|
16
|
-
created_at: timestamp(resource.created_at),
|
|
17
|
-
updated_at: timestamp(resource.updated_at)
|
|
18
|
-
}
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Spree
|
|
4
|
-
module Events
|
|
5
|
-
class BaseSerializer
|
|
6
|
-
attr_reader :resource, :context
|
|
7
|
-
|
|
8
|
-
def initialize(resource, context = {})
|
|
9
|
-
@resource = resource
|
|
10
|
-
@context = context
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# Main serialization method
|
|
14
|
-
def as_json
|
|
15
|
-
attributes
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# Class method for convenience
|
|
19
|
-
def self.serialize(resource, context = {})
|
|
20
|
-
new(resource, context).as_json
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
protected
|
|
24
|
-
|
|
25
|
-
# Override in subclasses to define attributes
|
|
26
|
-
def attributes
|
|
27
|
-
{
|
|
28
|
-
id: resource.id
|
|
29
|
-
}
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Context helpers
|
|
33
|
-
def event_name
|
|
34
|
-
context[:event_name]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def triggered_at
|
|
38
|
-
context[:triggered_at] || Time.current
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# Attribute helpers
|
|
42
|
-
|
|
43
|
-
# Safely get attribute, returns nil if not present
|
|
44
|
-
def attribute(name)
|
|
45
|
-
resource.public_send(name) if resource.respond_to?(name)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Timestamp helper - ISO8601 format
|
|
49
|
-
def timestamp(time)
|
|
50
|
-
time&.iso8601
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# Money helper - decimal value for events
|
|
54
|
-
def money(amount)
|
|
55
|
-
return nil if amount.nil?
|
|
56
|
-
|
|
57
|
-
amount.respond_to?(:to_d) ? amount.to_d : amount
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Spree
|
|
4
|
-
module Events
|
|
5
|
-
class CustomerReturnSerializer < BaseSerializer
|
|
6
|
-
protected
|
|
7
|
-
|
|
8
|
-
def attributes
|
|
9
|
-
{
|
|
10
|
-
id: resource.id,
|
|
11
|
-
number: resource.number,
|
|
12
|
-
stock_location_id: resource.stock_location_id,
|
|
13
|
-
store_id: resource.store_id,
|
|
14
|
-
created_at: timestamp(resource.created_at),
|
|
15
|
-
updated_at: timestamp(resource.updated_at)
|
|
16
|
-
}
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|