solidus_core 2.10.0 → 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/mailers/spree/base_mailer.rb +4 -0
- data/app/mailers/spree/order_mailer.rb +1 -1
- 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/active_storage_adapter.rb +116 -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 +86 -32
- data/app/models/concerns/spree/user_methods.rb +3 -2
- data/app/models/spree/ability.rb +34 -10
- data/app/models/spree/address/name.rb +49 -0
- data/app/models/spree/address/state_validator.rb +71 -0
- data/app/models/spree/address.rb +94 -17
- data/app/models/spree/adjustment.rb +1 -1
- data/app/models/spree/base.rb +1 -0
- 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/credit_card.rb +2 -2
- data/app/models/spree/customer_return.rb +4 -2
- data/app/models/spree/exchange.rb +1 -1
- data/app/models/spree/image/active_storage_attachment.rb +21 -0
- data/app/models/spree/inventory_unit.rb +1 -1
- data/app/models/spree/line_item.rb +13 -4
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/checkout.rb +1 -0
- data/app/models/spree/order.rb +91 -20
- data/app/models/spree/order_inventory.rb +16 -4
- data/app/models/spree/order_merger.rb +6 -4
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/order_updater.rb +11 -10
- data/app/models/spree/payment/cancellation.rb +3 -3
- data/app/models/spree/payment/processing.rb +54 -30
- data/app/models/spree/payment.rb +3 -3
- data/app/models/spree/payment_method.rb +8 -9
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +2 -8
- data/app/models/spree/product/scopes.rb +10 -5
- data/app/models/spree/product.rb +19 -14
- data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
- data/app/models/spree/promotion.rb +18 -7
- data/app/models/spree/promotion_action.rb +1 -7
- data/app/models/spree/promotion_code.rb +6 -1
- data/app/models/spree/promotion_code_batch.rb +1 -1
- data/app/models/spree/promotion_handler/coupon.rb +2 -2
- data/app/models/spree/promotion_rule.rb +1 -1
- data/app/models/spree/promotion_rule_role.rb +1 -1
- data/app/models/spree/refund.rb +54 -12
- data/app/models/spree/reimbursement.rb +27 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
- data/app/models/spree/return_authorization.rb +1 -1
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
- data/app/models/spree/return_item.rb +21 -10
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/shipment.rb +2 -2
- data/app/models/spree/shipping_calculator.rb +1 -1
- data/app/models/spree/shipping_manifest.rb +2 -2
- data/app/models/spree/shipping_method.rb +2 -9
- data/app/models/spree/shipping_rate.rb +1 -1
- data/app/models/spree/shipping_rate_tax.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 +1 -1
- data/app/models/spree/stock/simple_coordinator.rb +1 -3
- data/app/models/spree/stock_item.rb +2 -8
- data/app/models/spree/stock_movement.rb +2 -0
- data/app/models/spree/store.rb +1 -1
- data/app/models/spree/store_credit.rb +1 -7
- data/app/models/spree/store_credit_category.rb +30 -3
- data/app/models/spree/store_credit_event.rb +1 -7
- data/app/models/spree/store_credit_reason.rb +0 -4
- data/app/models/spree/tax/tax_helpers.rb +1 -1
- data/app/models/spree/tax_category.rb +2 -8
- data/app/models/spree/tax_rate.rb +7 -7
- data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
- data/app/models/spree/taxon.rb +1 -1
- data/app/models/spree/user_address.rb +8 -2
- data/app/models/spree/variant.rb +7 -13
- data/app/models/spree/variant_property_rule.rb +5 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
- data/app/models/spree/zone.rb +1 -1
- data/config/locales/en.yml +44 -5
- 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 +36 -5
- 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 +117 -51
- data/lib/spree/awesome_nested_set_override.rb +44 -0
- data/lib/spree/core/controller_helpers/auth.rb +17 -4
- 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/controller_helpers/strong_parameters.rb +21 -7
- data/lib/spree/core/engine.rb +39 -2
- data/lib/spree/core/importer/order.rb +26 -11
- data/lib/spree/core/permalinks.rb +1 -3
- data/lib/spree/core/product_filters.rb +6 -5
- data/lib/spree/core/state_machines/order.rb +249 -0
- data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
- data/lib/spree/core/state_machines.rb +20 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +5 -11
- data/lib/spree/encryptor.rb +25 -0
- 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/event.rb +40 -7
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +2 -1
- 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 +4 -3
- data/lib/spree/permitted_attributes.rb +79 -9
- data/lib/spree/preferences/preferable.rb +4 -3
- data/lib/spree/preferences/preferable_class_methods.rb +22 -3
- 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/migrations.rb +5 -6
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
- data/lib/spree/testing_support/dummy_app.rb +44 -23
- 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/promotion_factory.rb +6 -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/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 +8 -5
- metadata +81 -359
- 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 -91
- 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 -41
- 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 -95
- 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 -130
- 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/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/models/spree/ability_spec.rb +0 -279
- data/spec/models/spree/address_spec.rb +0 -399
- 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 -44
- 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 -145
- data/spec/models/spree/classification_spec.rb +0 -126
- 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 -122
- 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/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 -1687
- 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 -556
- data/spec/models/spree/payment/cancellation_spec.rb +0 -84
- data/spec/models/spree/payment_create_spec.rb +0 -195
- 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 -58
- 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 -226
- 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 -945
- 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 -45
- data/spec/models/spree/shipping_manifest_spec.rb +0 -110
- data/spec/models/spree/shipping_method_spec.rb +0 -292
- 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 -317
- data/spec/models/spree/taxon_spec.rb +0 -197
- data/spec/models/spree/taxonomy_spec.rb +0 -15
- data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
- data/spec/models/spree/unit_cancel_spec.rb +0 -126
- data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
- data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
- 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
- /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
|
@@ -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
|
|
239
|
-
|
|
240
|
-
# @!attribute [rw] mails_from
|
|
241
|
-
# @return [String] Email address used as +From:+ field in transactional emails.
|
|
242
|
-
preference :mails_from, :string, default: 'spree@example.com'
|
|
243
|
-
|
|
244
|
-
# Store credits configurations
|
|
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
|
|
245
314
|
|
|
246
|
-
# @!attribute [rw]
|
|
247
|
-
# @return [Boolean]
|
|
248
|
-
|
|
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
|
#
|
|
@@ -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
|
|
@@ -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,10 +55,10 @@ 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
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Core
|
|
5
|
+
module ControllerHelpers
|
|
6
|
+
module CurrentHost
|
|
7
|
+
extend ActiveSupport::Concern
|
|
8
|
+
|
|
9
|
+
included do
|
|
10
|
+
before_action do
|
|
11
|
+
ActiveStorage::Current.host = request.base_url
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -30,18 +30,19 @@ module Spree
|
|
|
30
30
|
|
|
31
31
|
# The current incomplete order from the guest_token for use in cart and during checkout
|
|
32
32
|
def current_order(options = {})
|
|
33
|
-
options[:create_order_if_necessary]
|
|
33
|
+
should_create = options[:create_order_if_necessary] || false
|
|
34
|
+
should_build = options[:build_order_if_necessary] || should_create
|
|
34
35
|
|
|
35
36
|
return @current_order if @current_order
|
|
36
37
|
|
|
37
|
-
@current_order = find_order_by_token_or_user(options)
|
|
38
|
+
@current_order = find_order_by_token_or_user(lock: options[:lock])
|
|
38
39
|
|
|
39
|
-
if
|
|
40
|
+
if should_build && (@current_order.nil? || @current_order.completed?)
|
|
40
41
|
@current_order = Spree::Order.new(new_order_params)
|
|
41
42
|
@current_order.user ||= try_spree_current_user
|
|
42
43
|
# See issue https://github.com/spree/spree/issues/3346 for reasons why this line is here
|
|
43
44
|
@current_order.created_by ||= try_spree_current_user
|
|
44
|
-
@current_order.save!
|
|
45
|
+
@current_order.save! if should_create
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
if @current_order
|
|
@@ -84,14 +85,14 @@ module Spree
|
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
def find_order_by_token_or_user(options = {}, with_adjustments = false)
|
|
87
|
-
options[:lock]
|
|
88
|
+
should_lock = options[:lock] || false
|
|
88
89
|
|
|
89
90
|
# Find any incomplete orders for the guest_token
|
|
90
91
|
if with_adjustments
|
|
91
92
|
Spree::Deprecation.warn "The second argument to find_order_by_token_or_user is deprecated, and will be removed in a future version."
|
|
92
|
-
order = Spree::Order.incomplete.includes(:adjustments).lock(
|
|
93
|
+
order = Spree::Order.incomplete.includes(:adjustments).lock(should_lock).find_by(current_order_params)
|
|
93
94
|
else
|
|
94
|
-
order = Spree::Order.incomplete.lock(
|
|
95
|
+
order = Spree::Order.incomplete.lock(should_lock).find_by(current_order_params)
|
|
95
96
|
end
|
|
96
97
|
|
|
97
98
|
# Find any incomplete orders for the current user
|
|
@@ -31,16 +31,30 @@ module Spree
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def permitted_checkout_attributes
|
|
34
|
-
permitted_attributes.checkout_attributes
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
permitted_attributes.checkout_attributes
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def permitted_checkout_address_attributes
|
|
38
|
+
permitted_attributes.checkout_address_attributes
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def permitted_checkout_delivery_attributes
|
|
42
|
+
permitted_attributes.checkout_delivery_attributes
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def permitted_checkout_payment_attributes
|
|
46
|
+
permitted_attributes.checkout_payment_attributes
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def permitted_checkout_confirm_attributes
|
|
50
|
+
permitted_attributes.checkout_confirm_attributes
|
|
40
51
|
end
|
|
41
52
|
|
|
42
53
|
def permitted_order_attributes
|
|
43
|
-
|
|
54
|
+
permitted_checkout_address_attributes +
|
|
55
|
+
permitted_checkout_delivery_attributes +
|
|
56
|
+
permitted_checkout_payment_attributes +
|
|
57
|
+
permitted_checkout_confirm_attributes + [
|
|
44
58
|
line_items_attributes: permitted_line_item_attributes
|
|
45
59
|
]
|
|
46
60
|
end
|
data/lib/spree/core/engine.rb
CHANGED
|
@@ -47,11 +47,48 @@ module Spree
|
|
|
47
47
|
# Setup Event Subscribers
|
|
48
48
|
initializer 'spree.core.initialize_subscribers' do |app|
|
|
49
49
|
app.reloader.to_prepare do
|
|
50
|
-
Spree::Event.
|
|
50
|
+
Spree::Event.activate_autoloadable_subscribers
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
app.reloader.before_class_unload do
|
|
54
|
-
Spree::Event.
|
|
54
|
+
Spree::Event.deactivate_all_subscribers
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
config.after_initialize do
|
|
59
|
+
if Spree::Config.raise_with_invalid_currency == true
|
|
60
|
+
Spree::Deprecation.warn(
|
|
61
|
+
'Spree::Config.raise_with_invalid_currency set to true is ' \
|
|
62
|
+
'deprecated. Please note that by switching this value, ' \
|
|
63
|
+
'Spree::LineItem::CurrencyMismatch will not be raised anymore.',
|
|
64
|
+
caller
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
if Spree::Config.consider_actionless_promotion_active == true
|
|
68
|
+
Spree::Deprecation.warn(
|
|
69
|
+
'Spree::Config.consider_actionless_promotion_active set to true is ' \
|
|
70
|
+
'deprecated. Please note that by switching this value, ' \
|
|
71
|
+
'promotions with no actions will be considered active.',
|
|
72
|
+
caller
|
|
73
|
+
)
|
|
74
|
+
end
|
|
75
|
+
if Spree::Config.run_order_validations_on_order_updater != true
|
|
76
|
+
Spree::Deprecation.warn(
|
|
77
|
+
'Spree::Config.run_order_validations_on_order_updater set to false is ' \
|
|
78
|
+
'deprecated and will not be possibile in Solidus 3.0. Please switch this ' \
|
|
79
|
+
'value to true and check that everything works as expected.',
|
|
80
|
+
caller
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
if Spree::Config.use_legacy_address_state_validator != false
|
|
85
|
+
Spree::Deprecation.warn(<<~DEPRECATION.squish, caller)
|
|
86
|
+
Spree::Config.use_legacy_address_state_validator set to true has been
|
|
87
|
+
deprecated and will be removed in Solidus 3.0. The Spree::Address state
|
|
88
|
+
validation has been extracted into a configurable external class.
|
|
89
|
+
Switch Spree::Config.use_legacy_address_state_validator to true to start
|
|
90
|
+
using the external validation class.
|
|
91
|
+
DEPRECATION
|
|
55
92
|
end
|
|
56
93
|
end
|
|
57
94
|
|
|
@@ -56,7 +56,9 @@ module Spree
|
|
|
56
56
|
shipments_hash.each do |target|
|
|
57
57
|
shipment = Shipment.new
|
|
58
58
|
shipment.tracking = target[:tracking]
|
|
59
|
-
shipment.stock_location = Spree::StockLocation.find_by(
|
|
59
|
+
shipment.stock_location = Spree::StockLocation.find_by(id: target[:stock_location_id]) ||
|
|
60
|
+
Spree::StockLocation.find_by(admin_name: target[:stock_location]) ||
|
|
61
|
+
Spree::StockLocation.find_by!(name: target[:stock_location])
|
|
60
62
|
|
|
61
63
|
inventory_units = target[:inventory_units] || []
|
|
62
64
|
inventory_units.each do |inventory_unit|
|
|
@@ -98,19 +100,31 @@ module Spree
|
|
|
98
100
|
|
|
99
101
|
def self.create_line_items_from_params(line_items_hash, order)
|
|
100
102
|
return {} unless line_items_hash
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
103
|
+
|
|
104
|
+
case line_items_hash
|
|
105
|
+
when Hash
|
|
106
|
+
line_items_hash.each_key do |key|
|
|
107
|
+
create_line_item(line_items_hash[key], order)
|
|
108
|
+
end
|
|
109
|
+
when Array
|
|
110
|
+
line_items_hash.each do |line_item_hash|
|
|
111
|
+
create_line_item(line_item_hash, order)
|
|
110
112
|
end
|
|
111
113
|
end
|
|
112
114
|
end
|
|
113
115
|
|
|
116
|
+
def self.create_line_item(line_item_hash, order)
|
|
117
|
+
extra_params = line_item_hash.except(:variant_id, :quantity, :sku)
|
|
118
|
+
line_item = ensure_variant_id_from_params(line_item_hash)
|
|
119
|
+
line_item = order.contents.add(Spree::Variant.find(line_item[:variant_id]), line_item[:quantity])
|
|
120
|
+
# Raise any errors with saving to prevent import succeeding with line items failing silently.
|
|
121
|
+
if extra_params.present?
|
|
122
|
+
line_item.update!(extra_params)
|
|
123
|
+
else
|
|
124
|
+
line_item.save!
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
114
128
|
def self.create_adjustments_from_params(adjustments, order)
|
|
115
129
|
return [] unless adjustments
|
|
116
130
|
adjustments.each do |target|
|
|
@@ -133,7 +147,8 @@ module Spree
|
|
|
133
147
|
# spree_wombat serializes payment state as status so imported orders should fall back to status field.
|
|
134
148
|
payment.state = target[:state] || target[:status] || 'completed'
|
|
135
149
|
payment.payment_method = Spree::PaymentMethod.find_by!(name: target[:payment_method])
|
|
136
|
-
|
|
150
|
+
source_attributes = target[:source] || target[:source_attributes]
|
|
151
|
+
payment.source = create_source_payment_from_params(source_attributes, payment) if source_attributes
|
|
137
152
|
payment.save!
|
|
138
153
|
end
|
|
139
154
|
end
|
|
@@ -9,7 +9,7 @@ module Spree
|
|
|
9
9
|
class_attribute :permalink_options
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
class_methods do
|
|
13
13
|
def make_permalink(options = {})
|
|
14
14
|
options[:field] ||= :permalink
|
|
15
15
|
self.permalink_options = options
|
|
@@ -63,5 +63,3 @@ module Spree
|
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
|
-
|
|
67
|
-
ActiveRecord::Base.send :include, Spree::Core::Permalinks
|
|
@@ -60,6 +60,7 @@ module Spree
|
|
|
60
60
|
conds.each do |new_scope|
|
|
61
61
|
scope = scope.or(new_scope)
|
|
62
62
|
end
|
|
63
|
+
|
|
63
64
|
Spree::Product.joins(master: :default_price).where(scope)
|
|
64
65
|
end
|
|
65
66
|
|
|
@@ -70,9 +71,9 @@ module Spree
|
|
|
70
71
|
def self.price_filter
|
|
71
72
|
value = Spree::Price.arel_table
|
|
72
73
|
conds = [[I18n.t('spree.under_price', price: format_price(10)), value[:amount].lteq(10)],
|
|
73
|
-
["#{format_price(10)} - #{format_price(15)}", value[:amount].
|
|
74
|
-
["#{format_price(15)} - #{format_price(18)}", value[:amount].
|
|
75
|
-
["#{format_price(18)} - #{format_price(20)}", value[:amount].
|
|
74
|
+
["#{format_price(10)} - #{format_price(15)}", value[:amount].between(10..15)],
|
|
75
|
+
["#{format_price(15)} - #{format_price(18)}", value[:amount].between(15..18)],
|
|
76
|
+
["#{format_price(18)} - #{format_price(20)}", value[:amount].between(18..20)],
|
|
76
77
|
[I18n.t('spree.or_over_price', price: format_price(20)), value[:amount].gteq(20)]]
|
|
77
78
|
{
|
|
78
79
|
name: I18n.t('spree.price_range'),
|
|
@@ -107,7 +108,7 @@ module Spree
|
|
|
107
108
|
brand_property = Spree::Property.find_by(name: 'brand')
|
|
108
109
|
brands = brand_property ? Spree::ProductProperty.where(property_id: brand_property.id).pluck(:value).uniq.map(&:to_s) : []
|
|
109
110
|
pp = Spree::ProductProperty.arel_table
|
|
110
|
-
conds = Hash[*brands.
|
|
111
|
+
conds = Hash[*brands.flat_map { |brand| [brand, pp[:value].eq(brand)] }]
|
|
111
112
|
{
|
|
112
113
|
name: 'Brands',
|
|
113
114
|
scope: :brand_any,
|
|
@@ -184,7 +185,7 @@ module Spree
|
|
|
184
185
|
# idea: expand the format to allow nesting of labels?
|
|
185
186
|
def self.all_taxons
|
|
186
187
|
Spree::Deprecation.warn "all_taxons is deprecated in solidus_core. Please add it to your own application to continue using it."
|
|
187
|
-
taxons = Spree::Taxonomy.all.
|
|
188
|
+
taxons = Spree::Taxonomy.all.flat_map { |element| [element.root] + element.root.descendants }
|
|
188
189
|
{
|
|
189
190
|
name: 'All taxons',
|
|
190
191
|
scope: :taxons_id_equals_any,
|