solidus_core 4.6.1 → 4.7.0
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/Rakefile +13 -13
- data/app/controllers/spree/base_controller.rb +2 -2
- data/app/helpers/spree/base_helper.rb +24 -24
- data/app/helpers/spree/checkout_helper.rb +7 -7
- data/app/helpers/spree/core/controller_helpers/auth.rb +1 -1
- data/app/helpers/spree/core/controller_helpers/common.rb +3 -2
- data/app/helpers/spree/core/controller_helpers/order.rb +3 -5
- data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +1 -2
- data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +10 -10
- data/app/helpers/spree/products_helper.rb +5 -5
- data/app/helpers/spree/store_helper.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +3 -3
- data/app/mailers/spree/order_mailer.rb +4 -4
- data/app/mailers/spree/reimbursement_mailer.rb +2 -2
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +5 -5
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +5 -5
- data/app/models/concerns/spree/active_storage_adapter.rb +2 -2
- data/app/models/concerns/spree/adjustment_source.rb +4 -4
- data/app/models/concerns/spree/display_money.rb +2 -2
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
- data/app/models/concerns/spree/preferences/persistable.rb +1 -1
- data/app/models/concerns/spree/ransackable_attributes.rb +1 -0
- data/app/models/concerns/spree/soft_deletable.rb +2 -1
- data/app/models/concerns/spree/state_change_tracking.rb +11 -7
- data/app/models/concerns/spree/user_address_book.rb +12 -12
- data/app/models/concerns/spree/user_methods.rb +9 -9
- data/app/models/concerns/spree/user_reporting.rb +1 -0
- data/app/models/spree/ability.rb +1 -1
- data/app/models/spree/address/name.rb +1 -1
- data/app/models/spree/address.rb +7 -7
- data/app/models/spree/adjustment.rb +11 -10
- data/app/models/spree/adjustment_reason.rb +2 -2
- data/app/models/spree/billing_integration.rb +2 -2
- data/app/models/spree/calculator/default_tax.rb +2 -2
- data/app/models/spree/calculator/flat_fee.rb +1 -1
- data/app/models/spree/calculator/flat_rate.rb +2 -2
- data/app/models/spree/calculator/returns/default_refund_amount.rb +3 -3
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +2 -2
- data/app/models/spree/calculator/shipping/flat_rate.rb +3 -3
- data/app/models/spree/calculator/shipping/flexi_rate.rb +8 -8
- data/app/models/spree/calculator/shipping/per_item.rb +3 -3
- data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
- data/app/models/spree/calculator.rb +31 -6
- data/app/models/spree/carton.rb +4 -4
- data/app/models/spree/classification.rb +2 -2
- data/app/models/spree/core/state_machines/order/class_methods.rb +3 -3
- data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +1 -1
- data/app/models/spree/country.rb +1 -1
- data/app/models/spree/credit_card.rb +27 -27
- data/app/models/spree/customer_return.rb +5 -4
- data/app/models/spree/distributed_amounts_handler.rb +1 -1
- data/app/models/spree/fulfilment_changer.rb +22 -22
- data/app/models/spree/image/active_storage_attachment.rb +2 -2
- data/app/models/spree/image/paperclip_attachment.rb +8 -8
- data/app/models/spree/in_memory_order_updater.rb +262 -0
- data/app/models/spree/inventory_unit.rb +11 -11
- data/app/models/spree/item_total.rb +1 -1
- data/app/models/spree/legacy_user.rb +2 -2
- data/app/models/spree/line_item.rb +21 -11
- data/app/models/spree/log_entry.rb +3 -3
- data/app/models/spree/mergeable_orders_finder.rb +44 -0
- data/app/models/spree/money.rb +2 -1
- data/app/models/spree/null_promotion_adjuster.rb +1 -1
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/number_generator.rb +1 -1
- data/app/models/spree/order.rb +66 -64
- data/app/models/spree/order_cancellations.rb +1 -3
- data/app/models/spree/order_inventory.rb +5 -8
- data/app/models/spree/order_mutex.rb +1 -1
- data/app/models/spree/order_shipping.rb +1 -1
- data/app/models/spree/order_updater.rb +59 -37
- data/app/models/spree/payment/cancellation.rb +2 -2
- data/app/models/spree/payment/processing.rb +22 -22
- data/app/models/spree/payment.rb +26 -26
- data/app/models/spree/payment_capture_event.rb +2 -2
- data/app/models/spree/payment_create.rb +1 -1
- data/app/models/spree/payment_method/bogus_credit_card.rb +18 -18
- data/app/models/spree/payment_method/check.rb +3 -3
- data/app/models/spree/payment_method/credit_card.rb +1 -1
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +3 -3
- data/app/models/spree/payment_method/store_credit.rb +13 -13
- data/app/models/spree/payment_method.rb +12 -11
- data/app/models/spree/payment_source.rb +2 -2
- data/app/models/spree/permission_sets/dashboard_display.rb +3 -3
- data/app/models/spree/permission_sets/default_customer.rb +1 -1
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +7 -6
- data/app/models/spree/product/scopes.rb +23 -23
- data/app/models/spree/product.rb +37 -41
- data/app/models/spree/product_option_type.rb +2 -2
- data/app/models/spree/product_property.rb +3 -3
- data/app/models/spree/refund.rb +10 -10
- data/app/models/spree/refund_reason.rb +2 -2
- data/app/models/spree/reimbursement/credit.rb +1 -1
- data/app/models/spree/reimbursement.rb +8 -8
- data/app/models/spree/reimbursement_tax_calculator.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -1
- data/app/models/spree/reimbursement_type.rb +2 -2
- data/app/models/spree/return_authorization.rb +7 -6
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/default.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/order_completed.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +6 -6
- data/app/models/spree/return_item.rb +31 -30
- data/app/models/spree/return_reason.rb +1 -1
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/role_user.rb +1 -1
- data/app/models/spree/shipment.rb +37 -29
- data/app/models/spree/shipping_method.rb +9 -9
- data/app/models/spree/shipping_method_category.rb +2 -2
- data/app/models/spree/shipping_rate.rb +12 -10
- data/app/models/spree/shipping_rate_tax.rb +5 -4
- data/app/models/spree/simple_order_contents.rb +2 -2
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/state_change_tracker.rb +31 -0
- data/app/models/spree/stock/availability.rb +9 -9
- data/app/models/spree/stock/availability_validator.rb +3 -3
- data/app/models/spree/stock/differentiator.rb +2 -2
- data/app/models/spree/stock/estimator.rb +4 -4
- data/app/models/spree/stock/inventory_validator.rb +1 -1
- data/app/models/spree/stock/package.rb +3 -3
- data/app/models/spree/stock_item.rb +5 -5
- data/app/models/spree/stock_location.rb +6 -6
- data/app/models/spree/stock_movement.rb +2 -2
- data/app/models/spree/stock_quantities.rb +2 -2
- data/app/models/spree/store.rb +3 -3
- data/app/models/spree/store_credit.rb +30 -29
- data/app/models/spree/store_credit_category.rb +2 -2
- data/app/models/spree/store_credit_event.rb +6 -6
- data/app/models/spree/store_credit_reason.rb +1 -1
- data/app/models/spree/store_credit_type.rb +3 -3
- data/app/models/spree/store_selector/by_server_name.rb +1 -1
- data/app/models/spree/store_selector/legacy.rb +1 -1
- data/app/models/spree/tax/item_tax.rb +1 -0
- data/app/models/spree/tax/order_tax.rb +1 -0
- data/app/models/spree/tax_category.rb +3 -3
- data/app/models/spree/tax_rate.rb +5 -5
- data/app/models/spree/tax_rate_tax_category.rb +2 -2
- data/app/models/spree/taxon/active_storage_attachment.rb +2 -2
- data/app/models/spree/taxon/paperclip_attachment.rb +4 -4
- data/app/models/spree/taxon.rb +16 -17
- data/app/models/spree/taxon_brand_selector.rb +3 -3
- data/app/models/spree/unauthorized_redirect_handler.rb +1 -1
- data/app/models/spree/unit_cancel.rb +4 -4
- data/app/models/spree/user_address.rb +3 -3
- data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +6 -8
- data/app/models/spree/user_last_url_storer.rb +1 -1
- data/app/models/spree/variant/price_selector.rb +1 -1
- data/app/models/spree/variant/scopes.rb +9 -9
- data/app/models/spree/variant.rb +25 -25
- data/app/models/spree/variant_property_rule.rb +2 -2
- data/app/models/spree/variant_property_rule_condition.rb +1 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +4 -4
- data/app/models/spree/wallet/default_payment_builder.rb +1 -1
- data/app/models/spree/wallet_payment_source.rb +2 -2
- data/app/models/spree/zone.rb +18 -18
- data/app/models/spree/zone_member.rb +1 -1
- data/app/subscribers/spree/carton_shipped_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/order_cancel_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/order_confirmation_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/order_inventory_cancellation_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/reimbursement_mailer_subscriber.rb +2 -2
- data/config/initializers/assets.rb +1 -1
- data/config/initializers/db_query_matchers.rb +9 -0
- data/config/initializers/friendly_id.rb +2 -2
- data/config/initializers/inflections.rb +1 -1
- data/config/initializers/money.rb +1 -1
- data/config/locales/en.yml +1 -0
- data/db/default/spree/countries.rb +7 -7
- data/db/default/spree/return_reasons.rb +11 -11
- data/db/default/spree/stock_locations.rb +1 -1
- data/db/default/spree/store_credit.rb +3 -4
- data/db/default/spree/stores.rb +1 -1
- data/db/default/spree/zones.rb +5 -5
- data/db/migrate/20160101010000_solidus_one_four.rb +16 -16
- data/db/migrate/20160420044191_create_spree_wallet_payment_sources.rb +3 -3
- data/db/migrate/20160420181916_migrate_credit_cards_to_wallet_payment_sources.rb +7 -6
- data/db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb +10 -10
- data/db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb +6 -6
- data/db/migrate/20161129035810_add_index_to_spree_payments_number.rb +1 -1
- data/db/migrate/20170319191942_remove_order_id_from_inventory_units.rb +4 -4
- data/db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb +9 -16
- data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +1 -0
- data/db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb +3 -3
- data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +1 -1
- data/db/migrate/20250214094207_add_reverse_charge_status_to_store.rb +1 -1
- data/db/migrate/20250225051308_add_vat_id_email_and_reverse_charge_status_to_addresses.rb +1 -1
- data/db/migrate/20250605105424_add_shipping_category_foreign_keys.rb +3 -3
- data/db/seeds.rb +3 -3
- data/lib/generators/solidus/install/app_templates/authentication/custom.rb +2 -2
- data/lib/generators/solidus/install/app_templates/authentication/devise.rb +3 -3
- data/lib/generators/solidus/install/app_templates/authentication/existing.rb +3 -1
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
- data/lib/generators/solidus/install/app_templates/payment_method/braintree.rb +1 -1
- data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +1 -1
- data/lib/generators/solidus/install/app_templates/payment_method/stripe.rb +2 -2
- data/lib/generators/solidus/install/install_generator.rb +51 -51
- data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +3 -0
- data/lib/generators/solidus/update/update_generator.rb +29 -29
- data/lib/generators/spree/custom_user/custom_user_generator.rb +6 -6
- data/lib/generators/spree/dummy/dummy_generator.rb +22 -24
- data/lib/generators/spree/dummy/templates/rails/boot.rb +3 -3
- data/lib/generators/spree/dummy/templates/rails/test.rb +4 -4
- data/lib/solidus_core.rb +1 -1
- data/lib/spree/app_configuration.rb +66 -47
- data/lib/spree/bus.rb +1 -1
- data/lib/spree/config.rb +1 -1
- data/lib/spree/core/active_merchant_dependencies.rb +8 -8
- data/lib/spree/core/class_constantizer.rb +1 -1
- data/lib/spree/core/engine.rb +15 -15
- data/lib/spree/core/environment.rb +1 -1
- data/lib/spree/core/environment_extension.rb +2 -2
- data/lib/spree/core/importer/order.rb +15 -15
- data/lib/spree/core/importer/product.rb +4 -4
- data/lib/spree/core/importer.rb +2 -2
- data/lib/spree/core/null_promotion_configuration.rb +7 -7
- data/lib/spree/core/permalinks.rb +1 -1
- data/lib/spree/core/product_filters.rb +94 -93
- data/lib/spree/core/role_configuration.rb +3 -3
- data/lib/spree/core/search/base.rb +5 -6
- data/lib/spree/core/search/variant.rb +3 -3
- data/lib/spree/core/stock_configuration.rb +10 -49
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +3 -3
- data/lib/spree/core/versioned_value.rb +4 -6
- data/lib/spree/core.rb +49 -49
- data/lib/spree/deprecated_instance_variable_proxy.rb +1 -1
- data/lib/spree/deprecation.rb +1 -1
- data/lib/spree/deprecator.rb +2 -2
- data/lib/spree/i18n.rb +2 -2
- data/lib/spree/localized_number.rb +3 -3
- data/lib/spree/manipulative_query_monitor.rb +19 -0
- data/lib/spree/migrations.rb +2 -2
- data/lib/spree/permitted_attributes.rb +10 -10
- data/lib/spree/preferences/configuration.rb +5 -5
- data/lib/spree/preferences/preferable.rb +8 -10
- data/lib/spree/preferences/preferable_class_methods.rb +16 -16
- data/lib/spree/preferences/preference_differentiator.rb +1 -1
- data/lib/spree/preferences/scoped_store.rb +2 -2
- data/lib/spree/preferences/static_model_preferences.rb +2 -2
- data/lib/spree/preferences/store.rb +6 -6
- data/lib/spree/testing_support/ability_helpers.rb +30 -30
- data/lib/spree/testing_support/authorization_helpers.rb +6 -5
- data/lib/spree/testing_support/blacklist_urls.rb +1 -1
- data/lib/spree/testing_support/bus_helpers.rb +1 -1
- data/lib/spree/testing_support/capybara_driver.rb +1 -1
- data/lib/spree/testing_support/capybara_ext.rb +12 -12
- data/lib/spree/testing_support/common_rake.rb +17 -16
- data/lib/spree/testing_support/dummy_ability.rb +1 -1
- data/lib/spree/testing_support/dummy_app/migrations.rb +1 -1
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +5 -5
- data/lib/spree/testing_support/dummy_app/routes.rb +1 -1
- data/lib/spree/testing_support/dummy_app.rb +34 -34
- data/lib/spree/testing_support/extension_rake.rb +2 -2
- data/lib/spree/testing_support/factories/address_factory.rb +12 -12
- data/lib/spree/testing_support/factories/adjustment_factory.rb +7 -7
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/calculator_factory.rb +6 -6
- data/lib/spree/testing_support/factories/carton_factory.rb +1 -1
- data/lib/spree/testing_support/factories/country_factory.rb +3 -3
- data/lib/spree/testing_support/factories/credit_card_factory.rb +3 -3
- data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
- data/lib/spree/testing_support/factories/image_factory.rb +2 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +4 -4
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -2
- data/lib/spree/testing_support/factories/option_type_factory.rb +2 -2
- data/lib/spree/testing_support/factories/option_value_factory.rb +2 -2
- data/lib/spree/testing_support/factories/order_factory.rb +16 -16
- data/lib/spree/testing_support/factories/payment_factory.rb +9 -9
- data/lib/spree/testing_support/factories/payment_method_factory.rb +10 -10
- data/lib/spree/testing_support/factories/price_factory.rb +2 -2
- data/lib/spree/testing_support/factories/product_factory.rb +2 -2
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
- data/lib/spree/testing_support/factories/property_factory.rb +3 -3
- data/lib/spree/testing_support/factories/refund_factory.rb +2 -2
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +3 -3
- data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/role_factory.rb +2 -2
- data/lib/spree/testing_support/factories/shipment_factory.rb +3 -3
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +7 -7
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +1 -1
- data/lib/spree/testing_support/factories/state_factory.rb +4 -4
- data/lib/spree/testing_support/factories/stock_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_location_factory.rb +7 -7
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +3 -3
- data/lib/spree/testing_support/factories/stock_package_factory.rb +3 -3
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -8
- data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +6 -6
- data/lib/spree/testing_support/factories/store_factory.rb +2 -2
- data/lib/spree/testing_support/factories/tax_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
- data/lib/spree/testing_support/factories/taxon_factory.rb +3 -3
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +2 -2
- data/lib/spree/testing_support/factories/variant_factory.rb +2 -2
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +1 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +3 -3
- data/lib/spree/testing_support/factory_bot.rb +1 -1
- data/lib/spree/testing_support/flaky.rb +3 -2
- data/lib/spree/testing_support/flash.rb +2 -2
- data/lib/spree/testing_support/order_walkthrough.rb +7 -7
- data/lib/spree/testing_support/preferences.rb +1 -1
- data/lib/spree/testing_support/rake.rb +1 -1
- data/lib/spree/testing_support/shared_examples/calculator.rb +1 -1
- data/lib/spree/testing_support/shared_examples/gallery.rb +7 -7
- data/lib/spree/testing_support/shared_examples/order_factory.rb +9 -9
- data/lib/spree/testing_support/shared_examples/state_change_tracking.rb +25 -0
- data/lib/spree/testing_support/shared_examples/working_factory.rb +1 -1
- data/lib/spree/testing_support/translations.rb +1 -1
- data/lib/spree_core.rb +1 -1
- data/lib/tasks/payment_method.rake +2 -2
- data/solidus_core.gemspec +49 -49
- metadata +62 -54
|
@@ -9,16 +9,16 @@ Dummy::Application.configure do
|
|
|
9
9
|
|
|
10
10
|
# Configure static asset server for tests with Cache-Control for performance
|
|
11
11
|
config.public_file_server.enabled = true
|
|
12
|
-
config.public_file_server.headers = {
|
|
12
|
+
config.public_file_server.headers = {"Cache-Control" => "public, max-age=3600"}
|
|
13
13
|
|
|
14
14
|
# Show full error reports and disable caching
|
|
15
|
-
config.consider_all_requests_local
|
|
15
|
+
config.consider_all_requests_local = true
|
|
16
16
|
config.action_controller.perform_caching = false
|
|
17
17
|
|
|
18
18
|
config.eager_load = false
|
|
19
19
|
|
|
20
20
|
# Raise exceptions instead of rendering exception templates
|
|
21
|
-
if Rails.gem_version >= Gem::Version.new(
|
|
21
|
+
if Rails.gem_version >= Gem::Version.new("7.1")
|
|
22
22
|
config.action_controller.raise_on_missing_callback_actions = true
|
|
23
23
|
config.action_dispatch.show_exceptions = :none
|
|
24
24
|
else
|
|
@@ -37,7 +37,7 @@ Dummy::Application.configure do
|
|
|
37
37
|
config.active_storage.service = :test
|
|
38
38
|
|
|
39
39
|
# Raise on deprecation warnings
|
|
40
|
-
if ENV[
|
|
40
|
+
if ENV["SOLIDUS_RAISE_DEPRECATIONS"].present?
|
|
41
41
|
Spree.deprecator.behavior = :raise
|
|
42
42
|
end
|
|
43
43
|
end
|
data/lib/solidus_core.rb
CHANGED
|
@@ -19,14 +19,15 @@
|
|
|
19
19
|
#
|
|
20
20
|
require "spree/core/search/base"
|
|
21
21
|
require "spree/core/search/variant"
|
|
22
|
-
require
|
|
23
|
-
require
|
|
22
|
+
require "spree/preferences/configuration"
|
|
23
|
+
require "spree/core/environment"
|
|
24
24
|
|
|
25
|
-
require
|
|
25
|
+
require "uri"
|
|
26
26
|
|
|
27
27
|
module Spree
|
|
28
28
|
class AppConfiguration < Preferences::Configuration
|
|
29
29
|
include Spree::Core::EnvironmentExtension
|
|
30
|
+
|
|
30
31
|
# Preferences (alphabetized to more easily lookup particular preferences)
|
|
31
32
|
|
|
32
33
|
# @!attribute [rw] address_requires_phone
|
|
@@ -39,7 +40,7 @@ module Spree
|
|
|
39
40
|
|
|
40
41
|
# @!attribute [rw] admin_interface_logo
|
|
41
42
|
# @return [String] URL of logo used in admin (default: +'logo/solidus.svg'+)
|
|
42
|
-
preference :admin_interface_logo, :string, default:
|
|
43
|
+
preference :admin_interface_logo, :string, default: "logo/solidus.svg"
|
|
43
44
|
|
|
44
45
|
# @!attribute [rw] admin_products_per_page
|
|
45
46
|
# @return [Integer] Number of products to display in admin (default: +10+)
|
|
@@ -146,7 +147,7 @@ module Spree
|
|
|
146
147
|
# @!attribute [rw] default_country_iso
|
|
147
148
|
# Default customer country ISO code
|
|
148
149
|
# @return [String] Two-letter ISO code of a {Spree::Country} to assumed as the country of an unidentified customer (default: "US")
|
|
149
|
-
preference :default_country_iso, :string, default:
|
|
150
|
+
preference :default_country_iso, :string, default: "US"
|
|
150
151
|
|
|
151
152
|
# @!attribute [rw] default_email_regexp
|
|
152
153
|
# @return [Regexp] Regex to be used in email validations, for example in Spree::EmailValidator
|
|
@@ -166,7 +167,7 @@ module Spree
|
|
|
166
167
|
|
|
167
168
|
# @!attribute [rw] layout
|
|
168
169
|
# @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
|
|
169
|
-
preference :layout, :string, default:
|
|
170
|
+
preference :layout, :string, default: "spree/layouts/spree_application"
|
|
170
171
|
|
|
171
172
|
# !@attribute [rw] line_item_comparison_hooks
|
|
172
173
|
# @return [Array<Symbol>] An array of methods to call on {Spree::Order} to determine if a line item is equal to another
|
|
@@ -177,7 +178,7 @@ module Spree
|
|
|
177
178
|
|
|
178
179
|
# @!attribute [rw] logo
|
|
179
180
|
# @return [String] URL of logo used on frontend (default: +'logo/solidus.svg'+)
|
|
180
|
-
preference :logo, :string, default:
|
|
181
|
+
preference :logo, :string, default: "logo/solidus.svg"
|
|
181
182
|
|
|
182
183
|
# @!attribute [rw] log_entry_permitted_classes
|
|
183
184
|
# @return [Array<String>] An array of extra classes that are allowed to be
|
|
@@ -245,6 +246,10 @@ module Spree
|
|
|
245
246
|
# @return [Integer] Products to show per-page in the frontend (default: +12+)
|
|
246
247
|
preference :products_per_page, :integer, default: 12
|
|
247
248
|
|
|
249
|
+
# @!attribute [rw] recalculate_cart_prices
|
|
250
|
+
# @return [Boolean] Whether to recalculate cart prices when recalculating (default: +false+)
|
|
251
|
+
versioned_preference :recalculate_cart_prices, :boolean, initial_value: false, boundaries: {"5.0.0.alpha" => true}
|
|
252
|
+
|
|
248
253
|
# @!attribute [rw] require_master_price
|
|
249
254
|
# @return [Boolean] Require a price on the master variant of a product (default: +true+)
|
|
250
255
|
preference :require_master_price, :boolean, default: true
|
|
@@ -261,7 +266,7 @@ module Spree
|
|
|
261
266
|
# @return [Array] An array of roles where generating an api key for a user
|
|
262
267
|
# at role_user creation is desired when user has one of these roles.
|
|
263
268
|
# (default: +['admin']+)
|
|
264
|
-
preference :roles_for_auto_api_key, :array, default: [
|
|
269
|
+
preference :roles_for_auto_api_key, :array, default: ["admin"]
|
|
265
270
|
|
|
266
271
|
# @!attribute [rw] countries_that_use_nested_subregions
|
|
267
272
|
# @return [Array] An array of countries that use nested subregions, instead
|
|
@@ -269,7 +274,7 @@ module Spree
|
|
|
269
274
|
# to ensure the correct states are generated, and when running the states
|
|
270
275
|
# regenerate rake task.
|
|
271
276
|
# (default: +['IT']+)
|
|
272
|
-
preference :countries_that_use_nested_subregions, :array, default: [
|
|
277
|
+
preference :countries_that_use_nested_subregions, :array, default: ["IT"]
|
|
273
278
|
|
|
274
279
|
# @!attribute [rw] send_core_emails
|
|
275
280
|
# @return [Boolean] Whether to send transactional emails (default: true)
|
|
@@ -318,14 +323,14 @@ module Spree
|
|
|
318
323
|
end
|
|
319
324
|
|
|
320
325
|
# searcher_class allows spree extension writers to provide their own Search class
|
|
321
|
-
class_name_attribute :searcher_class, default:
|
|
326
|
+
class_name_attribute :searcher_class, default: "Spree::Core::Search::Base"
|
|
322
327
|
|
|
323
328
|
# Allows implementing custom pricing for variants
|
|
324
329
|
# @!attribute [rw] variant_price_selector_class
|
|
325
330
|
# @see Spree::Variant::PriceSelector
|
|
326
331
|
# @return [Class] an object that conforms to the API of
|
|
327
332
|
# the standard variant price selector class Spree::Variant::PriceSelector.
|
|
328
|
-
class_name_attribute :variant_price_selector_class, default:
|
|
333
|
+
class_name_attribute :variant_price_selector_class, default: "Spree::Variant::PriceSelector"
|
|
329
334
|
|
|
330
335
|
# Shortcut for getting the variant price selector's pricing options class
|
|
331
336
|
#
|
|
@@ -339,7 +344,7 @@ module Spree
|
|
|
339
344
|
pricing_options_class.new
|
|
340
345
|
end
|
|
341
346
|
|
|
342
|
-
class_name_attribute :variant_search_class, default:
|
|
347
|
+
class_name_attribute :variant_search_class, default: "Spree::Core::Search::Variant"
|
|
343
348
|
|
|
344
349
|
# Allows implementing custom vat prices generation
|
|
345
350
|
# @!attribute [rw] variant_vat_prices_generator_class
|
|
@@ -347,20 +352,20 @@ module Spree
|
|
|
347
352
|
# @return [Class] an object that conforms to the API of
|
|
348
353
|
# the standard variant vat prices generator class
|
|
349
354
|
# Spree::Variant::VatPriceGenerator.
|
|
350
|
-
class_name_attribute :variant_vat_prices_generator_class, default:
|
|
355
|
+
class_name_attribute :variant_vat_prices_generator_class, default: "Spree::Variant::VatPriceGenerator"
|
|
351
356
|
|
|
352
|
-
class_name_attribute :allocator_class, default:
|
|
357
|
+
class_name_attribute :allocator_class, default: "Spree::Stock::Allocator::OnHandFirst"
|
|
353
358
|
|
|
354
|
-
class_name_attribute :shipping_rate_sorter_class, default:
|
|
359
|
+
class_name_attribute :shipping_rate_sorter_class, default: "Spree::Stock::ShippingRateSorter"
|
|
355
360
|
|
|
356
|
-
class_name_attribute :shipping_rate_selector_class, default:
|
|
361
|
+
class_name_attribute :shipping_rate_selector_class, default: "Spree::Stock::ShippingRateSelector"
|
|
357
362
|
|
|
358
363
|
# Allows providing your own class for calculating taxes on a shipping rate.
|
|
359
364
|
#
|
|
360
365
|
# @!attribute [rw] shipping_rate_tax_calculator_class
|
|
361
366
|
# @return [Class] a class with the same public interfaces as
|
|
362
367
|
# Spree::TaxCalculator::ShippingRate
|
|
363
|
-
class_name_attribute :shipping_rate_tax_calculator_class, default:
|
|
368
|
+
class_name_attribute :shipping_rate_tax_calculator_class, default: "Spree::TaxCalculator::ShippingRate"
|
|
364
369
|
|
|
365
370
|
# Allows providing your own Mailer for order mailer.
|
|
366
371
|
#
|
|
@@ -369,14 +374,14 @@ module Spree
|
|
|
369
374
|
# "cancel_email" and "inventory_cancellation_email"
|
|
370
375
|
# (e.g. an ActionMailer with a "confirm_email" method) with the same
|
|
371
376
|
# signature as Spree::OrderMailer.confirm_email.
|
|
372
|
-
class_name_attribute :order_mailer_class, default:
|
|
377
|
+
class_name_attribute :order_mailer_class, default: "Spree::OrderMailer"
|
|
373
378
|
|
|
374
379
|
# Allows providing your own order update attributes class for checkout.
|
|
375
380
|
#
|
|
376
381
|
# @!attribute [rw] order_update_attributes_class
|
|
377
382
|
# @return [Class] a class that responds to "call"
|
|
378
383
|
# with the same signature as Spree::OrderUpdateAttributes.
|
|
379
|
-
class_name_attribute :order_update_attributes_class, default:
|
|
384
|
+
class_name_attribute :order_update_attributes_class, default: "Spree::OrderUpdateAttributes"
|
|
380
385
|
|
|
381
386
|
# Allows providing a different order recalculator.
|
|
382
387
|
# @!attribute [rw] order_recalculator_class
|
|
@@ -384,7 +389,7 @@ module Spree
|
|
|
384
389
|
# @return [Class] an object that conforms to the API of
|
|
385
390
|
# the standard order recalculator class
|
|
386
391
|
# Spree::OrderUpdater.
|
|
387
|
-
class_name_attribute :order_recalculator_class, default:
|
|
392
|
+
class_name_attribute :order_recalculator_class, default: "Spree::OrderUpdater"
|
|
388
393
|
|
|
389
394
|
# Allows providing your own Mailer for reimbursement mailer.
|
|
390
395
|
#
|
|
@@ -392,7 +397,7 @@ module Spree
|
|
|
392
397
|
# @return [ActionMailer::Base] an object that responds to "reimbursement_email"
|
|
393
398
|
# (e.g. an ActionMailer with a "reimbursement_email" method) with the same
|
|
394
399
|
# signature as Spree::ReimbursementMailer.reimbursement_email.
|
|
395
|
-
class_name_attribute :reimbursement_mailer_class, default:
|
|
400
|
+
class_name_attribute :reimbursement_mailer_class, default: "Spree::ReimbursementMailer"
|
|
396
401
|
|
|
397
402
|
# Allows providing your own Mailer for shipped cartons.
|
|
398
403
|
#
|
|
@@ -400,14 +405,21 @@ module Spree
|
|
|
400
405
|
# @return [ActionMailer::Base] an object that responds to "shipped_email"
|
|
401
406
|
# (e.g. an ActionMailer with a "shipped_email" method) with the same
|
|
402
407
|
# signature as Spree::CartonMailer.shipped_email.
|
|
403
|
-
class_name_attribute :carton_shipped_email_class, default:
|
|
408
|
+
class_name_attribute :carton_shipped_email_class, default: "Spree::CartonMailer"
|
|
404
409
|
|
|
405
410
|
# Allows providing your own class for merging two orders.
|
|
406
411
|
#
|
|
407
412
|
# @!attribute [rw] order_merger_class
|
|
408
413
|
# @return [Class] a class with the same public interfaces
|
|
409
414
|
# as Spree::OrderMerger.
|
|
410
|
-
class_name_attribute :order_merger_class, default:
|
|
415
|
+
class_name_attribute :order_merger_class, default: "Spree::OrderMerger"
|
|
416
|
+
|
|
417
|
+
# Allows providing your own class for selecting which orders to merge.
|
|
418
|
+
#
|
|
419
|
+
# @!attribute [rw] mergeable_orders_finder_class
|
|
420
|
+
# @return [Class] a class with the same public interfaces as
|
|
421
|
+
# Spree::MergeableOrdersFinder.
|
|
422
|
+
class_name_attribute :mergeable_orders_finder_class, default: "Spree::MergeableOrdersFinder"
|
|
411
423
|
|
|
412
424
|
# Allows providing your own class for adding default payments to a user's
|
|
413
425
|
# order from their "wallet".
|
|
@@ -415,21 +427,21 @@ module Spree
|
|
|
415
427
|
# @!attribute [rw] default_payment_builder_class
|
|
416
428
|
# @return [Class] a class with the same public interfaces as
|
|
417
429
|
# Spree::Wallet::DefaultPaymentBuilder.
|
|
418
|
-
class_name_attribute :default_payment_builder_class, default:
|
|
430
|
+
class_name_attribute :default_payment_builder_class, default: "Spree::Wallet::DefaultPaymentBuilder"
|
|
419
431
|
|
|
420
432
|
# Allows providing your own class for managing the contents of an order.
|
|
421
433
|
#
|
|
422
434
|
# @!attribute [rw] order_contents_class
|
|
423
435
|
# @return [Class] a class with the same public interfaces as
|
|
424
436
|
# Spree::OrderContents.
|
|
425
|
-
class_name_attribute :order_contents_class, default:
|
|
437
|
+
class_name_attribute :order_contents_class, default: "Spree::SimpleOrderContents"
|
|
426
438
|
|
|
427
439
|
# Allows providing your own class for shipping an order.
|
|
428
440
|
#
|
|
429
441
|
# @!attribute [rw] order_shipping_class
|
|
430
442
|
# @return [Class] a class with the same public interfaces as
|
|
431
443
|
# Spree::OrderShipping.
|
|
432
|
-
class_name_attribute :order_shipping_class, default:
|
|
444
|
+
class_name_attribute :order_shipping_class, default: "Spree::OrderShipping"
|
|
433
445
|
|
|
434
446
|
# Allows providing your own class for managing the inventory units of a
|
|
435
447
|
# completed order.
|
|
@@ -437,7 +449,7 @@ module Spree
|
|
|
437
449
|
# @!attribute [rw] order_cancellations_class
|
|
438
450
|
# @return [Class] a class with the same public interfaces as
|
|
439
451
|
# Spree::OrderCancellations.
|
|
440
|
-
class_name_attribute :order_cancellations_class, default:
|
|
452
|
+
class_name_attribute :order_cancellations_class, default: "Spree::OrderCancellations"
|
|
441
453
|
|
|
442
454
|
# Allows providing your own class for canceling payments.
|
|
443
455
|
#
|
|
@@ -456,14 +468,14 @@ module Spree
|
|
|
456
468
|
# @!attribute [rw] add_payment_sources_to_wallet_class
|
|
457
469
|
# @return [Class] a class with the same public interfaces
|
|
458
470
|
# as Spree::Wallet::AddPaymentSourcesToWallet.
|
|
459
|
-
class_name_attribute :add_payment_sources_to_wallet_class, default:
|
|
471
|
+
class_name_attribute :add_payment_sources_to_wallet_class, default: "Spree::Wallet::AddPaymentSourcesToWallet"
|
|
460
472
|
|
|
461
473
|
# Allows providing your own class for recalculating totals on an item.
|
|
462
474
|
#
|
|
463
475
|
# @!attribute [rw] item_total_class
|
|
464
476
|
# @return [Class] a class with the same public interfaces as
|
|
465
477
|
# Spree::ItemTotal
|
|
466
|
-
class_name_attribute :item_total_class, default:
|
|
478
|
+
class_name_attribute :item_total_class, default: "Spree::ItemTotal"
|
|
467
479
|
|
|
468
480
|
# Allows providing your own class for calculating taxes on an order.
|
|
469
481
|
#
|
|
@@ -472,42 +484,42 @@ module Spree
|
|
|
472
484
|
# @!attribute [rw] tax_adjuster_class
|
|
473
485
|
# @return [Class] a class with the same public interfaces as
|
|
474
486
|
# Spree::Tax::OrderAdjuster
|
|
475
|
-
class_name_attribute :tax_adjuster_class, default:
|
|
487
|
+
class_name_attribute :tax_adjuster_class, default: "Spree::Tax::OrderAdjuster"
|
|
476
488
|
|
|
477
489
|
# Allows providing your own class for calculating taxes on an order.
|
|
478
490
|
#
|
|
479
491
|
# @!attribute [rw] tax_calculator_class
|
|
480
492
|
# @return [Class] a class with the same public interfaces as
|
|
481
493
|
# Spree::TaxCalculator::Default
|
|
482
|
-
class_name_attribute :tax_calculator_class, default:
|
|
494
|
+
class_name_attribute :tax_calculator_class, default: "Spree::TaxCalculator::Default"
|
|
483
495
|
|
|
484
496
|
# Allows providing your own class for choosing which store to use.
|
|
485
497
|
#
|
|
486
498
|
# @!attribute [rw] current_store_selector_class
|
|
487
499
|
# @return [Class] a class with the same public interfaces as
|
|
488
500
|
# Spree::CurrentStoreSelector
|
|
489
|
-
class_name_attribute :current_store_selector_class, default:
|
|
501
|
+
class_name_attribute :current_store_selector_class, default: "Spree::StoreSelector::ByServerName"
|
|
490
502
|
|
|
491
503
|
# Allows providing your own class for creating urls on taxons
|
|
492
504
|
#
|
|
493
505
|
# @!attribute [rw] taxon_url_parametizer_class
|
|
494
506
|
# @return [Class] a class that provides a `#parameterize` method that
|
|
495
507
|
# returns a String
|
|
496
|
-
class_name_attribute :taxon_url_parametizer_class, default:
|
|
508
|
+
class_name_attribute :taxon_url_parametizer_class, default: "ActiveSupport::Inflector"
|
|
497
509
|
|
|
498
510
|
# Allows providing your own class for image galleries on Variants
|
|
499
511
|
#
|
|
500
512
|
# @!attribute [rw] variant_gallery_class
|
|
501
513
|
# @return [Class] a class that implements an `images` method and returns an
|
|
502
514
|
# Enumerable of images adhering to the present_image_class interface
|
|
503
|
-
class_name_attribute :variant_gallery_class, default:
|
|
515
|
+
class_name_attribute :variant_gallery_class, default: "Spree::Gallery::VariantGallery"
|
|
504
516
|
|
|
505
517
|
# Allows providing your own class for image galleries on Products
|
|
506
518
|
#
|
|
507
519
|
# @!attribute [rw] product_gallery_class
|
|
508
520
|
# @return [Class] a class that implements an `images` method and returns an
|
|
509
521
|
# Enumerable of images adhering to the present_image_class interface
|
|
510
|
-
class_name_attribute :product_gallery_class, default:
|
|
522
|
+
class_name_attribute :product_gallery_class, default: "Spree::Gallery::ProductGallery"
|
|
511
523
|
|
|
512
524
|
# Allows switching attachment library for Image
|
|
513
525
|
#
|
|
@@ -525,7 +537,7 @@ module Spree
|
|
|
525
537
|
# `%w(image/jpeg image/jpg image/png image/gif).freeze` is the default.
|
|
526
538
|
#
|
|
527
539
|
# @return [Array]
|
|
528
|
-
class_name_attribute :allowed_image_mime_types, default: %w
|
|
540
|
+
class_name_attribute :allowed_image_mime_types, default: %w[image/jpeg image/jpg image/png image/gif].freeze
|
|
529
541
|
|
|
530
542
|
# @!attribute [rw] product_image_style_default
|
|
531
543
|
#
|
|
@@ -544,10 +556,17 @@ module Spree
|
|
|
544
556
|
# large: '1200x1200>' } is the default.
|
|
545
557
|
#
|
|
546
558
|
# @return [Hash]
|
|
547
|
-
class_name_attribute :product_image_styles, default: {
|
|
548
|
-
small:
|
|
549
|
-
product:
|
|
550
|
-
large:
|
|
559
|
+
class_name_attribute :product_image_styles, default: {mini: "48x48>",
|
|
560
|
+
small: "400x400>",
|
|
561
|
+
product: "680x680>",
|
|
562
|
+
large: "1200x1200>"}
|
|
563
|
+
|
|
564
|
+
# Allows to provide your own class for tracking state changes of stateful models
|
|
565
|
+
#
|
|
566
|
+
# @!attribute [rw] state_change_tracking_class
|
|
567
|
+
# @return [Class] a class with the same public interfaces as
|
|
568
|
+
# Spree::StateChangeTracker.
|
|
569
|
+
class_name_attribute :state_change_tracking_class, default: "Spree::StateChangeTracker"
|
|
551
570
|
|
|
552
571
|
# Allows providing your own class for prioritizing store credit application
|
|
553
572
|
# to an order.
|
|
@@ -555,14 +574,14 @@ module Spree
|
|
|
555
574
|
# @!attribute [rw] store_credit_prioritizer_class
|
|
556
575
|
# @return [Class] a class with the same public interfaces as
|
|
557
576
|
# Spree::StoreCreditPrioritizer.
|
|
558
|
-
class_name_attribute :store_credit_prioritizer_class, default:
|
|
577
|
+
class_name_attribute :store_credit_prioritizer_class, default: "Spree::StoreCreditPrioritizer"
|
|
559
578
|
|
|
560
579
|
# Allows finding brand for product.
|
|
561
580
|
#
|
|
562
581
|
# @!attribute [rw] brand_selector_class
|
|
563
582
|
# @return [Class] a class with the same public interfaces as
|
|
564
583
|
# Spree::TaxonBrandSelector.
|
|
565
|
-
class_name_attribute :brand_selector_class, default:
|
|
584
|
+
class_name_attribute :brand_selector_class, default: "Spree::TaxonBrandSelector"
|
|
566
585
|
|
|
567
586
|
# @!attribute [rw] taxon_image_style_default
|
|
568
587
|
#
|
|
@@ -581,7 +600,7 @@ module Spree
|
|
|
581
600
|
# large: '1200x1200>' } is the default.
|
|
582
601
|
#
|
|
583
602
|
# @return [Hash]
|
|
584
|
-
class_name_attribute :taxon_image_styles, default: {
|
|
603
|
+
class_name_attribute :taxon_image_styles, default: {mini: "32x32>", normal: "128x128>"}
|
|
585
604
|
|
|
586
605
|
# Allows switching attachment library for Taxon
|
|
587
606
|
#
|
|
@@ -611,7 +630,7 @@ module Spree
|
|
|
611
630
|
# @return [Pathname] the configured path. (default: `Rails.root.join('db', 'migrate')`)
|
|
612
631
|
attr_writer :migration_path
|
|
613
632
|
def migration_path
|
|
614
|
-
@migration_path ||= ::Rails.root.join(
|
|
633
|
+
@migration_path ||= ::Rails.root.join("db", "migrate")
|
|
615
634
|
end
|
|
616
635
|
|
|
617
636
|
# Allows providing your own class instance for generating order numbers.
|
|
@@ -687,14 +706,14 @@ module Spree
|
|
|
687
706
|
|
|
688
707
|
def roles
|
|
689
708
|
@roles ||= Spree::RoleConfiguration.new.tap do |roles|
|
|
690
|
-
roles.assign_permissions :default, [
|
|
691
|
-
roles.assign_permissions :admin, [
|
|
709
|
+
roles.assign_permissions :default, ["Spree::PermissionSets::DefaultCustomer"]
|
|
710
|
+
roles.assign_permissions :admin, ["Spree::PermissionSets::SuperUser"]
|
|
692
711
|
end
|
|
693
712
|
end
|
|
694
713
|
|
|
695
714
|
def user_last_url_storer_rules
|
|
696
715
|
@user_last_url_storer_rules ||= ::Spree::Core::ClassConstantizer::Set.new.tap do |set|
|
|
697
|
-
set <<
|
|
716
|
+
set << "Spree::UserLastUrlStorer::Rules::AuthenticationRule"
|
|
698
717
|
end
|
|
699
718
|
end
|
|
700
719
|
|
data/lib/spree/bus.rb
CHANGED
data/lib/spree/config.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "active_merchant/errors"
|
|
4
4
|
|
|
5
|
-
require
|
|
5
|
+
require "active_merchant/billing/base"
|
|
6
6
|
|
|
7
|
-
require
|
|
8
|
-
require
|
|
9
|
-
require
|
|
7
|
+
require "active_merchant/billing/avs_result"
|
|
8
|
+
require "active_merchant/billing/cvv_result"
|
|
9
|
+
require "active_merchant/billing/response"
|
|
10
10
|
|
|
11
|
-
require
|
|
12
|
-
require
|
|
13
|
-
require
|
|
11
|
+
require "active_merchant/billing/credit_card_methods"
|
|
12
|
+
require "active_merchant/billing/credit_card_formatting"
|
|
13
|
+
require "active_merchant/billing/credit_card"
|
data/lib/spree/core/engine.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "spree/core"
|
|
4
4
|
|
|
5
5
|
module Spree
|
|
6
6
|
module Core
|
|
@@ -9,7 +9,7 @@ module Spree
|
|
|
9
9
|
CREDIT_CARD_VERIFICATION_VALUE_PARAM = /payment.*source.*\.verification_value$/
|
|
10
10
|
|
|
11
11
|
isolate_namespace Spree
|
|
12
|
-
engine_name
|
|
12
|
+
engine_name "spree"
|
|
13
13
|
|
|
14
14
|
config.generators do |generator|
|
|
15
15
|
generator.test_framework :rspec
|
|
@@ -31,15 +31,15 @@ module Spree
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
# leave empty initializers for backwards-compatability. Other apps might still rely on these events
|
|
34
|
-
initializer
|
|
35
|
-
initializer
|
|
36
|
-
initializer
|
|
37
|
-
initializer
|
|
38
|
-
initializer
|
|
39
|
-
initializer
|
|
40
|
-
initializer
|
|
41
|
-
initializer
|
|
42
|
-
initializer
|
|
34
|
+
initializer("spree.default_permissions", before: :load_config_initializers) {}
|
|
35
|
+
initializer("spree.register.calculators", before: :load_config_initializers) {}
|
|
36
|
+
initializer("spree.register.stock_splitters", before: :load_config_initializers) {}
|
|
37
|
+
initializer("spree.register.payment_methods", before: :load_config_initializers) {}
|
|
38
|
+
initializer("spree.promo.environment", before: :load_config_initializers) {}
|
|
39
|
+
initializer("spree.promo.register.promotion.calculators", before: :load_config_initializers) {}
|
|
40
|
+
initializer("spree.promo.register.promotion.rules", before: :load_config_initializers) {}
|
|
41
|
+
initializer("spree.promo.register.promotions.actions", before: :load_config_initializers) {}
|
|
42
|
+
initializer("spree.promo.register.promotions.shipping_actions", before: :load_config_initializers) {}
|
|
43
43
|
|
|
44
44
|
# Filter sensitive information during logging
|
|
45
45
|
initializer "spree.params.filter", before: :load_config_initializers do |app|
|
|
@@ -47,7 +47,7 @@ module Spree
|
|
|
47
47
|
%r{^password$},
|
|
48
48
|
%r{^password_confirmation$},
|
|
49
49
|
CREDIT_CARD_NUMBER_PARAM,
|
|
50
|
-
CREDIT_CARD_VERIFICATION_VALUE_PARAM
|
|
50
|
+
CREDIT_CARD_VERIFICATION_VALUE_PARAM
|
|
51
51
|
]
|
|
52
52
|
end
|
|
53
53
|
|
|
@@ -56,7 +56,7 @@ module Spree
|
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
# Setup pub/sub
|
|
59
|
-
initializer
|
|
59
|
+
initializer "spree.core.pub_sub" do |app|
|
|
60
60
|
app.reloader.to_prepare do
|
|
61
61
|
Spree::Bus.clear
|
|
62
62
|
|
|
@@ -95,13 +95,13 @@ module Spree
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
config.after_initialize do
|
|
98
|
-
Spree::Config.check_load_defaults_called(
|
|
98
|
+
Spree::Config.check_load_defaults_called("Spree::Config")
|
|
99
99
|
Spree::Config.static_model_preferences.validate!
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
config.after_initialize do
|
|
103
103
|
if defined?(Spree::Auth::Engine) &&
|
|
104
|
-
Gem::Version.new(Spree::Auth::VERSION) < Gem::Version.new(
|
|
104
|
+
Gem::Version.new(Spree::Auth::VERSION) < Gem::Version.new("2.5.4") &&
|
|
105
105
|
defined?(Spree::UsersController)
|
|
106
106
|
Spree::UsersController.protect_from_forgery with: :exception
|
|
107
107
|
end
|
|
@@ -35,7 +35,7 @@ module Spree
|
|
|
35
35
|
|
|
36
36
|
if completed_at
|
|
37
37
|
order.completed_at = completed_at
|
|
38
|
-
order.state =
|
|
38
|
+
order.state = "complete"
|
|
39
39
|
order.save!
|
|
40
40
|
end
|
|
41
41
|
|
|
@@ -55,7 +55,7 @@ module Spree
|
|
|
55
55
|
|
|
56
56
|
shipments_hash.each do |target|
|
|
57
57
|
shipment = Shipment.new
|
|
58
|
-
shipment.tracking
|
|
58
|
+
shipment.tracking = target[:tracking]
|
|
59
59
|
shipment.stock_location = Spree::StockLocation.find_by(id: target[:stock_location_id]) ||
|
|
60
60
|
Spree::StockLocation.find_by(admin_name: target[:stock_location]) ||
|
|
61
61
|
Spree::StockLocation.find_by!(name: target[:stock_location])
|
|
@@ -64,7 +64,7 @@ module Spree
|
|
|
64
64
|
inventory_units.each do |inventory_unit|
|
|
65
65
|
ensure_variant_id_from_params(inventory_unit)
|
|
66
66
|
|
|
67
|
-
unless line_item = order.line_items.find_by(variant_id: inventory_unit[:variant_id])
|
|
67
|
+
unless (line_item = order.line_items.find_by(variant_id: inventory_unit[:variant_id]))
|
|
68
68
|
line_item = order.contents.add(Spree::Variant.find(inventory_unit[:variant_id]), 1)
|
|
69
69
|
end
|
|
70
70
|
|
|
@@ -81,9 +81,9 @@ module Spree
|
|
|
81
81
|
# Mark shipped if it should be.
|
|
82
82
|
if target[:shipped_at].present?
|
|
83
83
|
shipment.shipped_at = target[:shipped_at]
|
|
84
|
-
shipment.state
|
|
84
|
+
shipment.state = "shipped"
|
|
85
85
|
shipment.inventory_units.each do |unit|
|
|
86
|
-
unit.state =
|
|
86
|
+
unit.state = "shipped"
|
|
87
87
|
end
|
|
88
88
|
end
|
|
89
89
|
|
|
@@ -92,7 +92,7 @@ module Spree
|
|
|
92
92
|
|
|
93
93
|
shipping_method = Spree::ShippingMethod.find_by(name: target[:shipping_method]) || Spree::ShippingMethod.find_by!(admin_name: target[:shipping_method])
|
|
94
94
|
rate = shipment.shipping_rates.create!(shipping_method:,
|
|
95
|
-
|
|
95
|
+
cost: target[:cost])
|
|
96
96
|
shipment.selected_shipping_rate_id = rate.id
|
|
97
97
|
shipment.update_amounts
|
|
98
98
|
end
|
|
@@ -131,7 +131,7 @@ module Spree
|
|
|
131
131
|
adjustment = order.adjustments.build(
|
|
132
132
|
order:,
|
|
133
133
|
amount: target[:amount].to_d,
|
|
134
|
-
label:
|
|
134
|
+
label: target[:label]
|
|
135
135
|
)
|
|
136
136
|
adjustment.save!
|
|
137
137
|
adjustment.finalize!
|
|
@@ -145,7 +145,7 @@ module Spree
|
|
|
145
145
|
payment.amount = target[:amount].to_f
|
|
146
146
|
# Order API should be using state as that's the normal payment field.
|
|
147
147
|
# spree_wombat serializes payment state as status so imported orders should fall back to status field.
|
|
148
|
-
payment.state = target[:state] || target[:status] ||
|
|
148
|
+
payment.state = target[:state] || target[:status] || "completed"
|
|
149
149
|
payment.payment_method = Spree::PaymentMethod.find_by!(name: target[:payment_method])
|
|
150
150
|
source_attributes = target[:source] || target[:source_attributes]
|
|
151
151
|
payment.source = create_source_payment_from_params(source_attributes, payment) if source_attributes
|
|
@@ -179,13 +179,13 @@ module Spree
|
|
|
179
179
|
return if address.nil? || address[:country_id].present? || address[:country].nil?
|
|
180
180
|
|
|
181
181
|
search = {}
|
|
182
|
-
if name = address[:country][
|
|
182
|
+
if (name = address[:country]["name"])
|
|
183
183
|
search[:name] = name
|
|
184
|
-
elsif iso_name = address[:country][
|
|
184
|
+
elsif (iso_name = address[:country]["iso_name"])
|
|
185
185
|
search[:iso_name] = iso_name.upcase
|
|
186
|
-
elsif iso = address[:country][
|
|
186
|
+
elsif (iso = address[:country]["iso"])
|
|
187
187
|
search[:iso] = iso.upcase
|
|
188
|
-
elsif iso_three = address[:country][
|
|
188
|
+
elsif (iso_three = address[:country]["iso3"])
|
|
189
189
|
search[:iso3] = iso_three.upcase
|
|
190
190
|
end
|
|
191
191
|
|
|
@@ -197,16 +197,16 @@ module Spree
|
|
|
197
197
|
return if address.nil? || address[:state_id].present? || address[:state].nil?
|
|
198
198
|
|
|
199
199
|
search = {}
|
|
200
|
-
if name = address[:state][
|
|
200
|
+
if (name = address[:state]["name"])
|
|
201
201
|
search[:name] = name
|
|
202
|
-
elsif abbr = address[:state][
|
|
202
|
+
elsif (abbr = address[:state]["abbr"])
|
|
203
203
|
search[:abbr] = abbr.upcase
|
|
204
204
|
end
|
|
205
205
|
|
|
206
206
|
address.delete(:state)
|
|
207
207
|
search[:country_id] = address[:country_id]
|
|
208
208
|
|
|
209
|
-
if state = Spree::State.where(search).first
|
|
209
|
+
if (state = Spree::State.where(search).first)
|
|
210
210
|
address[:state_id] = state.id
|
|
211
211
|
else
|
|
212
212
|
address[:state_name] = search[:name] || search[:abbr]
|