solidus_core 2.9.6 → 2.11.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/app/assets/javascripts/spree.js.erb +31 -2
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/helpers/spree/base_helper.rb +4 -4
- data/app/helpers/spree/products_helper.rb +2 -1
- data/app/jobs/spree/promotion_code_batch_job.rb +2 -2
- data/app/mailers/spree/base_mailer.rb +4 -0
- data/app/mailers/spree/order_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
- data/app/models/concerns/spree/default_price.rb +1 -1
- data/app/models/concerns/spree/soft_deletable.rb +18 -0
- data/app/models/concerns/spree/user_address_book.rb +87 -33
- data/app/models/concerns/spree/user_methods.rb +5 -4
- data/app/models/spree/ability.rb +34 -10
- data/app/models/spree/address.rb +103 -30
- data/app/models/spree/address/name.rb +49 -0
- data/app/models/spree/address/state_validator.rb +71 -0
- data/app/models/spree/adjustment.rb +21 -10
- data/app/models/spree/asset.rb +1 -1
- data/app/models/spree/base.rb +1 -2
- data/app/models/spree/calculator.rb +1 -1
- data/app/models/spree/calculator/default_tax.rb +1 -1
- data/app/models/spree/calculator/percent_per_item.rb +4 -4
- data/app/models/spree/calculator/price_sack.rb +1 -1
- data/app/models/spree/calculator/shipping/flexi_rate.rb +2 -2
- data/app/models/spree/calculator/tiered_flat_rate.rb +5 -5
- data/app/models/spree/calculator/tiered_percent.rb +6 -6
- data/app/models/spree/carton.rb +3 -3
- data/app/models/spree/classification.rb +2 -2
- data/app/models/spree/credit_card.rb +6 -6
- data/app/models/spree/customer_return.rb +5 -3
- data/app/models/spree/exchange.rb +1 -1
- data/app/models/spree/image/active_storage_attachment.rb +21 -0
- data/app/models/spree/image/paperclip_attachment.rb +1 -1
- data/app/models/spree/inventory_unit.rb +5 -23
- data/app/models/spree/line_item.rb +16 -7
- data/app/models/spree/line_item_action.rb +2 -2
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +3 -3
- data/app/models/spree/option_values_variant.rb +2 -2
- data/app/models/spree/order.rb +85 -30
- data/app/models/spree/order/checkout.rb +2 -1
- data/app/models/spree/order/payments.rb +2 -2
- data/app/models/spree/order_cancellations.rb +1 -1
- data/app/models/spree/order_capturing.rb +2 -2
- data/app/models/spree/order_contents.rb +2 -2
- data/app/models/spree/order_inventory.rb +16 -4
- data/app/models/spree/order_merger.rb +6 -4
- data/app/models/spree/order_mutex.rb +1 -1
- data/app/models/spree/order_promotion.rb +4 -4
- data/app/models/spree/order_shipping.rb +1 -1
- data/app/models/spree/order_taxation.rb +3 -3
- data/app/models/spree/order_updater.rb +11 -10
- data/app/models/spree/payment.rb +10 -47
- data/app/models/spree/payment/cancellation.rb +3 -3
- data/app/models/spree/payment/processing.rb +57 -33
- data/app/models/spree/payment_capture_event.rb +1 -1
- data/app/models/spree/payment_method.rb +13 -11
- data/app/models/spree/payment_method/bogus_credit_card.rb +1 -1
- data/app/models/spree/payment_source.rb +1 -1
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +3 -9
- data/app/models/spree/product.rb +24 -19
- data/app/models/spree/product/scopes.rb +223 -210
- data/app/models/spree/product_option_type.rb +2 -2
- data/app/models/spree/product_promotion_rule.rb +2 -2
- data/app/models/spree/product_property.rb +2 -2
- data/app/models/spree/promotion.rb +46 -20
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +1 -1
- data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
- data/app/models/spree/promotion/rules/option_value.rb +2 -2
- data/app/models/spree/promotion/rules/product.rb +3 -3
- data/app/models/spree/promotion_action.rb +3 -9
- data/app/models/spree/promotion_chooser.rb +2 -2
- data/app/models/spree/promotion_code.rb +17 -11
- data/app/models/spree/promotion_code/batch_builder.rb +3 -3
- data/app/models/spree/promotion_code_batch.rb +2 -2
- data/app/models/spree/promotion_handler/coupon.rb +2 -2
- data/app/models/spree/promotion_rule.rb +3 -3
- data/app/models/spree/promotion_rule_role.rb +3 -3
- data/app/models/spree/promotion_rule_store.rb +2 -2
- data/app/models/spree/promotion_rule_taxon.rb +2 -2
- data/app/models/spree/promotion_rule_user.rb +2 -2
- data/app/models/spree/refund.rb +59 -17
- data/app/models/spree/reimbursement.rb +32 -13
- data/app/models/spree/reimbursement/credit.rb +2 -2
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -1
- data/app/models/spree/reimbursement_tax_calculator.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +12 -5
- data/app/models/spree/return_authorization.rb +5 -11
- data/app/models/spree/return_item.rb +33 -61
- data/app/models/spree/return_item/eligibility_validator/default.rb +1 -1
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/role_user.rb +2 -2
- data/app/models/spree/shipment.rb +9 -43
- data/app/models/spree/shipping_calculator.rb +1 -5
- data/app/models/spree/shipping_manifest.rb +5 -5
- data/app/models/spree/shipping_method.rb +3 -10
- data/app/models/spree/shipping_method_category.rb +2 -2
- data/app/models/spree/shipping_method_stock_location.rb +2 -2
- data/app/models/spree/shipping_method_zone.rb +2 -2
- data/app/models/spree/shipping_rate.rb +2 -2
- data/app/models/spree/shipping_rate_tax.rb +3 -3
- data/app/models/spree/state.rb +2 -2
- data/app/models/spree/state_change.rb +2 -2
- data/app/models/spree/stock/differentiator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
- data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
- data/app/models/spree/stock/package.rb +2 -2
- data/app/models/spree/stock/simple_coordinator.rb +1 -3
- data/app/models/spree/stock_item.rb +4 -10
- data/app/models/spree/stock_location.rb +2 -2
- data/app/models/spree/stock_movement.rb +4 -2
- data/app/models/spree/stock_quantities.rb +13 -12
- data/app/models/spree/store.rb +1 -1
- data/app/models/spree/store_credit.rb +9 -15
- data/app/models/spree/store_credit_category.rb +30 -3
- data/app/models/spree/store_credit_event.rb +4 -10
- data/app/models/spree/store_credit_reason.rb +0 -4
- data/app/models/spree/store_payment_method.rb +2 -2
- data/app/models/spree/store_shipping_method.rb +2 -2
- data/app/models/spree/tax/tax_helpers.rb +1 -1
- data/app/models/spree/tax_calculator/default.rb +0 -4
- data/app/models/spree/tax_calculator/shipping_rate.rb +0 -3
- data/app/models/spree/tax_category.rb +2 -8
- data/app/models/spree/tax_rate.rb +12 -8
- data/app/models/spree/tax_rate_tax_category.rb +2 -2
- data/app/models/spree/taxon.rb +1 -1
- data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
- data/app/models/spree/taxon/paperclip_attachment.rb +13 -0
- data/app/models/spree/unit_cancel.rb +5 -2
- data/app/models/spree/user_address.rb +10 -4
- data/app/models/spree/user_last_url_storer.rb +46 -0
- data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +36 -0
- data/app/models/spree/user_stock_location.rb +2 -2
- data/app/models/spree/variant.rb +17 -23
- data/app/models/spree/variant/scopes.rb +37 -29
- data/app/models/spree/variant_property_rule.rb +6 -2
- data/app/models/spree/variant_property_rule_condition.rb +2 -2
- data/app/models/spree/variant_property_rule_value.rb +2 -2
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +9 -4
- data/app/models/spree/wallet_payment_source.rb +2 -2
- data/app/models/spree/zone.rb +2 -2
- data/app/models/spree/zone_member.rb +2 -2
- data/config/initializers/inflections.rb +5 -0
- data/config/initializers/money.rb +2 -0
- data/config/locales/en.yml +78 -8
- data/db/default/spree/countries.rb +1 -1
- data/db/default/spree/states.rb +12 -4
- data/db/default/spree/store_credit.rb +2 -2
- data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
- data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
- data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
- data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
- data/lib/generators/solidus/install/install_generator.rb +253 -0
- data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +42 -3
- data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
- data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
- data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
- data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +2 -0
- data/lib/generators/spree/install/install_generator.rb +7 -189
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
- data/lib/spree/app_configuration.rb +135 -54
- data/lib/spree/awesome_nested_set_override.rb +44 -0
- data/lib/spree/core.rb +6 -0
- data/lib/spree/core/controller_helpers/auth.rb +18 -17
- data/lib/spree/core/controller_helpers/current_host.rb +17 -0
- data/lib/spree/core/controller_helpers/order.rb +8 -7
- data/lib/spree/core/engine.rb +41 -4
- data/lib/spree/core/importer/order.rb +47 -33
- data/lib/spree/core/importer/product.rb +2 -2
- data/lib/spree/core/permalinks.rb +1 -3
- data/lib/spree/core/product_filters.rb +16 -15
- data/lib/spree/core/role_configuration.rb +2 -2
- data/lib/spree/core/search/variant.rb +1 -1
- data/lib/spree/core/state_machines.rb +97 -0
- data/lib/spree/core/state_machines/inventory_unit.rb +42 -0
- data/lib/spree/core/state_machines/order.rb +249 -0
- data/lib/spree/core/state_machines/payment.rb +61 -0
- data/lib/spree/core/state_machines/reimbursement.rb +33 -0
- data/lib/spree/core/state_machines/return_authorization.rb +32 -0
- data/lib/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
- data/lib/spree/core/state_machines/return_item/reception_status.rb +42 -0
- data/lib/spree/core/state_machines/shipment.rb +58 -0
- data/lib/spree/core/stock_configuration.rb +1 -0
- data/lib/spree/core/validators/email.rb +1 -8
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/encryptor.rb +25 -0
- data/lib/spree/event.rb +40 -7
- data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
- data/lib/spree/event/configuration.rb +11 -6
- data/lib/spree/event/subscriber.rb +38 -18
- data/lib/spree/event/subscriber_registry.rb +92 -0
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +2 -1
- data/lib/spree/money.rb +2 -2
- data/lib/spree/paranoia_deprecations.rb +32 -12
- data/lib/spree/permission_sets/configuration_display.rb +14 -14
- data/lib/spree/permission_sets/default_customer.rb +16 -16
- data/lib/spree/permission_sets/order_display.rb +11 -11
- data/lib/spree/permission_sets/order_management.rb +1 -1
- data/lib/spree/permission_sets/product_display.rb +9 -9
- data/lib/spree/permission_sets/promotion_display.rb +5 -5
- data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
- data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
- data/lib/spree/permission_sets/stock_display.rb +2 -2
- data/lib/spree/permission_sets/stock_management.rb +1 -1
- data/lib/spree/permission_sets/user_display.rb +3 -3
- data/lib/spree/permission_sets/user_management.rb +7 -3
- data/lib/spree/permitted_attributes.rb +7 -6
- data/lib/spree/preferences/preferable.rb +4 -3
- data/lib/spree/preferences/preferable_class_methods.rb +22 -3
- data/lib/spree/preferences/static_model_preferences.rb +2 -2
- data/lib/spree/testing_support/ability_helpers.rb +9 -9
- data/lib/spree/testing_support/authorization_helpers.rb +1 -0
- data/lib/spree/testing_support/blacklist_urls.rb +23 -0
- data/lib/spree/testing_support/capybara_ext.rb +3 -0
- data/lib/spree/testing_support/common_rake.rb +3 -3
- data/lib/spree/testing_support/dummy_app.rb +45 -21
- data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +6 -4
- data/lib/spree/testing_support/factories/address_factory.rb +1 -2
- data/lib/spree/testing_support/factories/image_factory.rb +1 -1
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +8 -1
- data/lib/spree/testing_support/factories/promotion_factory.rb +13 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
- data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
- data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
- data/lib/spree/testing_support/factories/user_factory.rb +4 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/job_helpers.rb +24 -0
- data/lib/spree/testing_support/precompiled_assets.rb +15 -0
- data/lib/spree/testing_support/preferences.rb +3 -1
- data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
- data/lib/spree/testing_support/translations.rb +25 -0
- data/solidus_core.gemspec +12 -9
- metadata +120 -393
- data/script/rails +0 -10
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/base_helper_spec.rb +0 -168
- data/spec/helpers/products_helper_spec.rb +0 -202
- data/spec/helpers/taxons_helper_spec.rb +0 -43
- data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
- data/spec/lib/calculated_adjustments_spec.rb +0 -133
- data/spec/lib/i18n_spec.rb +0 -97
- data/spec/lib/search/base_spec.rb +0 -87
- data/spec/lib/search/variant_spec.rb +0 -115
- data/spec/lib/spree/app_configuration_spec.rb +0 -140
- data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
- data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
- data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
- data/spec/lib/spree/core/current_store_spec.rb +0 -33
- data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
- data/spec/lib/spree/core/importer/order_spec.rb +0 -484
- data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
- data/spec/lib/spree/core/stock_configuration_spec.rb +0 -59
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
- data/spec/lib/spree/core/validators/email_spec.rb +0 -53
- data/spec/lib/spree/core/version_spec.rb +0 -19
- data/spec/lib/spree/event/subscriber_spec.rb +0 -85
- data/spec/lib/spree/event_spec.rb +0 -118
- data/spec/lib/spree/localized_number_spec.rb +0 -45
- data/spec/lib/spree/migrations_spec.rb +0 -32
- data/spec/lib/spree/money_spec.rb +0 -298
- data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
- data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
- data/spec/lib/spree/promo/environment_spec.rb +0 -53
- data/spec/lib/tasks/dummy_task.rake +0 -12
- data/spec/lib/tasks/dummy_task_spec.rb +0 -30
- data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
- data/spec/mailers/carton_mailer_spec.rb +0 -44
- data/spec/mailers/order_mailer_spec.rb +0 -117
- data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
- data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
- data/spec/mailers/test_mailer_spec.rb +0 -13
- data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +0 -148
- data/spec/models/spree/ability_spec.rb +0 -279
- data/spec/models/spree/address_spec.rb +0 -376
- data/spec/models/spree/adjustment_reason_spec.rb +0 -11
- data/spec/models/spree/adjustment_spec.rb +0 -339
- data/spec/models/spree/asset_spec.rb +0 -25
- data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
- data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
- data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
- data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
- data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
- data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
- data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -35
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
- data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
- data/spec/models/spree/calculator_spec.rb +0 -43
- data/spec/models/spree/carton_spec.rb +0 -137
- data/spec/models/spree/classification_spec.rb +0 -114
- data/spec/models/spree/concerns/display_money_spec.rb +0 -44
- data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
- data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
- data/spec/models/spree/concerns/user_methods_spec.rb +0 -121
- data/spec/models/spree/country_spec.rb +0 -154
- data/spec/models/spree/credit_card_spec.rb +0 -373
- data/spec/models/spree/customer_return_spec.rb +0 -294
- data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
- data/spec/models/spree/exchange_spec.rb +0 -76
- data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
- data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
- data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
- data/spec/models/spree/gateway/bogus_simple.rb +0 -14
- data/spec/models/spree/gateway/bogus_spec.rb +0 -14
- data/spec/models/spree/gateway_spec.rb +0 -14
- data/spec/models/spree/image_spec.rb +0 -25
- data/spec/models/spree/inventory_unit_spec.rb +0 -309
- data/spec/models/spree/line_item_spec.rb +0 -240
- data/spec/models/spree/option_type_spec.rb +0 -16
- data/spec/models/spree/option_value_spec.rb +0 -52
- data/spec/models/spree/order/address_spec.rb +0 -52
- data/spec/models/spree/order/adjustments_spec.rb +0 -29
- data/spec/models/spree/order/callbacks_spec.rb +0 -44
- data/spec/models/spree/order/checkout_spec.rb +0 -740
- data/spec/models/spree/order/finalizing_spec.rb +0 -92
- data/spec/models/spree/order/number_generator_spec.rb +0 -47
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
- data/spec/models/spree/order/payment_spec.rb +0 -280
- data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
- data/spec/models/spree/order/state_machine_spec.rb +0 -122
- data/spec/models/spree/order/totals_spec.rb +0 -26
- data/spec/models/spree/order/updating_spec.rb +0 -18
- data/spec/models/spree/order/validations_spec.rb +0 -17
- data/spec/models/spree/order_cancellations_spec.rb +0 -233
- data/spec/models/spree/order_capturing_spec.rb +0 -16
- data/spec/models/spree/order_contents_spec.rb +0 -362
- data/spec/models/spree/order_inventory_spec.rb +0 -285
- data/spec/models/spree/order_merger_spec.rb +0 -162
- data/spec/models/spree/order_mutex_spec.rb +0 -89
- data/spec/models/spree/order_promotion_spec.rb +0 -33
- data/spec/models/spree/order_shipping_spec.rb +0 -247
- data/spec/models/spree/order_spec.rb +0 -1694
- data/spec/models/spree/order_taxation_spec.rb +0 -128
- data/spec/models/spree/order_update_attributes_spec.rb +0 -49
- data/spec/models/spree/order_updater_spec.rb +0 -555
- data/spec/models/spree/payment/cancellation_spec.rb +0 -84
- data/spec/models/spree/payment_create_spec.rb +0 -205
- data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
- data/spec/models/spree/payment_method/check_spec.rb +0 -80
- data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
- data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
- data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
- data/spec/models/spree/payment_method_spec.rb +0 -408
- data/spec/models/spree/payment_spec.rb +0 -1270
- data/spec/models/spree/permission_sets/base_spec.rb +0 -14
- data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
- data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
- data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
- data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
- data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
- data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
- data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
- data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
- data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
- data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
- data/spec/models/spree/permission_sets/user_management_spec.rb +0 -56
- data/spec/models/spree/preference_spec.rb +0 -79
- data/spec/models/spree/preferences/configuration_spec.rb +0 -27
- data/spec/models/spree/preferences/preferable_spec.rb +0 -334
- data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
- data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
- data/spec/models/spree/preferences/store_spec.rb +0 -40
- data/spec/models/spree/price_spec.rb +0 -150
- data/spec/models/spree/product/scopes_spec.rb +0 -164
- data/spec/models/spree/product_duplicator_spec.rb +0 -92
- data/spec/models/spree/product_filter_spec.rb +0 -28
- data/spec/models/spree/product_property_spec.rb +0 -20
- data/spec/models/spree/product_spec.rb +0 -584
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
- data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
- data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
- data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
- data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
- data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
- data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
- data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
- data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
- data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
- data/spec/models/spree/promotion_action_spec.rb +0 -44
- data/spec/models/spree/promotion_category_spec.rb +0 -19
- data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
- data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
- data/spec/models/spree/promotion_code_spec.rb +0 -206
- data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
- data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
- data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
- data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
- data/spec/models/spree/promotion_rule_spec.rb +0 -34
- data/spec/models/spree/promotion_spec.rb +0 -928
- data/spec/models/spree/refund_spec.rb +0 -200
- data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
- data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
- data/spec/models/spree/reimbursement_spec.rb +0 -278
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
- data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
- data/spec/models/spree/return_authorization_spec.rb +0 -226
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
- data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
- data/spec/models/spree/return_item_spec.rb +0 -785
- data/spec/models/spree/returns_calculator_spec.rb +0 -16
- data/spec/models/spree/shipment_spec.rb +0 -914
- data/spec/models/spree/shipping_calculator_spec.rb +0 -57
- data/spec/models/spree/shipping_manifest_spec.rb +0 -110
- data/spec/models/spree/shipping_method_spec.rb +0 -260
- data/spec/models/spree/shipping_rate_spec.rb +0 -154
- data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
- data/spec/models/spree/state_spec.rb +0 -43
- data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
- data/spec/models/spree/stock/availability_spec.rb +0 -143
- data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
- data/spec/models/spree/stock/content_item_spec.rb +0 -70
- data/spec/models/spree/stock/differentiator_spec.rb +0 -41
- data/spec/models/spree/stock/estimator_spec.rb +0 -241
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
- data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
- data/spec/models/spree/stock/package_spec.rb +0 -182
- data/spec/models/spree/stock/quantifier_spec.rb +0 -113
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
- data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
- data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
- data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
- data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
- data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
- data/spec/models/spree/stock_item_spec.rb +0 -348
- data/spec/models/spree/stock_location_spec.rb +0 -288
- data/spec/models/spree/stock_movement_spec.rb +0 -58
- data/spec/models/spree/stock_quantities_spec.rb +0 -249
- data/spec/models/spree/store_credit_category_spec.rb +0 -19
- data/spec/models/spree/store_credit_event_spec.rb +0 -328
- data/spec/models/spree/store_credit_spec.rb +0 -900
- data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
- data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
- data/spec/models/spree/store_spec.rb +0 -156
- data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
- data/spec/models/spree/tax/tax_location_spec.rb +0 -79
- data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
- data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
- data/spec/models/spree/tax_category_spec.rb +0 -50
- data/spec/models/spree/tax_rate_spec.rb +0 -316
- data/spec/models/spree/taxon_spec.rb +0 -197
- data/spec/models/spree/taxonomy_spec.rb +0 -15
- data/spec/models/spree/unit_cancel_spec.rb +0 -121
- data/spec/models/spree/user_spec.rb +0 -247
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
- data/spec/models/spree/variant/price_selector_spec.rb +0 -90
- data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
- data/spec/models/spree/variant/scopes_spec.rb +0 -94
- data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
- data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
- data/spec/models/spree/variant_property_rule_spec.rb +0 -85
- data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
- data/spec/models/spree/variant_spec.rb +0 -862
- data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
- data/spec/models/spree/wallet_spec.rb +0 -155
- data/spec/models/spree/zone_spec.rb +0 -248
- data/spec/rails_helper.rb +0 -46
- data/spec/shared_examples/calculator_shared_examples.rb +0 -10
- data/spec/spec_helper.rb +0 -36
- data/spec/support/big_decimal.rb +0 -7
- data/spec/support/concerns/default_price.rb +0 -44
- data/spec/support/concerns/payment_source.rb +0 -66
- data/spec/support/concerns/working_factories.rb +0 -15
- data/spec/support/dummy_ability.rb +0 -7
|
@@ -24,12 +24,20 @@ require 'spree/core/environment'
|
|
|
24
24
|
|
|
25
25
|
module Spree
|
|
26
26
|
class AppConfiguration < Preferences::Configuration
|
|
27
|
-
#
|
|
27
|
+
# Preferences (alphabetized to more easily lookup particular preferences)
|
|
28
|
+
|
|
29
|
+
# @!attribute [rw] address_requires_phone
|
|
30
|
+
# @return [Boolean] should phone number be required (default: +true+)
|
|
31
|
+
preference :address_requires_phone, :boolean, default: true
|
|
28
32
|
|
|
29
33
|
# @!attribute [rw] address_requires_state
|
|
30
34
|
# @return [Boolean] should state/state_name be required (default: +true+)
|
|
31
35
|
preference :address_requires_state, :boolean, default: true
|
|
32
36
|
|
|
37
|
+
# @!attribute [rw] legacy
|
|
38
|
+
# @return [Boolean] use the legacy address' state validation logic (default: +true+)
|
|
39
|
+
preference :use_legacy_address_state_validator, :boolean, default: true
|
|
40
|
+
|
|
33
41
|
# @!attribute [rw] admin_interface_logo
|
|
34
42
|
# @return [String] URL of logo used in admin (default: +'logo/solidus.svg'+)
|
|
35
43
|
preference :admin_interface_logo, :string, default: 'logo/solidus.svg'
|
|
@@ -42,6 +50,12 @@ module Spree
|
|
|
42
50
|
# @return [Integer] Number of variants to display in admin (default: +20+)
|
|
43
51
|
preference :admin_variants_per_page, :integer, default: 20
|
|
44
52
|
|
|
53
|
+
# @!attribute [rw] admin_vat_country_iso
|
|
54
|
+
# Set this if you want to enter prices in the backend including value added tax.
|
|
55
|
+
# @return [String, nil] Two-letter ISO code of that {Spree::Country} for which
|
|
56
|
+
# prices are entered in the backend (default: nil)
|
|
57
|
+
preference :admin_vat_country_iso, :string, default: nil
|
|
58
|
+
|
|
45
59
|
# @!attribute [rw] allow_checkout_on_gateway_error
|
|
46
60
|
# @return [Boolean] Allow checkout to complete after a failed payment (default: +false+)
|
|
47
61
|
preference :allow_checkout_on_gateway_error, :boolean, default: false
|
|
@@ -50,6 +64,10 @@ module Spree
|
|
|
50
64
|
# @return [Boolean] When false, customers must create an account to complete an order (default: +true+)
|
|
51
65
|
preference :allow_guest_checkout, :boolean, default: true
|
|
52
66
|
|
|
67
|
+
# @!attribute [rw] guest_token_cookie_options
|
|
68
|
+
# @return [Hash] Add additional guest_token cookie options here (ie. domain or path)
|
|
69
|
+
preference :guest_token_cookie_options, :hash, default: {}
|
|
70
|
+
|
|
53
71
|
# @!attribute [rw] allow_return_item_amount_editing
|
|
54
72
|
# @return [Boolean] Determines whether an admin is allowed to change a return item's pre-calculated amount (default: +false+)
|
|
55
73
|
preference :allow_return_item_amount_editing, :boolean, default: false
|
|
@@ -78,6 +96,21 @@ module Spree
|
|
|
78
96
|
# @return [Boolean] Automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
|
|
79
97
|
preference :auto_capture_exchanges, :boolean, default: false
|
|
80
98
|
|
|
99
|
+
# @!attribute [rw] automatic_default_address
|
|
100
|
+
# The default value of true preserves existing backwards compatible feature of
|
|
101
|
+
# treating the most recently used address in checkout as the user's default address.
|
|
102
|
+
# Setting to false means that the user should manage their own default via some
|
|
103
|
+
# custom UI that uses AddressBookController.
|
|
104
|
+
# @return [Boolean] Whether use of an address in checkout marks it as user's default
|
|
105
|
+
preference :automatic_default_address, :boolean, default: true
|
|
106
|
+
|
|
107
|
+
# @!attribute [rw] billing_address_required
|
|
108
|
+
# Controls whether billing address is required or not in the checkout process
|
|
109
|
+
# by default, can be overridden at order level.
|
|
110
|
+
# (default: +false+)
|
|
111
|
+
# @return [Boolean]
|
|
112
|
+
preference :billing_address_required, :boolean, default: false
|
|
113
|
+
|
|
81
114
|
# @!attribute [rw] binary_inventory_cache
|
|
82
115
|
# Only invalidate product caches when they change from in stock to out of
|
|
83
116
|
# stock. By default, caches are invalidated on any change of inventory
|
|
@@ -88,20 +121,9 @@ module Spree
|
|
|
88
121
|
# @return [Boolean]
|
|
89
122
|
preference :binary_inventory_cache, :boolean, default: false
|
|
90
123
|
|
|
91
|
-
# @!attribute [rw]
|
|
92
|
-
# @return [
|
|
93
|
-
preference :
|
|
94
|
-
|
|
95
|
-
# @!attribute [rw] completable_order_created_cutoff
|
|
96
|
-
# @return [Integer] the number of days to look back for updated orders which get returned to the user as last completed
|
|
97
|
-
preference :completable_order_updated_cutoff_days, :integer, default: nil
|
|
98
|
-
|
|
99
|
-
# @!attribute [rw] inventory_cache_threshold
|
|
100
|
-
# Only invalidate product caches when the count on hand for a stock item
|
|
101
|
-
# falls below or rises about the inventory_cache_threshold. When undefined, the
|
|
102
|
-
# product caches will be invalidated anytime the count on hand is changed.
|
|
103
|
-
# @return [Integer]
|
|
104
|
-
preference :inventory_cache_threshold, :integer
|
|
124
|
+
# @!attribute [rw] can_restrict_stock_management
|
|
125
|
+
# @return [Boolean] Indicates if stock management can be restricted by location
|
|
126
|
+
preference :can_restrict_stock_management, :boolean, default: false
|
|
105
127
|
|
|
106
128
|
# @!attribute [rw] checkout_zone
|
|
107
129
|
# @return [String] Name of a {Spree::Zone}, which limits available countries to those included in that zone. (default: +nil+)
|
|
@@ -111,11 +133,27 @@ module Spree
|
|
|
111
133
|
# @return [Boolean] Request company field for billing and shipping addresses. (default: +false+)
|
|
112
134
|
preference :company, :boolean, default: false
|
|
113
135
|
|
|
136
|
+
# @!attribute [rw] completable_order_created_cutoff
|
|
137
|
+
# @return [Integer] the number of days to look back for created orders which get returned to the user as last completed
|
|
138
|
+
preference :completable_order_created_cutoff_days, :integer, default: nil
|
|
139
|
+
|
|
140
|
+
# @!attribute [rw] completable_order_created_cutoff
|
|
141
|
+
# @return [Integer] the number of days to look back for updated orders which get returned to the user as last completed
|
|
142
|
+
preference :completable_order_updated_cutoff_days, :integer, default: nil
|
|
143
|
+
|
|
144
|
+
# @!attribute [rw] credit_to_new_allocation
|
|
145
|
+
# @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
|
|
146
|
+
preference :credit_to_new_allocation, :boolean, default: false
|
|
147
|
+
|
|
114
148
|
# @!attribute [rw] currency
|
|
115
149
|
# Currency to use by default when not defined on the site (default: +"USD"+)
|
|
116
150
|
# @return [String] ISO 4217 Three letter currency code
|
|
117
151
|
preference :currency, :string, default: "USD"
|
|
118
152
|
|
|
153
|
+
# @!attribute [rw] customer_returns_per_page
|
|
154
|
+
# @return [Integer] Customer returns to show per-page in the admin (default: +15+)
|
|
155
|
+
preference :customer_returns_per_page, :integer, default: 15
|
|
156
|
+
|
|
119
157
|
# @!attribute [rw] default_country_id
|
|
120
158
|
# @deprecated Use the default country ISO preference instead
|
|
121
159
|
# @return [Integer,nil] id of {Spree::Country} to be selected by default in dropdowns (default: nil)
|
|
@@ -126,17 +164,22 @@ module Spree
|
|
|
126
164
|
# @return [String] Two-letter ISO code of a {Spree::Country} to assumed as the country of an unidentified customer (default: "US")
|
|
127
165
|
preference :default_country_iso, :string, default: 'US'
|
|
128
166
|
|
|
129
|
-
# @!attribute [rw]
|
|
130
|
-
#
|
|
131
|
-
|
|
132
|
-
# prices are entered in the backend (default: nil)
|
|
133
|
-
preference :admin_vat_country_iso, :string, default: nil
|
|
167
|
+
# @!attribute [rw] use_custom_cancancan_actions
|
|
168
|
+
# @return [Boolean] Allow to use legacy Solidus custom CanCanCan action aliases (default: +true+)
|
|
169
|
+
preference :use_custom_cancancan_actions, :boolean, default: true
|
|
134
170
|
|
|
135
171
|
# @!attribute [rw] generate_api_key_for_all_roles
|
|
136
172
|
# @return [Boolean] Allow generating api key automatically for user
|
|
137
173
|
# at role_user creation for all roles. (default: +false+)
|
|
138
174
|
preference :generate_api_key_for_all_roles, :boolean, default: false
|
|
139
175
|
|
|
176
|
+
# @!attribute [rw] inventory_cache_threshold
|
|
177
|
+
# Only invalidate product caches when the count on hand for a stock item
|
|
178
|
+
# falls below or rises about the inventory_cache_threshold. When undefined, the
|
|
179
|
+
# product caches will be invalidated anytime the count on hand is changed.
|
|
180
|
+
# @return [Integer]
|
|
181
|
+
preference :inventory_cache_threshold, :integer
|
|
182
|
+
|
|
140
183
|
# @!attribute [rw] layout
|
|
141
184
|
# @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
|
|
142
185
|
preference :layout, :string, default: 'spree/layouts/spree_application'
|
|
@@ -145,6 +188,14 @@ module Spree
|
|
|
145
188
|
# @return [String] URL of logo used on frontend (default: +'logo/solidus.svg'+)
|
|
146
189
|
preference :logo, :string, default: 'logo/solidus.svg'
|
|
147
190
|
|
|
191
|
+
# @!attribute [rw] mails_from
|
|
192
|
+
# @return [String] Email address used as +From:+ field in transactional emails.
|
|
193
|
+
preference :mails_from, :string, default: 'spree@example.com'
|
|
194
|
+
|
|
195
|
+
# @!attribute [rw] max_level_in_taxons_menu
|
|
196
|
+
# @return [Integer] maximum nesting level in taxons menu (default: +1+)
|
|
197
|
+
preference :max_level_in_taxons_menu, :integer, default: 1
|
|
198
|
+
|
|
148
199
|
# @!attribute [rw] order_bill_address_used
|
|
149
200
|
# @return [Boolean] Use the order's bill address, as opposed to storing
|
|
150
201
|
# bill addresses on payment sources. (default: +true+)
|
|
@@ -154,10 +205,6 @@ module Spree
|
|
|
154
205
|
# @return [Integer] the number of days to look back for fully-shipped/cancelled orders in order to charge for them
|
|
155
206
|
preference :order_capturing_time_window, :integer, default: 14
|
|
156
207
|
|
|
157
|
-
# @!attribute [rw] max_level_in_taxons_menu
|
|
158
|
-
# @return [Integer] maximum nesting level in taxons menu (default: +1+)
|
|
159
|
-
preference :max_level_in_taxons_menu, :integer, default: 1
|
|
160
|
-
|
|
161
208
|
# @!attribute [rw] order_mutex_max_age
|
|
162
209
|
# @return [Integer] Max age of {Spree::OrderMutex} in seconds (default: 2 minutes)
|
|
163
210
|
preference :order_mutex_max_age, :integer, default: 120
|
|
@@ -178,9 +225,22 @@ module Spree
|
|
|
178
225
|
# @return [Integer] Promotions to show per-page in the admin (default: +15+)
|
|
179
226
|
preference :promotions_per_page, :integer, default: 15
|
|
180
227
|
|
|
181
|
-
# @!attribute [rw]
|
|
182
|
-
# @return [
|
|
183
|
-
preference :
|
|
228
|
+
# @!attribute [rw] disable_actionless_promotion_validation
|
|
229
|
+
# @return [Boolean] Promotions should have actions associated before being considered active (default: +true+)
|
|
230
|
+
preference :consider_actionless_promotion_active, :boolean, default: true
|
|
231
|
+
|
|
232
|
+
# @!attribute [rw] raise_with_invalid_currency
|
|
233
|
+
# Whether to raise an exception if trying to set a line item currency
|
|
234
|
+
# different from the order currency. When false a validation error
|
|
235
|
+
# is added to the instance instead.
|
|
236
|
+
# @return [Boolean] (default: +true+)
|
|
237
|
+
preference :raise_with_invalid_currency, :boolean, default: true
|
|
238
|
+
|
|
239
|
+
# @!attribute [rw] redirect_back_on_unauthorized
|
|
240
|
+
# Whether to try to redirect users back when they try to access
|
|
241
|
+
# unauthorized routes, before redirect them to /unauthorized.
|
|
242
|
+
# @return [Boolean] (default: +false+)
|
|
243
|
+
preference :redirect_back_on_unauthorized, :boolean, default: false
|
|
184
244
|
|
|
185
245
|
# @!attribute [rw] require_master_price
|
|
186
246
|
# @return [Boolean] Require a price on the master variant of a product (default: +true+)
|
|
@@ -200,6 +260,22 @@ module Spree
|
|
|
200
260
|
# (default: +['admin']+)
|
|
201
261
|
preference :roles_for_auto_api_key, :array, default: ['admin']
|
|
202
262
|
|
|
263
|
+
# @!attribute [rw] countries_that_use_nested_subregions
|
|
264
|
+
# @return [Array] An array of countries that use nested subregions, instead
|
|
265
|
+
# of the default subregions that come with Carmen. Will be used on store creation
|
|
266
|
+
# to ensure the correct states are generated, and when running the states
|
|
267
|
+
# regenerate rake task.
|
|
268
|
+
# (default: +['IT']+)
|
|
269
|
+
preference :countries_that_use_nested_subregions, :array, default: ['IT']
|
|
270
|
+
|
|
271
|
+
# @!attribute [rw] run_order_validations_on_order_updater
|
|
272
|
+
# @return [Boolean] Whether to run validation when updating an order with the OrderUpdater
|
|
273
|
+
preference :run_order_validations_on_order_updater, :boolean, default: false
|
|
274
|
+
|
|
275
|
+
# @!attribute [rw] send_core_emails
|
|
276
|
+
# @return [Boolean] Whether to send transactional emails (default: true)
|
|
277
|
+
preference :send_core_emails, :boolean, default: true
|
|
278
|
+
|
|
203
279
|
# @!attribute [rw] shipping_instructions
|
|
204
280
|
# @return [Boolean] Request instructions/info for shipping (default: +false+)
|
|
205
281
|
preference :shipping_instructions, :boolean, default: false
|
|
@@ -231,33 +307,23 @@ module Spree
|
|
|
231
307
|
# @return [] Track on_hand values for variants / products. (default: true)
|
|
232
308
|
preference :track_inventory_levels, :boolean, default: true
|
|
233
309
|
|
|
234
|
-
#
|
|
235
|
-
|
|
236
|
-
#
|
|
237
|
-
|
|
238
|
-
preference :send_core_emails, :boolean, default: true
|
|
310
|
+
# @!attribute [rw] use_combined_first_and_last_name_in_address
|
|
311
|
+
# @return [Boolean] Use Spree::Address combined first and last name in HTML views and
|
|
312
|
+
# API responses. (default: +false+)
|
|
313
|
+
preference :use_combined_first_and_last_name_in_address, :boolean, default: false
|
|
239
314
|
|
|
240
|
-
# @!attribute [rw]
|
|
241
|
-
# @return [
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
# Store credits configurations
|
|
245
|
-
|
|
246
|
-
# @!attribute [rw] credit_to_new_allocation
|
|
247
|
-
# @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
|
|
248
|
-
preference :credit_to_new_allocation, :boolean, default: false
|
|
315
|
+
# @!attribute [rw] use_legacy_order_state_machine
|
|
316
|
+
# @return [Boolean] Uses the legacy order state machine from Spree::Order::Checkout
|
|
317
|
+
# (default: +false+)
|
|
318
|
+
preference :use_legacy_order_state_machine, :boolean, default: true
|
|
249
319
|
|
|
250
|
-
#
|
|
251
|
-
#
|
|
252
|
-
#
|
|
253
|
-
#
|
|
254
|
-
|
|
255
|
-
# @return [Boolean] Whether use of an address in checkout marks it as user's default
|
|
256
|
-
preference :automatic_default_address, :boolean, default: true
|
|
320
|
+
# The legacy_store_credit_category_name allows to control whether the legacy
|
|
321
|
+
# way of fetching the category should be used.
|
|
322
|
+
#
|
|
323
|
+
# @param [Boolean] enable/disable the legacy way of fetching the store category name
|
|
324
|
+
preference :use_legacy_store_credit_reimbursement_category_name, :boolean, default: true
|
|
257
325
|
|
|
258
|
-
#
|
|
259
|
-
# @return [Boolean] Indicates if stock management can be restricted by location
|
|
260
|
-
preference :can_restrict_stock_management, :boolean, default: false
|
|
326
|
+
# Other configurations
|
|
261
327
|
|
|
262
328
|
# Allows restricting what currencies will be available.
|
|
263
329
|
#
|
|
@@ -292,6 +358,14 @@ module Spree
|
|
|
292
358
|
|
|
293
359
|
class_name_attribute :variant_search_class, default: 'Spree::Core::Search::Variant'
|
|
294
360
|
|
|
361
|
+
# Allows implementing custom vat prices generation
|
|
362
|
+
# @!attribute [rw] variant_vat_prices_generator_class
|
|
363
|
+
# @see Spree::Variant::VatPriceGenerator
|
|
364
|
+
# @return [Class] an object that conforms to the API of
|
|
365
|
+
# the standard variant vat prices generator class
|
|
366
|
+
# Spree::Variant::VatPriceGenerator.
|
|
367
|
+
class_name_attribute :variant_vat_prices_generator_class, default: 'Spree::Variant::VatPriceGenerator'
|
|
368
|
+
|
|
295
369
|
# promotion_chooser_class allows extensions to provide their own PromotionChooser
|
|
296
370
|
class_name_attribute :promotion_chooser_class, default: 'Spree::PromotionChooser'
|
|
297
371
|
|
|
@@ -306,7 +380,6 @@ module Spree
|
|
|
306
380
|
# @!attribute [rw] shipping_rate_tax_calculator_class
|
|
307
381
|
# @return [Class] a class with the same public interfaces as
|
|
308
382
|
# Spree::TaxCalculator::ShippingRate
|
|
309
|
-
# @api experimental
|
|
310
383
|
class_name_attribute :shipping_rate_tax_calculator_class, default: 'Spree::TaxCalculator::ShippingRate'
|
|
311
384
|
|
|
312
385
|
# Allows providing your own Mailer for order mailer.
|
|
@@ -384,7 +457,6 @@ module Spree
|
|
|
384
457
|
# @!attribute [rw] tax_adjuster_class
|
|
385
458
|
# @return [Class] a class with the same public interfaces as
|
|
386
459
|
# Spree::Tax::OrderAdjuster
|
|
387
|
-
# @api experimental
|
|
388
460
|
class_name_attribute :tax_adjuster_class, default: 'Spree::Tax::OrderAdjuster'
|
|
389
461
|
|
|
390
462
|
# Allows providing your own class for calculating taxes on an order.
|
|
@@ -392,7 +464,6 @@ module Spree
|
|
|
392
464
|
# @!attribute [rw] tax_calculator_class
|
|
393
465
|
# @return [Class] a class with the same public interfaces as
|
|
394
466
|
# Spree::TaxCalculator::Default
|
|
395
|
-
# @api experimental
|
|
396
467
|
class_name_attribute :tax_calculator_class, default: 'Spree::TaxCalculator::Default'
|
|
397
468
|
|
|
398
469
|
# Allows providing your own class for choosing which store to use.
|
|
@@ -454,6 +525,10 @@ module Spree
|
|
|
454
525
|
@order_number_generator ||= Spree::Order::NumberGenerator.new
|
|
455
526
|
end
|
|
456
527
|
|
|
528
|
+
def state_machines
|
|
529
|
+
@state_machines ||= Spree::Core::StateMachines.new
|
|
530
|
+
end
|
|
531
|
+
|
|
457
532
|
def static_model_preferences
|
|
458
533
|
@static_model_preferences ||= Spree::Preferences::StaticModelPreferences.new
|
|
459
534
|
end
|
|
@@ -473,6 +548,12 @@ module Spree
|
|
|
473
548
|
@events_configuration ||= Spree::Event::Configuration.new
|
|
474
549
|
end
|
|
475
550
|
|
|
551
|
+
def user_last_url_storer_rules
|
|
552
|
+
@user_last_url_storer_rules ||= ::Spree::Core::ClassConstantizer::Set.new.tap do |set|
|
|
553
|
+
set << 'Spree::UserLastUrlStorer::Rules::AuthenticationRule'
|
|
554
|
+
end
|
|
555
|
+
end
|
|
556
|
+
|
|
476
557
|
def environment
|
|
477
558
|
@environment ||= Spree::Core::Environment.new(self).tap do |env|
|
|
478
559
|
env.calculators.promotion_actions_create_adjustments = %w[
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module AwesomeNestedSetOvveride
|
|
4
|
+
# Add :polimorphic key option only when used to make it work with Rails 6.1+,
|
|
5
|
+
# required since rails/rails@2c008d9
|
|
6
|
+
# This can be removed when upgrading to an awesome_nested_set version
|
|
7
|
+
# compliant with Rails 6.1+, already addressed in
|
|
8
|
+
# collectiveidea/awesome_nested_set#421
|
|
9
|
+
module RelateParent
|
|
10
|
+
def acts_as_nested_set_relate_parent!
|
|
11
|
+
# Disable Rubocop to keep original code for diffs
|
|
12
|
+
# rubocop:disable
|
|
13
|
+
options = {
|
|
14
|
+
:class_name => self.base_class.to_s,
|
|
15
|
+
:foreign_key => parent_column_name,
|
|
16
|
+
:primary_key => primary_column_name,
|
|
17
|
+
:counter_cache => acts_as_nested_set_options[:counter_cache],
|
|
18
|
+
:inverse_of => (:children unless acts_as_nested_set_options[:polymorphic]),
|
|
19
|
+
:touch => acts_as_nested_set_options[:touch]
|
|
20
|
+
}
|
|
21
|
+
options[:polymorphic] = true if acts_as_nested_set_options[:polymorphic]
|
|
22
|
+
options[:optional] = true if ActiveRecord::VERSION::MAJOR >= 5
|
|
23
|
+
belongs_to :parent, options
|
|
24
|
+
# rubocop:enable
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
CollectiveIdea::Acts::NestedSet.prepend self
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Skip breaking model reload before update depth. Already addressed in
|
|
31
|
+
# collectiveidea/awesome_nested_set#413
|
|
32
|
+
# This can be removed when a new version of awesome_nested_set is released.
|
|
33
|
+
module Model
|
|
34
|
+
def set_depth!
|
|
35
|
+
return unless has_depth_column?
|
|
36
|
+
|
|
37
|
+
in_tenacious_transaction do
|
|
38
|
+
update_depth(level)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
CollectiveIdea::Acts::NestedSet::Model.prepend self
|
|
43
|
+
end
|
|
44
|
+
end
|
data/lib/spree/core.rb
CHANGED
|
@@ -78,6 +78,7 @@ require 'spree/core/product_duplicator'
|
|
|
78
78
|
require 'spree/core/current_store'
|
|
79
79
|
require 'spree/core/controller_helpers/auth'
|
|
80
80
|
require 'spree/core/controller_helpers/common'
|
|
81
|
+
require 'spree/core/controller_helpers/current_host'
|
|
81
82
|
require 'spree/core/controller_helpers/order'
|
|
82
83
|
require 'spree/core/controller_helpers/payment_parameters'
|
|
83
84
|
require 'spree/core/controller_helpers/pricing'
|
|
@@ -85,6 +86,7 @@ require 'spree/core/controller_helpers/search'
|
|
|
85
86
|
require 'spree/core/controller_helpers/store'
|
|
86
87
|
require 'spree/core/controller_helpers/strong_parameters'
|
|
87
88
|
require 'spree/core/role_configuration'
|
|
89
|
+
require 'spree/core/state_machines'
|
|
88
90
|
require 'spree/core/stock_configuration'
|
|
89
91
|
require 'spree/core/validators/email'
|
|
90
92
|
require 'spree/permission_sets'
|
|
@@ -92,3 +94,7 @@ require 'spree/permission_sets'
|
|
|
92
94
|
require 'spree/preferences/store'
|
|
93
95
|
require 'spree/preferences/static_model_preferences'
|
|
94
96
|
require 'spree/preferences/scoped_store'
|
|
97
|
+
|
|
98
|
+
if Rails.gem_version >= Gem::Version.new('6.1.0.alpha')
|
|
99
|
+
require 'spree/awesome_nested_set_override'
|
|
100
|
+
end
|
|
@@ -11,7 +11,7 @@ module Spree
|
|
|
11
11
|
# @!attribute [rw] unauthorized_redirect
|
|
12
12
|
# @!scope class
|
|
13
13
|
# Extension point for overriding behaviour of access denied errors.
|
|
14
|
-
# Default behaviour is to redirect to "/unauthorized" with a flash
|
|
14
|
+
# Default behaviour is to redirect back or to "/unauthorized" with a flash
|
|
15
15
|
# message.
|
|
16
16
|
# @return [Proc] action to take when access denied error is raised.
|
|
17
17
|
|
|
@@ -22,7 +22,20 @@ module Spree
|
|
|
22
22
|
class_attribute :unauthorized_redirect
|
|
23
23
|
self.unauthorized_redirect = -> do
|
|
24
24
|
flash[:error] = I18n.t('spree.authorization_failure')
|
|
25
|
-
|
|
25
|
+
if Spree::Config.redirect_back_on_unauthorized
|
|
26
|
+
redirect_back(fallback_location: "/unauthorized")
|
|
27
|
+
else
|
|
28
|
+
Spree::Deprecation.warn <<-WARN.strip_heredoc, caller
|
|
29
|
+
Having Spree::Config.redirect_back_on_unauthorized set
|
|
30
|
+
to `false` is deprecated and will not be supported in Solidus 3.0.
|
|
31
|
+
|
|
32
|
+
Please change this configuration to `true` and be sure that your
|
|
33
|
+
application does not break trying to redirect back when there is
|
|
34
|
+
an unauthorized access.
|
|
35
|
+
WARN
|
|
36
|
+
|
|
37
|
+
redirect_to "/unauthorized"
|
|
38
|
+
end
|
|
26
39
|
end
|
|
27
40
|
|
|
28
41
|
rescue_from CanCan::AccessDenied do
|
|
@@ -42,27 +55,15 @@ module Spree
|
|
|
42
55
|
|
|
43
56
|
def set_guest_token
|
|
44
57
|
unless cookies.signed[:guest_token].present?
|
|
45
|
-
cookies.permanent.signed[:guest_token] =
|
|
58
|
+
cookies.permanent.signed[:guest_token] = Spree::Config[:guest_token_cookie_options].merge(
|
|
46
59
|
value: SecureRandom.urlsafe_base64(nil, false),
|
|
47
60
|
httponly: true
|
|
48
|
-
|
|
61
|
+
)
|
|
49
62
|
end
|
|
50
63
|
end
|
|
51
64
|
|
|
52
65
|
def store_location
|
|
53
|
-
|
|
54
|
-
authentication_routes = [:spree_signup_path, :spree_login_path, :spree_logout_path]
|
|
55
|
-
disallowed_urls = []
|
|
56
|
-
authentication_routes.each do |route|
|
|
57
|
-
if respond_to?(route)
|
|
58
|
-
disallowed_urls << send(route)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
disallowed_urls.map!{ |url| url[/\/\w+$/] }
|
|
63
|
-
unless disallowed_urls.include?(request.fullpath)
|
|
64
|
-
session['spree_user_return_to'] = request.fullpath.gsub('//', '/')
|
|
65
|
-
end
|
|
66
|
+
Spree::UserLastUrlStorer.new(self).store_location
|
|
66
67
|
end
|
|
67
68
|
|
|
68
69
|
# proxy method to *possible* spree_current_user method
|