solidus_core_devise_token_auth 2.8.0.alpha.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 +7 -0
- data/.yardopts +1 -0
- data/LICENSE +26 -0
- data/README.md +69 -0
- data/Rakefile +37 -0
- data/app/assets/config/solidus_core_manifest.js +1 -0
- data/app/assets/images/logo/solidus_logo.png +0 -0
- data/app/assets/images/noimage/large.png +0 -0
- data/app/assets/images/noimage/mini.png +0 -0
- data/app/assets/images/noimage/product.png +0 -0
- data/app/assets/images/noimage/small.png +0 -0
- data/app/assets/javascripts/spree.js.erb +72 -0
- data/app/controllers/spree/base_controller.rb +15 -0
- data/app/helpers/spree/base_helper.rb +160 -0
- data/app/helpers/spree/checkout_helper.rb +33 -0
- data/app/helpers/spree/products_helper.rb +74 -0
- data/app/helpers/spree/store_helper.rb +23 -0
- data/app/helpers/spree/taxons_helper.rb +22 -0
- data/app/jobs/spree/promotion_code_batch_job.rb +26 -0
- data/app/mailers/spree/base_mailer.rb +18 -0
- data/app/mailers/spree/carton_mailer.rb +29 -0
- data/app/mailers/spree/order_mailer.rb +36 -0
- data/app/mailers/spree/promotion_code_batch_mailer.rb +15 -0
- data/app/mailers/spree/reimbursement_mailer.rb +13 -0
- data/app/mailers/spree/test_mailer.rb +11 -0
- data/app/models/concerns/spree/adjustment_source.rb +27 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +40 -0
- data/app/models/concerns/spree/default_price.rb +27 -0
- data/app/models/concerns/spree/display_money.rb +34 -0
- data/app/models/concerns/spree/named_type.rb +14 -0
- data/app/models/concerns/spree/ordered_property_value_list.rb +28 -0
- data/app/models/concerns/spree/ransackable_attributes.rb +22 -0
- data/app/models/concerns/spree/user_address_book.rb +149 -0
- data/app/models/concerns/spree/user_methods.rb +77 -0
- data/app/models/concerns/spree/user_payment_source.rb +26 -0
- data/app/models/concerns/spree/user_reporting.rb +24 -0
- data/app/models/spree/ability.rb +64 -0
- data/app/models/spree/address.rb +222 -0
- data/app/models/spree/adjustment.rb +168 -0
- data/app/models/spree/adjustment_reason.rb +12 -0
- data/app/models/spree/asset.rb +8 -0
- data/app/models/spree/base.rb +46 -0
- data/app/models/spree/billing_integration.rb +23 -0
- data/app/models/spree/calculator/default_tax.rb +60 -0
- data/app/models/spree/calculator/distributed_amount.rb +33 -0
- data/app/models/spree/calculator/flat_percent_item_total.rb +20 -0
- data/app/models/spree/calculator/flat_rate.rb +18 -0
- data/app/models/spree/calculator/flexi_rate.rb +27 -0
- data/app/models/spree/calculator/free_shipping.rb +21 -0
- data/app/models/spree/calculator/percent_on_line_item.rb +13 -0
- data/app/models/spree/calculator/percent_per_item.rb +49 -0
- data/app/models/spree/calculator/price_sack.rb +27 -0
- data/app/models/spree/calculator/returns/default_refund_amount.rb +34 -0
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +21 -0
- data/app/models/spree/calculator/shipping/flat_rate.rb +17 -0
- data/app/models/spree/calculator/shipping/flexi_rate.rb +34 -0
- data/app/models/spree/calculator/shipping/per_item.rb +21 -0
- data/app/models/spree/calculator/shipping/price_sack.rb +27 -0
- data/app/models/spree/calculator/tiered_flat_rate.rb +52 -0
- data/app/models/spree/calculator/tiered_percent.rb +61 -0
- data/app/models/spree/calculator.rb +49 -0
- data/app/models/spree/carton.rb +59 -0
- data/app/models/spree/classification.rb +13 -0
- data/app/models/spree/country.rb +28 -0
- data/app/models/spree/credit_card.rb +197 -0
- data/app/models/spree/customer_return.rb +78 -0
- data/app/models/spree/distributed_amounts_handler.rb +43 -0
- data/app/models/spree/exchange.rb +45 -0
- data/app/models/spree/fulfilment_changer.rb +135 -0
- data/app/models/spree/gallery/product_gallery.rb +18 -0
- data/app/models/spree/gallery/variant_gallery.rb +18 -0
- data/app/models/spree/gateway/bogus.rb +13 -0
- data/app/models/spree/gateway/bogus_simple.rb +13 -0
- data/app/models/spree/gateway.rb +14 -0
- data/app/models/spree/image.rb +56 -0
- data/app/models/spree/inventory_unit.rb +159 -0
- data/app/models/spree/legacy_user.rb +26 -0
- data/app/models/spree/line_item.rb +206 -0
- data/app/models/spree/line_item_action.rb +8 -0
- data/app/models/spree/log_entry.rb +11 -0
- data/app/models/spree/option_type.rb +32 -0
- data/app/models/spree/option_value.rb +33 -0
- data/app/models/spree/option_values_variant.rb +8 -0
- data/app/models/spree/order/checkout.rb +243 -0
- data/app/models/spree/order/number_generator.rb +45 -0
- data/app/models/spree/order/payments.rb +55 -0
- data/app/models/spree/order.rb +914 -0
- data/app/models/spree/order_cancellations.rb +125 -0
- data/app/models/spree/order_capturing.rb +50 -0
- data/app/models/spree/order_contents.rb +126 -0
- data/app/models/spree/order_inventory.rb +115 -0
- data/app/models/spree/order_merger.rb +143 -0
- data/app/models/spree/order_mutex.rb +35 -0
- data/app/models/spree/order_promotion.rb +27 -0
- data/app/models/spree/order_shipping.rb +89 -0
- data/app/models/spree/order_taxation.rb +81 -0
- data/app/models/spree/order_update_attributes.rb +41 -0
- data/app/models/spree/order_updater.rb +271 -0
- data/app/models/spree/payment/cancellation.rb +62 -0
- data/app/models/spree/payment/processing.rb +225 -0
- data/app/models/spree/payment.rb +284 -0
- data/app/models/spree/payment_capture_event.rb +11 -0
- data/app/models/spree/payment_create.rb +93 -0
- data/app/models/spree/payment_method/bogus_credit_card.rb +90 -0
- data/app/models/spree/payment_method/check.rb +40 -0
- data/app/models/spree/payment_method/credit_card.rb +43 -0
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +26 -0
- data/app/models/spree/payment_method/store_credit.rb +122 -0
- data/app/models/spree/payment_method.rb +281 -0
- data/app/models/spree/payment_source.rb +47 -0
- data/app/models/spree/preference.rb +7 -0
- data/app/models/spree/price.rb +89 -0
- data/app/models/spree/product/scopes.rb +259 -0
- data/app/models/spree/product.rb +400 -0
- data/app/models/spree/product_option_type.rb +9 -0
- data/app/models/spree/product_promotion_rule.rb +8 -0
- data/app/models/spree/product_property.rb +14 -0
- data/app/models/spree/promotion/actions/create_adjustment.rb +80 -0
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +102 -0
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +142 -0
- data/app/models/spree/promotion/actions/free_shipping.rb +57 -0
- data/app/models/spree/promotion/rules/first_order.rb +40 -0
- data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +36 -0
- data/app/models/spree/promotion/rules/item_total.rb +45 -0
- data/app/models/spree/promotion/rules/nth_order.rb +45 -0
- data/app/models/spree/promotion/rules/one_use_per_user.rb +25 -0
- data/app/models/spree/promotion/rules/option_value.rb +50 -0
- data/app/models/spree/promotion/rules/product.rb +74 -0
- data/app/models/spree/promotion/rules/store.rb +22 -0
- data/app/models/spree/promotion/rules/taxon.rb +103 -0
- data/app/models/spree/promotion/rules/user.rb +30 -0
- data/app/models/spree/promotion/rules/user_logged_in.rb +20 -0
- data/app/models/spree/promotion/rules/user_role.rb +45 -0
- data/app/models/spree/promotion.rb +260 -0
- data/app/models/spree/promotion_action.rb +53 -0
- data/app/models/spree/promotion_category.rb +8 -0
- data/app/models/spree/promotion_chooser.rb +34 -0
- data/app/models/spree/promotion_code/batch_builder.rb +78 -0
- data/app/models/spree/promotion_code.rb +44 -0
- data/app/models/spree/promotion_code_batch.rb +27 -0
- data/app/models/spree/promotion_handler/cart.rb +55 -0
- data/app/models/spree/promotion_handler/coupon.rb +92 -0
- data/app/models/spree/promotion_handler/free_shipping.rb +9 -0
- data/app/models/spree/promotion_handler/page.rb +26 -0
- data/app/models/spree/promotion_handler/shipping.rb +61 -0
- data/app/models/spree/promotion_rule.rb +51 -0
- data/app/models/spree/promotion_rule_role.rb +8 -0
- data/app/models/spree/promotion_rule_store.rb +10 -0
- data/app/models/spree/promotion_rule_taxon.rb +8 -0
- data/app/models/spree/promotion_rule_user.rb +10 -0
- data/app/models/spree/property.rb +20 -0
- data/app/models/spree/refund.rb +90 -0
- data/app/models/spree/refund_reason.rb +15 -0
- data/app/models/spree/reimbursement/credit.rb +29 -0
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
- data/app/models/spree/reimbursement/reimbursement_type_validator.rb +17 -0
- data/app/models/spree/reimbursement.rb +186 -0
- data/app/models/spree/reimbursement_performer.rb +40 -0
- data/app/models/spree/reimbursement_tax_calculator.rb +35 -0
- data/app/models/spree/reimbursement_type/credit.rb +15 -0
- data/app/models/spree/reimbursement_type/exchange.rb +11 -0
- data/app/models/spree/reimbursement_type/original_payment.rb +15 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +72 -0
- data/app/models/spree/reimbursement_type/store_credit.rb +29 -0
- data/app/models/spree/reimbursement_type.rb +18 -0
- data/app/models/spree/return_authorization.rb +90 -0
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +30 -0
- data/app/models/spree/return_item/eligibility_validator/default.rb +36 -0
- data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +22 -0
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +22 -0
- data/app/models/spree/return_item/eligibility_validator/order_completed.rb +22 -0
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +22 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +22 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +47 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +13 -0
- data/app/models/spree/return_item.rb +320 -0
- data/app/models/spree/return_reason.rb +14 -0
- data/app/models/spree/returns_calculator.rb +9 -0
- data/app/models/spree/role.rb +14 -0
- data/app/models/spree/role_user.rb +11 -0
- data/app/models/spree/shipment.rb +431 -0
- data/app/models/spree/shipping_calculator.rb +23 -0
- data/app/models/spree/shipping_category.rb +10 -0
- data/app/models/spree/shipping_manifest.rb +30 -0
- data/app/models/spree/shipping_method.rb +133 -0
- data/app/models/spree/shipping_method_category.rb +8 -0
- data/app/models/spree/shipping_method_stock_location.rb +6 -0
- data/app/models/spree/shipping_method_zone.rb +8 -0
- data/app/models/spree/shipping_rate.rb +48 -0
- data/app/models/spree/shipping_rate_tax.rb +39 -0
- data/app/models/spree/state.rb +40 -0
- data/app/models/spree/state_change.rb +17 -0
- data/app/models/spree/stock/availability.rb +72 -0
- data/app/models/spree/stock/availability_validator.rb +36 -0
- data/app/models/spree/stock/content_item.rb +50 -0
- data/app/models/spree/stock/differentiator.rb +47 -0
- data/app/models/spree/stock/estimator.rb +71 -0
- data/app/models/spree/stock/inventory_unit_builder.rb +23 -0
- data/app/models/spree/stock/inventory_validator.rb +16 -0
- data/app/models/spree/stock/location_sorter/base.rb +38 -0
- data/app/models/spree/stock/location_sorter/default_first.rb +15 -0
- data/app/models/spree/stock/location_sorter/unsorted.rb +14 -0
- data/app/models/spree/stock/package.rb +142 -0
- data/app/models/spree/stock/quantifier.rb +49 -0
- data/app/models/spree/stock/shipping_rate_selector.rb +17 -0
- data/app/models/spree/stock/shipping_rate_sorter.rb +17 -0
- data/app/models/spree/stock/simple_coordinator.rb +119 -0
- data/app/models/spree/stock/splitter/backordered.rb +23 -0
- data/app/models/spree/stock/splitter/base.rb +35 -0
- data/app/models/spree/stock/splitter/shipping_category.rb +35 -0
- data/app/models/spree/stock/splitter/weight.rb +32 -0
- data/app/models/spree/stock/splitter_chain.rb +34 -0
- data/app/models/spree/stock_item.rb +128 -0
- data/app/models/spree/stock_location.rb +127 -0
- data/app/models/spree/stock_movement.rb +28 -0
- data/app/models/spree/stock_quantities.rb +83 -0
- data/app/models/spree/store.rb +83 -0
- data/app/models/spree/store_credit.rb +293 -0
- data/app/models/spree/store_credit_category.rb +18 -0
- data/app/models/spree/store_credit_event.rb +66 -0
- data/app/models/spree/store_credit_type.rb +10 -0
- data/app/models/spree/store_credit_update_reason.rb +4 -0
- data/app/models/spree/store_payment_method.rb +8 -0
- data/app/models/spree/store_selector/by_server_name.rb +32 -0
- data/app/models/spree/store_selector/legacy.rb +50 -0
- data/app/models/spree/store_shipping_method.rb +8 -0
- data/app/models/spree/tax/item_tax.rb +22 -0
- data/app/models/spree/tax/order_adjuster.rb +22 -0
- data/app/models/spree/tax/order_tax.rb +20 -0
- data/app/models/spree/tax/shipping_rate_taxer.rb +24 -0
- data/app/models/spree/tax/tax_helpers.rb +17 -0
- data/app/models/spree/tax/tax_location.rb +39 -0
- data/app/models/spree/tax_calculator/default.rb +85 -0
- data/app/models/spree/tax_calculator/shipping_rate.rb +58 -0
- data/app/models/spree/tax_category.rb +30 -0
- data/app/models/spree/tax_rate.rb +147 -0
- data/app/models/spree/tax_rate_tax_category.rb +8 -0
- data/app/models/spree/taxon.rb +144 -0
- data/app/models/spree/taxonomy.rb +29 -0
- data/app/models/spree/unit_cancel.rb +36 -0
- data/app/models/spree/user_address.rb +23 -0
- data/app/models/spree/user_class_handle.rb +28 -0
- data/app/models/spree/user_stock_location.rb +8 -0
- data/app/models/spree/validations/db_maximum_length_validator.rb +23 -0
- data/app/models/spree/variant/price_selector.rb +37 -0
- data/app/models/spree/variant/pricing_options.rb +98 -0
- data/app/models/spree/variant/scopes.rb +42 -0
- data/app/models/spree/variant/vat_price_generator.rb +63 -0
- data/app/models/spree/variant.rb +465 -0
- data/app/models/spree/variant_property_rule.rb +44 -0
- data/app/models/spree/variant_property_rule_condition.rb +10 -0
- data/app/models/spree/variant_property_rule_value.rb +12 -0
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +40 -0
- data/app/models/spree/wallet/default_payment_builder.rb +28 -0
- data/app/models/spree/wallet.rb +78 -0
- data/app/models/spree/wallet_payment_source.rb +19 -0
- data/app/models/spree/zone.rb +148 -0
- data/app/models/spree/zone_member.rb +10 -0
- data/app/views/layouts/spree/base_mailer.html.erb +784 -0
- data/app/views/spree/carton_mailer/shipped_email.html.erb +34 -0
- data/app/views/spree/carton_mailer/shipped_email.text.erb +16 -0
- data/app/views/spree/order_mailer/cancel_email.html.erb +45 -0
- data/app/views/spree/order_mailer/cancel_email.text.erb +16 -0
- data/app/views/spree/order_mailer/confirm_email.html.erb +84 -0
- data/app/views/spree/order_mailer/confirm_email.text.erb +38 -0
- data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +26 -0
- data/app/views/spree/order_mailer/inventory_cancellation_email.text.erb +10 -0
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +2 -0
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +2 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +39 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +17 -0
- data/app/views/spree/shared/_base_mailer_footer.html.erb +1 -0
- data/app/views/spree/shared/_base_mailer_header.html.erb +1 -0
- data/app/views/spree/shared/_error_messages.html.erb +11 -0
- data/app/views/spree/test_mailer/test_email.html.erb +40 -0
- data/app/views/spree/test_mailer/test_email.text.erb +4 -0
- data/config/initializers/assets.rb +5 -0
- data/config/initializers/friendly_id.rb +90 -0
- data/config/locales/en.yml +2107 -0
- data/db/default/spree/countries.rb +45 -0
- data/db/default/spree/refund_reasons.rb +3 -0
- data/db/default/spree/return_reasons.rb +11 -0
- data/db/default/spree/roles.rb +3 -0
- data/db/default/spree/shipping_categories.rb +3 -0
- data/db/default/spree/states.rb +14 -0
- data/db/default/spree/stock_locations.rb +4 -0
- data/db/default/spree/store_credit.rb +22 -0
- data/db/default/spree/stores.rb +10 -0
- data/db/default/spree/zones.rb +13 -0
- data/db/migrate/20160101010000_solidus_one_four.rb +1102 -0
- data/db/migrate/20160420044191_create_spree_wallet_payment_sources.rb +27 -0
- data/db/migrate/20160420181916_migrate_credit_cards_to_wallet_payment_sources.rb +29 -0
- data/db/migrate/20160924135758_remove_is_default_from_prices.rb +7 -0
- data/db/migrate/20161009141333_remove_currency_from_line_items.rb +7 -0
- data/db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb +30 -0
- data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +38 -0
- data/db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb +22 -0
- data/db/migrate/20161129035810_add_index_to_spree_payments_number.rb +7 -0
- data/db/migrate/20170223235001_remove_spree_store_credits_column.rb +7 -0
- data/db/migrate/20170317035819_add_lft_and_rgt_indexes_to_taxons.rb +8 -0
- data/db/migrate/20170319191942_remove_order_id_from_inventory_units.rb +30 -0
- data/db/migrate/20170412103617_transform_tax_rate_category_relation.rb +50 -0
- data/db/migrate/20170422134804_add_roles_unique_constraints.rb +8 -0
- data/db/migrate/20170522143442_add_time_range_to_tax_rate.rb +8 -0
- data/db/migrate/20170608074534_rename_bogus_gateways.rb +17 -0
- data/db/migrate/20170831201542_remove_default_tax_from_spree_zones.rb +7 -0
- data/db/migrate/20180202190713_create_promotion_rule_stores.rb +12 -0
- data/db/migrate/20180202222641_create_store_shipping_methods.rb +12 -0
- data/db/migrate/20180313220213_add_available_locales_to_stores.rb +9 -0
- data/db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb +61 -0
- data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +11 -0
- data/db/seeds.rb +17 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +43 -0
- data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +40 -0
- data/lib/generators/spree/custom_user/templates/migration.rb.tt +30 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +148 -0
- data/lib/generators/spree/dummy/templates/rails/application.rb.tt +10 -0
- data/lib/generators/spree/dummy/templates/rails/boot.rb +6 -0
- data/lib/generators/spree/dummy/templates/rails/database.yml +71 -0
- data/lib/generators/spree/dummy/templates/rails/routes.rb +2 -0
- data/lib/generators/spree/dummy/templates/rails/script/rails +6 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +33 -0
- data/lib/generators/spree/install/install_generator.rb +189 -0
- data/lib/generators/spree/install/templates/config/initializers/spree.rb.tt +67 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +10 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +10 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +9 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +9 -0
- data/lib/solidus/migrations/rename_gateways.rb +39 -0
- data/lib/solidus_core.rb +3 -0
- data/lib/spree/app_configuration.rb +529 -0
- data/lib/spree/config.rb +5 -0
- data/lib/spree/core/active_merchant_dependencies.rb +13 -0
- data/lib/spree/core/class_constantizer.rb +33 -0
- data/lib/spree/core/controller_helpers/auth.rb +83 -0
- data/lib/spree/core/controller_helpers/common.rb +82 -0
- data/lib/spree/core/controller_helpers/order.rb +107 -0
- data/lib/spree/core/controller_helpers/payment_parameters.rb +221 -0
- data/lib/spree/core/controller_helpers/pricing.rb +30 -0
- data/lib/spree/core/controller_helpers/search.rb +16 -0
- data/lib/spree/core/controller_helpers/store.rb +19 -0
- data/lib/spree/core/controller_helpers/strong_parameters.rb +63 -0
- data/lib/spree/core/current_store.rb +24 -0
- data/lib/spree/core/engine.rb +61 -0
- data/lib/spree/core/environment/calculators.rb +18 -0
- data/lib/spree/core/environment.rb +22 -0
- data/lib/spree/core/environment_extension.rb +31 -0
- data/lib/spree/core/importer/order.rb +203 -0
- data/lib/spree/core/importer/product.rb +65 -0
- data/lib/spree/core/importer.rb +11 -0
- data/lib/spree/core/permalinks.rb +67 -0
- data/lib/spree/core/product_duplicator.rb +75 -0
- data/lib/spree/core/product_filters.rb +197 -0
- data/lib/spree/core/role_configuration.rb +88 -0
- data/lib/spree/core/search/base.rb +120 -0
- data/lib/spree/core/search/variant.rb +66 -0
- data/lib/spree/core/stock_configuration.rb +26 -0
- data/lib/spree/core/validators/email.rb +30 -0
- data/lib/spree/core/version.rb +11 -0
- data/lib/spree/core.rb +92 -0
- data/lib/spree/deprecation.rb +7 -0
- data/lib/spree/i18n.rb +35 -0
- data/lib/spree/localized_number.rb +30 -0
- data/lib/spree/mailer_previews/carton_preview.rb +13 -0
- data/lib/spree/mailer_previews/order_preview.rb +25 -0
- data/lib/spree/mailer_previews/reimbursement_preview.rb +13 -0
- data/lib/spree/migration_helpers.rb +21 -0
- data/lib/spree/migrations.rb +85 -0
- data/lib/spree/money.rb +133 -0
- data/lib/spree/paranoia_deprecations.rb +21 -0
- data/lib/spree/permission_sets/base.rb +32 -0
- data/lib/spree/permission_sets/configuration_display.rb +25 -0
- data/lib/spree/permission_sets/configuration_management.rb +25 -0
- data/lib/spree/permission_sets/dashboard_display.rb +11 -0
- data/lib/spree/permission_sets/default_customer.rb +37 -0
- data/lib/spree/permission_sets/order_display.rb +21 -0
- data/lib/spree/permission_sets/order_management.rb +22 -0
- data/lib/spree/permission_sets/product_display.rb +19 -0
- data/lib/spree/permission_sets/product_management.rb +21 -0
- data/lib/spree/permission_sets/promotion_display.rb +15 -0
- data/lib/spree/permission_sets/promotion_management.rb +14 -0
- data/lib/spree/permission_sets/restricted_stock_display.rb +18 -0
- data/lib/spree/permission_sets/restricted_stock_management.rb +18 -0
- data/lib/spree/permission_sets/stock_display.rb +12 -0
- data/lib/spree/permission_sets/stock_management.rb +12 -0
- data/lib/spree/permission_sets/super_user.rb +11 -0
- data/lib/spree/permission_sets/user_display.rb +13 -0
- data/lib/spree/permission_sets/user_management.rb +21 -0
- data/lib/spree/permission_sets.rb +20 -0
- data/lib/spree/permitted_attributes.rb +133 -0
- data/lib/spree/preferences/configuration.rb +107 -0
- data/lib/spree/preferences/preferable.rb +180 -0
- data/lib/spree/preferences/preferable_class_methods.rb +88 -0
- data/lib/spree/preferences/scoped_store.rb +36 -0
- data/lib/spree/preferences/static_model_preferences.rb +49 -0
- data/lib/spree/preferences/statically_configurable.rb +39 -0
- data/lib/spree/preferences/store.rb +91 -0
- data/lib/spree/promo/environment.rb +13 -0
- data/lib/spree/testing_support/ability_helpers.rb +107 -0
- data/lib/spree/testing_support/authorization_helpers.rb +69 -0
- data/lib/spree/testing_support/bar_ability.rb +19 -0
- data/lib/spree/testing_support/caching.rb +33 -0
- data/lib/spree/testing_support/capybara_ext.rb +147 -0
- data/lib/spree/testing_support/common_rake.rb +38 -0
- data/lib/spree/testing_support/controller_requests.rb +108 -0
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +10 -0
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +10 -0
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/spree/backend/all.css +9 -0
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/spree/frontend/all.css +9 -0
- data/lib/spree/testing_support/dummy_app/database.yml +33 -0
- data/lib/spree/testing_support/dummy_app/migrations.rb +47 -0
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +67 -0
- data/lib/spree/testing_support/dummy_app/routes.rb +5 -0
- data/lib/spree/testing_support/dummy_app/views/layouts/application.html.erb +1 -0
- data/lib/spree/testing_support/dummy_app.rb +120 -0
- data/lib/spree/testing_support/extension_rake.rb +11 -0
- data/lib/spree/testing_support/factories/address_factory.rb +45 -0
- data/lib/spree/testing_support/factories/adjustment_factory.rb +45 -0
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +8 -0
- data/lib/spree/testing_support/factories/calculator_factory.rb +26 -0
- data/lib/spree/testing_support/factories/carton_factory.rb +26 -0
- data/lib/spree/testing_support/factories/country_factory.rb +21 -0
- data/lib/spree/testing_support/factories/credit_card_factory.rb +17 -0
- data/lib/spree/testing_support/factories/customer_return_factory.rb +35 -0
- data/lib/spree/testing_support/factories/image_factory.rb +7 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +26 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +18 -0
- data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
- data/lib/spree/testing_support/factories/option_value_factory.rb +10 -0
- data/lib/spree/testing_support/factories/order_factory.rb +160 -0
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +11 -0
- data/lib/spree/testing_support/factories/payment_factory.rb +51 -0
- data/lib/spree/testing_support/factories/payment_method_factory.rb +32 -0
- data/lib/spree/testing_support/factories/price_factory.rb +11 -0
- data/lib/spree/testing_support/factories/product_factory.rb +50 -0
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +11 -0
- data/lib/spree/testing_support/factories/product_property_factory.rb +11 -0
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +7 -0
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +11 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +64 -0
- data/lib/spree/testing_support/factories/property_factory.rb +8 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +21 -0
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +7 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +21 -0
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +9 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +20 -0
- data/lib/spree/testing_support/factories/return_item_factory.rb +23 -0
- data/lib/spree/testing_support/factories/return_reason_factory.rb +7 -0
- data/lib/spree/testing_support/factories/role_factory.rb +11 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +37 -0
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +7 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +42 -0
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +11 -0
- data/lib/spree/testing_support/factories/state_factory.rb +28 -0
- data/lib/spree/testing_support/factories/stock_item_factory.rb +14 -0
- data/lib/spree/testing_support/factories/stock_location_factory.rb +41 -0
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +15 -0
- data/lib/spree/testing_support/factories/stock_package_factory.rb +28 -0
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +7 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +30 -0
- data/lib/spree/testing_support/factories/store_credit_factory.rb +16 -0
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +13 -0
- data/lib/spree/testing_support/factories/store_credit_update_reason_factory.rb +7 -0
- data/lib/spree/testing_support/factories/store_factory.rb +10 -0
- data/lib/spree/testing_support/factories/tax_category_factory.rb +10 -0
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +14 -0
- data/lib/spree/testing_support/factories/taxon_factory.rb +11 -0
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +7 -0
- data/lib/spree/testing_support/factories/user_factory.rb +21 -0
- data/lib/spree/testing_support/factories/variant_factory.rb +43 -0
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +11 -0
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +22 -0
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +11 -0
- data/lib/spree/testing_support/factories/zone_factory.rb +24 -0
- data/lib/spree/testing_support/factories.rb +7 -0
- data/lib/spree/testing_support/flash.rb +29 -0
- data/lib/spree/testing_support/order_walkthrough.rb +87 -0
- data/lib/spree/testing_support/preferences.rb +34 -0
- data/lib/spree/testing_support/sequences.rb +8 -0
- data/lib/spree/testing_support/shared_examples/gallery.rb +18 -0
- data/lib/spree/testing_support/url_helpers.rb +11 -0
- data/lib/spree_core.rb +3 -0
- data/lib/tasks/core.rake +104 -0
- data/lib/tasks/email.rake +9 -0
- data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +115 -0
- data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +20 -0
- data/lib/tasks/migrations/migrate_user_addresses.rake +31 -0
- data/lib/tasks/migrations/rename_gateways.rake +21 -0
- data/lib/tasks/order_capturing.rake +25 -0
- data/script/rails +10 -0
- data/solidus_core.gemspec +48 -0
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/base_helper_spec.rb +168 -0
- data/spec/helpers/products_helper_spec.rb +200 -0
- data/spec/helpers/taxons_helper_spec.rb +41 -0
- data/spec/jobs/promotion_code_batch_job_spec.rb +96 -0
- data/spec/lib/calculated_adjustments_spec.rb +133 -0
- data/spec/lib/i18n_spec.rb +92 -0
- data/spec/lib/search/base_spec.rb +87 -0
- data/spec/lib/search/variant_spec.rb +115 -0
- data/spec/lib/spree/core/class_constantizer_spec.rb +71 -0
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +69 -0
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +126 -0
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +195 -0
- data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +81 -0
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +21 -0
- data/spec/lib/spree/core/controller_helpers/store_spec.rb +18 -0
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +41 -0
- data/spec/lib/spree/core/current_store_spec.rb +33 -0
- data/spec/lib/spree/core/environment_extension_spec.rb +36 -0
- data/spec/lib/spree/core/importer/order_spec.rb +484 -0
- data/spec/lib/spree/core/role_configuration_spec.rb +155 -0
- data/spec/lib/spree/core/stock_configuration_spec.rb +59 -0
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +61 -0
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +20 -0
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +44 -0
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +39 -0
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +376 -0
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +40 -0
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +32 -0
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +32 -0
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +32 -0
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +20 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +20 -0
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +20 -0
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +44 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +59 -0
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +35 -0
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +28 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +43 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +20 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +56 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +14 -0
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +20 -0
- data/spec/lib/spree/core/testing_support/preferences_spec.rb +28 -0
- data/spec/lib/spree/core/validators/email_spec.rb +53 -0
- data/spec/lib/spree/core/version_spec.rb +19 -0
- data/spec/lib/spree/localized_number_spec.rb +45 -0
- data/spec/lib/spree/migrations_spec.rb +32 -0
- data/spec/lib/spree/money_spec.rb +305 -0
- data/spec/lib/spree/permission_sets/default_customer_spec.rb +22 -0
- data/spec/lib/tasks/dummy_task.rake +12 -0
- data/spec/lib/tasks/dummy_task_spec.rb +30 -0
- data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +19 -0
- data/spec/mailers/carton_mailer_spec.rb +44 -0
- data/spec/mailers/order_mailer_spec.rb +117 -0
- data/spec/mailers/promotion_code_batch_mailer_spec.rb +47 -0
- data/spec/mailers/reimbursement_mailer_spec.rb +36 -0
- data/spec/mailers/test_mailer_spec.rb +11 -0
- data/spec/models/spree/ability_spec.rb +279 -0
- data/spec/models/spree/address_spec.rb +375 -0
- data/spec/models/spree/adjustment_reason_spec.rb +11 -0
- data/spec/models/spree/adjustment_spec.rb +339 -0
- data/spec/models/spree/app_configuration_spec.rb +55 -0
- data/spec/models/spree/asset_spec.rb +25 -0
- data/spec/models/spree/calculator/default_tax_spec.rb +260 -0
- data/spec/models/spree/calculator/distributed_amount_spec.rb +82 -0
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +30 -0
- data/spec/models/spree/calculator/flat_rate_spec.rb +52 -0
- data/spec/models/spree/calculator/flexi_rate_spec.rb +158 -0
- data/spec/models/spree/calculator/free_shipping_spec.rb +8 -0
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +20 -0
- data/spec/models/spree/calculator/percent_per_item_spec.rb +12 -0
- data/spec/models/spree/calculator/price_sack_spec.rb +35 -0
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +70 -0
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +39 -0
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +18 -0
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +56 -0
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +25 -0
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +35 -0
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +99 -0
- data/spec/models/spree/calculator/tiered_percent_spec.rb +191 -0
- data/spec/models/spree/calculator_spec.rb +43 -0
- data/spec/models/spree/carton_spec.rb +137 -0
- data/spec/models/spree/classification_spec.rb +114 -0
- data/spec/models/spree/concerns/display_money_spec.rb +44 -0
- data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +52 -0
- data/spec/models/spree/concerns/user_address_book_spec.rb +358 -0
- data/spec/models/spree/concerns/user_methods_spec.rb +121 -0
- data/spec/models/spree/country_spec.rb +78 -0
- data/spec/models/spree/credit_card_spec.rb +373 -0
- data/spec/models/spree/customer_return_spec.rb +293 -0
- data/spec/models/spree/distributed_amounts_handler_spec.rb +83 -0
- data/spec/models/spree/exchange_spec.rb +76 -0
- data/spec/models/spree/fulfilment_changer_spec.rb +307 -0
- data/spec/models/spree/gallery/product_gallery_spec.rb +21 -0
- data/spec/models/spree/gallery/variant_gallery_spec.rb +21 -0
- data/spec/models/spree/gateway/bogus_simple.rb +14 -0
- data/spec/models/spree/gateway/bogus_spec.rb +14 -0
- data/spec/models/spree/gateway_spec.rb +14 -0
- data/spec/models/spree/image_spec.rb +25 -0
- data/spec/models/spree/inventory_unit_spec.rb +312 -0
- data/spec/models/spree/line_item_spec.rb +240 -0
- data/spec/models/spree/option_type_spec.rb +16 -0
- data/spec/models/spree/option_value_spec.rb +52 -0
- data/spec/models/spree/order/address_spec.rb +52 -0
- data/spec/models/spree/order/adjustments_spec.rb +29 -0
- data/spec/models/spree/order/callbacks_spec.rb +44 -0
- data/spec/models/spree/order/checkout_spec.rb +744 -0
- data/spec/models/spree/order/finalizing_spec.rb +111 -0
- data/spec/models/spree/order/number_generator_spec.rb +47 -0
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +137 -0
- data/spec/models/spree/order/payment_spec.rb +280 -0
- data/spec/models/spree/order/risk_assessment_spec.rb +70 -0
- data/spec/models/spree/order/state_machine_spec.rb +122 -0
- data/spec/models/spree/order/totals_spec.rb +26 -0
- data/spec/models/spree/order/updating_spec.rb +18 -0
- data/spec/models/spree/order/validations_spec.rb +17 -0
- data/spec/models/spree/order_cancellations_spec.rb +192 -0
- data/spec/models/spree/order_capturing_spec.rb +16 -0
- data/spec/models/spree/order_contents_spec.rb +362 -0
- data/spec/models/spree/order_inventory_spec.rb +278 -0
- data/spec/models/spree/order_merger_spec.rb +159 -0
- data/spec/models/spree/order_mutex_spec.rb +89 -0
- data/spec/models/spree/order_promotion_spec.rb +33 -0
- data/spec/models/spree/order_shipping_spec.rb +247 -0
- data/spec/models/spree/order_spec.rb +1633 -0
- data/spec/models/spree/order_taxation_spec.rb +128 -0
- data/spec/models/spree/order_update_attributes_spec.rb +49 -0
- data/spec/models/spree/order_updater_spec.rb +560 -0
- data/spec/models/spree/payment/cancellation_spec.rb +83 -0
- data/spec/models/spree/payment_create_spec.rb +205 -0
- data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +10 -0
- data/spec/models/spree/payment_method/check_spec.rb +80 -0
- data/spec/models/spree/payment_method/credit_card_spec.rb +68 -0
- data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +20 -0
- data/spec/models/spree/payment_method/store_credit_spec.rb +325 -0
- data/spec/models/spree/payment_method_spec.rb +408 -0
- data/spec/models/spree/payment_spec.rb +1274 -0
- data/spec/models/spree/permission_sets/base_spec.rb +14 -0
- data/spec/models/spree/permission_sets/configuration_display.rb +79 -0
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +49 -0
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +23 -0
- data/spec/models/spree/permission_sets/order_display_spec.rb +56 -0
- data/spec/models/spree/permission_sets/order_management_spec.rb +43 -0
- data/spec/models/spree/permission_sets/product_display_spec.rb +57 -0
- data/spec/models/spree/permission_sets/product_management_spec.rb +39 -0
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +41 -0
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +27 -0
- data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +42 -0
- data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +42 -0
- data/spec/models/spree/permission_sets/stock_display_spec.rb +25 -0
- data/spec/models/spree/permission_sets/stock_management_spec.rb +23 -0
- data/spec/models/spree/permission_sets/user_display_spec.rb +39 -0
- data/spec/models/spree/permission_sets/user_management_spec.rb +56 -0
- data/spec/models/spree/preference_spec.rb +79 -0
- data/spec/models/spree/preferences/configuration_spec.rb +27 -0
- data/spec/models/spree/preferences/preferable_spec.rb +334 -0
- data/spec/models/spree/preferences/scoped_store_spec.rb +62 -0
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +79 -0
- data/spec/models/spree/preferences/statically_configurable_spec.rb +67 -0
- data/spec/models/spree/preferences/store_spec.rb +40 -0
- data/spec/models/spree/price_spec.rb +150 -0
- data/spec/models/spree/product/scopes_spec.rb +164 -0
- data/spec/models/spree/product_duplicator_spec.rb +92 -0
- data/spec/models/spree/product_filter_spec.rb +28 -0
- data/spec/models/spree/product_property_spec.rb +20 -0
- data/spec/models/spree/product_spec.rb +584 -0
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +126 -0
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +198 -0
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +298 -0
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +61 -0
- data/spec/models/spree/promotion/rules/first_order_spec.rb +77 -0
- data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +71 -0
- data/spec/models/spree/promotion/rules/item_total_spec.rb +113 -0
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +72 -0
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +44 -0
- data/spec/models/spree/promotion/rules/option_value_spec.rb +96 -0
- data/spec/models/spree/promotion/rules/product_spec.rb +178 -0
- data/spec/models/spree/promotion/rules/store_spec.rb +35 -0
- data/spec/models/spree/promotion/rules/taxon_spec.rb +174 -0
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +28 -0
- data/spec/models/spree/promotion/rules/user_role_spec.rb +88 -0
- data/spec/models/spree/promotion/rules/user_spec.rb +39 -0
- data/spec/models/spree/promotion_action_spec.rb +44 -0
- data/spec/models/spree/promotion_category_spec.rb +19 -0
- data/spec/models/spree/promotion_code/batch_builder_spec.rb +107 -0
- data/spec/models/spree/promotion_code_batch_spec.rb +54 -0
- data/spec/models/spree/promotion_code_spec.rb +206 -0
- data/spec/models/spree/promotion_handler/cart_spec.rb +132 -0
- data/spec/models/spree/promotion_handler/coupon_spec.rb +365 -0
- data/spec/models/spree/promotion_handler/page_spec.rb +45 -0
- data/spec/models/spree/promotion_handler/shipping_spec.rb +96 -0
- data/spec/models/spree/promotion_rule_spec.rb +34 -0
- data/spec/models/spree/promotion_spec.rb +834 -0
- data/spec/models/spree/refund_spec.rb +199 -0
- data/spec/models/spree/reimbursement/credit_spec.rb +38 -0
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +144 -0
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +85 -0
- data/spec/models/spree/reimbursement_performer_spec.rb +32 -0
- data/spec/models/spree/reimbursement_spec.rb +253 -0
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +52 -0
- data/spec/models/spree/reimbursement_type/credit_spec.rb +55 -0
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +47 -0
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +109 -0
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +99 -0
- data/spec/models/spree/return_authorization_spec.rb +226 -0
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +79 -0
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +59 -0
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +86 -0
- data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +35 -0
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +31 -0
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +42 -0
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +66 -0
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +43 -0
- data/spec/models/spree/return_item_spec.rb +776 -0
- data/spec/models/spree/returns_calculator_spec.rb +16 -0
- data/spec/models/spree/shipment_spec.rb +907 -0
- data/spec/models/spree/shipping_calculator_spec.rb +57 -0
- data/spec/models/spree/shipping_manifest_spec.rb +110 -0
- data/spec/models/spree/shipping_method_spec.rb +260 -0
- data/spec/models/spree/shipping_rate_spec.rb +154 -0
- data/spec/models/spree/shipping_rate_tax_spec.rb +79 -0
- data/spec/models/spree/state_spec.rb +43 -0
- data/spec/models/spree/stock/availability_spec.rb +143 -0
- data/spec/models/spree/stock/availability_validator_spec.rb +140 -0
- data/spec/models/spree/stock/content_item_spec.rb +70 -0
- data/spec/models/spree/stock/differentiator_spec.rb +41 -0
- data/spec/models/spree/stock/estimator_spec.rb +240 -0
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +34 -0
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +20 -0
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +19 -0
- data/spec/models/spree/stock/package_spec.rb +182 -0
- data/spec/models/spree/stock/quantifier_spec.rb +113 -0
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +18 -0
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +18 -0
- data/spec/models/spree/stock/simple_coordinator_spec.rb +247 -0
- data/spec/models/spree/stock/splitter/backordered_spec.rb +31 -0
- data/spec/models/spree/stock/splitter/base_spec.rb +22 -0
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +48 -0
- data/spec/models/spree/stock/splitter/weight_spec.rb +31 -0
- data/spec/models/spree/stock/splitter_chain_spec.rb +66 -0
- data/spec/models/spree/stock_item_spec.rb +347 -0
- data/spec/models/spree/stock_location_spec.rb +288 -0
- data/spec/models/spree/stock_movement_spec.rb +58 -0
- data/spec/models/spree/stock_quantities_spec.rb +249 -0
- data/spec/models/spree/store_credit_category_spec.rb +19 -0
- data/spec/models/spree/store_credit_event_spec.rb +328 -0
- data/spec/models/spree/store_credit_spec.rb +900 -0
- data/spec/models/spree/store_selector/by_server_name_spec.rb +28 -0
- data/spec/models/spree/store_selector/legacy_spec.rb +46 -0
- data/spec/models/spree/store_spec.rb +156 -0
- data/spec/models/spree/tax/order_adjuster_spec.rb +35 -0
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +59 -0
- data/spec/models/spree/tax/tax_location_spec.rb +79 -0
- data/spec/models/spree/tax/taxation_integration_spec.rb +815 -0
- data/spec/models/spree/tax_calculator/default_spec.rb +56 -0
- data/spec/models/spree/tax_category_spec.rb +29 -0
- data/spec/models/spree/tax_rate_spec.rb +316 -0
- data/spec/models/spree/taxon_spec.rb +169 -0
- data/spec/models/spree/taxonomy_spec.rb +15 -0
- data/spec/models/spree/unit_cancel_spec.rb +61 -0
- data/spec/models/spree/user_spec.rb +247 -0
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +33 -0
- data/spec/models/spree/variant/price_selector_spec.rb +90 -0
- data/spec/models/spree/variant/pricing_options_spec.rb +181 -0
- data/spec/models/spree/variant/scopes_spec.rb +94 -0
- data/spec/models/spree/variant/vat_price_generator_spec.rb +77 -0
- data/spec/models/spree/variant_property_rule_condition_spec.rb +17 -0
- data/spec/models/spree/variant_property_rule_spec.rb +85 -0
- data/spec/models/spree/variant_property_rule_value_spec.rb +20 -0
- data/spec/models/spree/variant_spec.rb +822 -0
- data/spec/models/spree/wallet_payment_source_spec.rb +48 -0
- data/spec/models/spree/wallet_spec.rb +155 -0
- data/spec/models/spree/zone_spec.rb +248 -0
- data/spec/rails_helper.rb +45 -0
- data/spec/shared_examples/calculator_shared_examples.rb +10 -0
- data/spec/spec_helper.rb +39 -0
- data/spec/support/big_decimal.rb +7 -0
- data/spec/support/concerns/default_price.rb +36 -0
- data/spec/support/concerns/payment_source.rb +66 -0
- data/spec/support/concerns/working_factories.rb +15 -0
- data/spec/support/dummy_ability.rb +7 -0
- data/spec/support/shared_contexts/rake.rb +32 -0
- data/vendor/assets/javascripts/jquery.payment.js +648 -0
- data/vendor/assets/javascripts/jsuri.js +2 -0
- data/vendor/assets/stylesheets/normalize.css +375 -0
- metadata +1226 -0
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This is the primary location for defining spree preferences
|
|
4
|
+
#
|
|
5
|
+
# The expectation is that this is created once and stored in
|
|
6
|
+
# the spree environment
|
|
7
|
+
#
|
|
8
|
+
# setters:
|
|
9
|
+
# a.color = :blue
|
|
10
|
+
# a[:color] = :blue
|
|
11
|
+
# a.set :color = :blue
|
|
12
|
+
# a.preferred_color = :blue
|
|
13
|
+
#
|
|
14
|
+
# getters:
|
|
15
|
+
# a.color
|
|
16
|
+
# a[:color]
|
|
17
|
+
# a.get :color
|
|
18
|
+
# a.preferred_color
|
|
19
|
+
#
|
|
20
|
+
require "spree/core/search/base"
|
|
21
|
+
require "spree/core/search/variant"
|
|
22
|
+
require 'spree/preferences/configuration'
|
|
23
|
+
require 'spree/core/environment'
|
|
24
|
+
|
|
25
|
+
module Spree
|
|
26
|
+
class AppConfiguration < Preferences::Configuration
|
|
27
|
+
# Alphabetized to more easily lookup particular preferences
|
|
28
|
+
|
|
29
|
+
# @!attribute [rw] address_requires_state
|
|
30
|
+
# @return [Boolean] should state/state_name be required (default: +true+)
|
|
31
|
+
preference :address_requires_state, :boolean, default: true
|
|
32
|
+
|
|
33
|
+
# @!attribute [rw] admin_interface_logo
|
|
34
|
+
# @return [String] URL of logo used in admin (default: +'logo/solidus_logo.png'+)
|
|
35
|
+
preference :admin_interface_logo, :string, default: 'logo/solidus_logo.png'
|
|
36
|
+
|
|
37
|
+
# @!attribute [rw] admin_products_per_page
|
|
38
|
+
# @return [Integer] Number of products to display in admin (default: +10+)
|
|
39
|
+
preference :admin_products_per_page, :integer, default: 10
|
|
40
|
+
|
|
41
|
+
# @!attribute [rw] admin_variants_per_page
|
|
42
|
+
# @return [Integer] Number of variants to display in admin (default: +20+)
|
|
43
|
+
preference :admin_variants_per_page, :integer, default: 20
|
|
44
|
+
|
|
45
|
+
# @!attribute [rw] allow_checkout_on_gateway_error
|
|
46
|
+
# @return [Boolean] Allow checkout to complete after a failed payment (default: +false+)
|
|
47
|
+
preference :allow_checkout_on_gateway_error, :boolean, default: false
|
|
48
|
+
|
|
49
|
+
# @!attribute [rw] allow_guest_checkout
|
|
50
|
+
# @return [Boolean] When false, customers must create an account to complete an order (default: +true+)
|
|
51
|
+
preference :allow_guest_checkout, :boolean, default: true
|
|
52
|
+
|
|
53
|
+
# @!attribute [rw] allow_return_item_amount_editing
|
|
54
|
+
# @return [Boolean] Determines whether an admin is allowed to change a return item's pre-calculated amount (default: +false+)
|
|
55
|
+
preference :allow_return_item_amount_editing, :boolean, default: false
|
|
56
|
+
|
|
57
|
+
# @!attribute [rw] alternative_billing_phone
|
|
58
|
+
# @return [Boolean] Request an extra phone number for bill address (default: +false+)
|
|
59
|
+
preference :alternative_billing_phone, :boolean, default: false
|
|
60
|
+
|
|
61
|
+
# @!attribute [rw] alternative_shipping_phone
|
|
62
|
+
# @return [Boolean] Request an extra phone number for shipping address (default: +false+)
|
|
63
|
+
preference :alternative_shipping_phone, :boolean, default: false
|
|
64
|
+
|
|
65
|
+
# @!attribute [rw] always_put_site_name_in_title
|
|
66
|
+
# @return [Boolean] When true, site name is always appended to titles on the frontend (default: +true+)
|
|
67
|
+
preference :always_put_site_name_in_title, :boolean, default: true
|
|
68
|
+
|
|
69
|
+
# @!attribute [rw] auto_capture
|
|
70
|
+
# @note Setting this to true is not recommended. Performing an authorize
|
|
71
|
+
# and later capture has far superior error handing. VISA and MasterCard
|
|
72
|
+
# also require that shipments are sent within a certain time of the card
|
|
73
|
+
# being charged.
|
|
74
|
+
# @return [Boolean] Automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
|
|
75
|
+
preference :auto_capture, :boolean, default: false
|
|
76
|
+
|
|
77
|
+
# @!attribute [rw] auto_capture_exchanges
|
|
78
|
+
# @return [Boolean] Automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
|
|
79
|
+
preference :auto_capture_exchanges, :boolean, default: false
|
|
80
|
+
|
|
81
|
+
# @!attribute [rw] binary_inventory_cache
|
|
82
|
+
# Only invalidate product caches when they change from in stock to out of
|
|
83
|
+
# stock. By default, caches are invalidated on any change of inventory
|
|
84
|
+
# quantity. Setting this to true should make operations on inventory
|
|
85
|
+
# faster.
|
|
86
|
+
# (default: +false+)
|
|
87
|
+
# @deprecated - use inventory_cache_threshold instead
|
|
88
|
+
# @return [Boolean]
|
|
89
|
+
preference :binary_inventory_cache, :boolean, default: false
|
|
90
|
+
|
|
91
|
+
# @!attribute [rw] completable_order_created_cutoff
|
|
92
|
+
# @return [Integer] the number of days to look back for created orders which get returned to the user as last completed
|
|
93
|
+
preference :completable_order_created_cutoff_days, :integer, default: nil
|
|
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
|
|
105
|
+
|
|
106
|
+
# @!attribute [rw] checkout_zone
|
|
107
|
+
# @return [String] Name of a {Spree::Zone}, which limits available countries to those included in that zone. (default: +nil+)
|
|
108
|
+
preference :checkout_zone, :string, default: nil
|
|
109
|
+
|
|
110
|
+
# @!attribute [rw] company
|
|
111
|
+
# @return [Boolean] Request company field for billing and shipping addresses. (default: +false+)
|
|
112
|
+
preference :company, :boolean, default: false
|
|
113
|
+
|
|
114
|
+
# @!attribute [rw] currency
|
|
115
|
+
# Currency to use by default when not defined on the site (default: +"USD"+)
|
|
116
|
+
# @return [String] ISO 4217 Three letter currency code
|
|
117
|
+
preference :currency, :string, default: "USD"
|
|
118
|
+
|
|
119
|
+
# @!attribute [rw] default_country_id
|
|
120
|
+
# @deprecated Use the default country ISO preference instead
|
|
121
|
+
# @return [Integer,nil] id of {Spree::Country} to be selected by default in dropdowns (default: nil)
|
|
122
|
+
preference :default_country_id, :integer
|
|
123
|
+
|
|
124
|
+
# @!attribute [rw] default_country_iso
|
|
125
|
+
# Default customer country ISO code
|
|
126
|
+
# @return [String] Two-letter ISO code of a {Spree::Country} to assumed as the country of an unidentified customer (default: "US")
|
|
127
|
+
preference :default_country_iso, :string, default: 'US'
|
|
128
|
+
|
|
129
|
+
# @!attribute [rw] admin_vat_country_iso
|
|
130
|
+
# Set this if you want to enter prices in the backend including value added tax.
|
|
131
|
+
# @return [String, nil] Two-letter ISO code of that {Spree::Country} for which
|
|
132
|
+
# prices are entered in the backend (default: nil)
|
|
133
|
+
preference :admin_vat_country_iso, :string, default: nil
|
|
134
|
+
|
|
135
|
+
# @!attribute [rw] layout
|
|
136
|
+
# @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
|
|
137
|
+
preference :layout, :string, default: 'spree/layouts/spree_application'
|
|
138
|
+
|
|
139
|
+
# @!attribute [rw] logo
|
|
140
|
+
# @return [String] URL of logo used on frontend (default: +'logo/solidus_logo.png'+)
|
|
141
|
+
preference :logo, :string, default: 'logo/solidus_logo.png'
|
|
142
|
+
|
|
143
|
+
# @!attribute [rw] order_bill_address_used
|
|
144
|
+
# @return [Boolean] Use the order's bill address, as opposed to storing
|
|
145
|
+
# bill addresses on payment sources. (default: +true+)
|
|
146
|
+
preference :order_bill_address_used, :boolean, default: true
|
|
147
|
+
|
|
148
|
+
# @!attribute [rw] order_capturing_time_window
|
|
149
|
+
# @return [Integer] the number of days to look back for fully-shipped/cancelled orders in order to charge for them
|
|
150
|
+
preference :order_capturing_time_window, :integer, default: 14
|
|
151
|
+
|
|
152
|
+
# @!attribute [rw] max_level_in_taxons_menu
|
|
153
|
+
# @return [Integer] maximum nesting level in taxons menu (default: +1+)
|
|
154
|
+
preference :max_level_in_taxons_menu, :integer, default: 1
|
|
155
|
+
|
|
156
|
+
# @!attribute [rw] order_mutex_max_age
|
|
157
|
+
# @return [Integer] Max age of {Spree::OrderMutex} in seconds (default: 2 minutes)
|
|
158
|
+
preference :order_mutex_max_age, :integer, default: 120
|
|
159
|
+
|
|
160
|
+
# @!attribute [rw] orders_per_page
|
|
161
|
+
# @return [Integer] Orders to show per-page in the admin (default: +15+)
|
|
162
|
+
preference :orders_per_page, :integer, default: 15
|
|
163
|
+
|
|
164
|
+
# @!attribute [rw] properties_per_page
|
|
165
|
+
# @return [Integer] Properties to show per-page in the admin (default: +15+)
|
|
166
|
+
preference :properties_per_page, :integer, default: 15
|
|
167
|
+
|
|
168
|
+
# @!attribute [rw] products_per_page
|
|
169
|
+
# @return [Integer] Products to show per-page in the frontend (default: +12+)
|
|
170
|
+
preference :products_per_page, :integer, default: 12
|
|
171
|
+
|
|
172
|
+
# @!attribute [rw] promotions_per_page
|
|
173
|
+
# @return [Integer] Promotions to show per-page in the admin (default: +15+)
|
|
174
|
+
preference :promotions_per_page, :integer, default: 15
|
|
175
|
+
|
|
176
|
+
# @!attribute [rw] customer_returns_per_page
|
|
177
|
+
# @return [Integer] Customer returns to show per-page in the admin (default: +15+)
|
|
178
|
+
preference :customer_returns_per_page, :integer, default: 15
|
|
179
|
+
|
|
180
|
+
# @!attribute [rw] require_master_price
|
|
181
|
+
# @return [Boolean] Require a price on the master variant of a product (default: +true+)
|
|
182
|
+
preference :require_master_price, :boolean, default: true
|
|
183
|
+
|
|
184
|
+
# @!attribute [rw] require_payment_to_ship
|
|
185
|
+
# @return [Boolean] Allows shipments to be ready to ship regardless of the order being paid if false (default: +true+)
|
|
186
|
+
preference :require_payment_to_ship, :boolean, default: true # Allows shipments to be ready to ship regardless of the order being paid if false
|
|
187
|
+
|
|
188
|
+
# @!attribute [rw] return_eligibility_number_of_days
|
|
189
|
+
# @return [Integer] default: 365
|
|
190
|
+
preference :return_eligibility_number_of_days, :integer, default: 365
|
|
191
|
+
|
|
192
|
+
# @!attribute [rw] shipping_instructions
|
|
193
|
+
# @return [Boolean] Request instructions/info for shipping (default: +false+)
|
|
194
|
+
preference :shipping_instructions, :boolean, default: false
|
|
195
|
+
|
|
196
|
+
# @!attribute [rw] show_only_complete_orders_by_default
|
|
197
|
+
# @return [Boolean] Only show completed orders by default in the admin (default: +true+)
|
|
198
|
+
preference :show_only_complete_orders_by_default, :boolean, default: true
|
|
199
|
+
|
|
200
|
+
# @!attribute [rw] show_variant_full_price
|
|
201
|
+
# @return [Boolean] Displays variant full price or difference with product price. (default: +false+)
|
|
202
|
+
preference :show_variant_full_price, :boolean, default: false
|
|
203
|
+
|
|
204
|
+
# @!attribute [rw] show_products_without_price
|
|
205
|
+
# @return [Boolean] Whether products without a price are visible in the frontend (default: +false+)
|
|
206
|
+
preference :show_products_without_price, :boolean, default: false
|
|
207
|
+
|
|
208
|
+
# @!attribute [rw] show_raw_product_description
|
|
209
|
+
# @return [Boolean] Don't escape HTML of product descriptions. (default: +false+)
|
|
210
|
+
preference :show_raw_product_description, :boolean, default: false
|
|
211
|
+
|
|
212
|
+
# @!attribute [rw] tax_using_ship_address
|
|
213
|
+
# @return [Boolean] Use the shipping address rather than the billing address to determine tax (default: +true+)
|
|
214
|
+
preference :tax_using_ship_address, :boolean, default: true
|
|
215
|
+
|
|
216
|
+
# @!attribute [rw] track_inventory_levels
|
|
217
|
+
# Determines whether to track on_hand values for variants / products. If
|
|
218
|
+
# you do not track inventory, or have effectively unlimited inventory for
|
|
219
|
+
# all products you can turn this on.
|
|
220
|
+
# @return [] Track on_hand values for variants / products. (default: true)
|
|
221
|
+
preference :track_inventory_levels, :boolean, default: true
|
|
222
|
+
|
|
223
|
+
# Default mail headers settings
|
|
224
|
+
|
|
225
|
+
# @!attribute [rw] send_core_emails
|
|
226
|
+
# @return [Boolean] Whether to send transactional emails (default: true)
|
|
227
|
+
preference :send_core_emails, :boolean, default: true
|
|
228
|
+
|
|
229
|
+
# @!attribute [rw] mails_from
|
|
230
|
+
# @return [String] Email address used as +From:+ field in transactional emails.
|
|
231
|
+
preference :mails_from, :string, default: 'spree@example.com'
|
|
232
|
+
|
|
233
|
+
# Store credits configurations
|
|
234
|
+
|
|
235
|
+
# @!attribute [rw] credit_to_new_allocation
|
|
236
|
+
# @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
|
|
237
|
+
preference :credit_to_new_allocation, :boolean, default: false
|
|
238
|
+
|
|
239
|
+
# @!attribute [rw] automatic_default_address
|
|
240
|
+
# The default value of true preserves existing backwards compatible feature of
|
|
241
|
+
# treating the most recently used address in checkout as the user's default address.
|
|
242
|
+
# Setting to false means that the user should manage their own default via some
|
|
243
|
+
# custom UI that uses AddressBookController.
|
|
244
|
+
# @return [Boolean] Whether use of an address in checkout marks it as user's default
|
|
245
|
+
preference :automatic_default_address, :boolean, default: true
|
|
246
|
+
|
|
247
|
+
# @!attribute [rw] can_restrict_stock_management
|
|
248
|
+
# @return [Boolean] Indicates if stock management can be restricted by location
|
|
249
|
+
preference :can_restrict_stock_management, :boolean, default: false
|
|
250
|
+
|
|
251
|
+
# Allows restricting what currencies will be available.
|
|
252
|
+
#
|
|
253
|
+
# @!attribute [r] available_currencies
|
|
254
|
+
# @return [Array] An array of available currencies from Money::Currency.all
|
|
255
|
+
attr_writer :available_currencies
|
|
256
|
+
def available_currencies
|
|
257
|
+
@available_currencies ||= ::Money::Currency.all
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
# searcher_class allows spree extension writers to provide their own Search class
|
|
261
|
+
class_name_attribute :searcher_class, default: 'Spree::Core::Search::Base'
|
|
262
|
+
|
|
263
|
+
# Allows implementing custom pricing for variants
|
|
264
|
+
# @!attribute [rw] variant_price_selector_class
|
|
265
|
+
# @see Spree::Variant::PriceSelector
|
|
266
|
+
# @return [Class] an object that conforms to the API of
|
|
267
|
+
# the standard variant price selector class Spree::Variant::PriceSelector.
|
|
268
|
+
class_name_attribute :variant_price_selector_class, default: 'Spree::Variant::PriceSelector'
|
|
269
|
+
|
|
270
|
+
# Shortcut for getting the variant price selector's pricing options class
|
|
271
|
+
#
|
|
272
|
+
# @return [Class] The pricing options class to be used
|
|
273
|
+
delegate :pricing_options_class, to: :variant_price_selector_class
|
|
274
|
+
|
|
275
|
+
# Shortcut for the default pricing options
|
|
276
|
+
# @return [variant_price_selector_class] An instance of the pricing options class with default desired
|
|
277
|
+
# attributes
|
|
278
|
+
def default_pricing_options
|
|
279
|
+
pricing_options_class.new
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
class_name_attribute :variant_search_class, default: 'Spree::Core::Search::Variant'
|
|
283
|
+
|
|
284
|
+
# promotion_chooser_class allows extensions to provide their own PromotionChooser
|
|
285
|
+
class_name_attribute :promotion_chooser_class, default: 'Spree::PromotionChooser'
|
|
286
|
+
|
|
287
|
+
class_name_attribute :shipping_rate_sorter_class, default: 'Spree::Stock::ShippingRateSorter'
|
|
288
|
+
|
|
289
|
+
class_name_attribute :shipping_rate_selector_class, default: 'Spree::Stock::ShippingRateSelector'
|
|
290
|
+
|
|
291
|
+
# Allows providing your own class for calculating taxes on a shipping rate.
|
|
292
|
+
#
|
|
293
|
+
# @!attribute [rw] shipping_rate_tax_calculator_class
|
|
294
|
+
# @return [Class] a class with the same public interfaces as
|
|
295
|
+
# Spree::TaxCalculator::ShippingRate
|
|
296
|
+
# @api experimental
|
|
297
|
+
class_name_attribute :shipping_rate_tax_calculator_class, default: 'Spree::TaxCalculator::ShippingRate'
|
|
298
|
+
|
|
299
|
+
# Allows providing your own Mailer for order mailer.
|
|
300
|
+
#
|
|
301
|
+
# @!attribute [rw] order_mailer_class
|
|
302
|
+
# @return [ActionMailer::Base] an object that responds to "confirm_email",
|
|
303
|
+
# "cancel_email" and "inventory_cancellation_email"
|
|
304
|
+
# (e.g. an ActionMailer with a "confirm_email" method) with the same
|
|
305
|
+
# signature as Spree::OrderMailer.confirm_email.
|
|
306
|
+
class_name_attribute :order_mailer_class, default: 'Spree::OrderMailer'
|
|
307
|
+
|
|
308
|
+
# Allows providing your own Mailer for promotion code batch mailer.
|
|
309
|
+
#
|
|
310
|
+
# @!attribute [rw] promotion_code_batch_mailer_class
|
|
311
|
+
# @return [ActionMailer::Base] an object that responds to "promotion_code_batch_finished",
|
|
312
|
+
# and "promotion_code_batch_errored"
|
|
313
|
+
# (e.g. an ActionMailer with a "promotion_code_batch_finished" method) with the same
|
|
314
|
+
# signature as Spree::PromotionCodeBatchMailer.promotion_code_batch_finished.
|
|
315
|
+
class_name_attribute :promotion_code_batch_mailer_class, default: 'Spree::PromotionCodeBatchMailer'
|
|
316
|
+
|
|
317
|
+
# Allows providing your own Mailer for reimbursement mailer.
|
|
318
|
+
#
|
|
319
|
+
# @!attribute [rw] reimbursement_mailer_class
|
|
320
|
+
# @return [ActionMailer::Base] an object that responds to "reimbursement_email"
|
|
321
|
+
# (e.g. an ActionMailer with a "reimbursement_email" method) with the same
|
|
322
|
+
# signature as Spree::ReimbursementMailer.reimbursement_email.
|
|
323
|
+
class_name_attribute :reimbursement_mailer_class, default: 'Spree::ReimbursementMailer'
|
|
324
|
+
|
|
325
|
+
# Allows providing your own Mailer for shipped cartons.
|
|
326
|
+
#
|
|
327
|
+
# @!attribute [rw] carton_shipped_email_class
|
|
328
|
+
# @return [ActionMailer::Base] an object that responds to "shipped_email"
|
|
329
|
+
# (e.g. an ActionMailer with a "shipped_email" method) with the same
|
|
330
|
+
# signature as Spree::CartonMailer.shipped_email.
|
|
331
|
+
class_name_attribute :carton_shipped_email_class, default: 'Spree::CartonMailer'
|
|
332
|
+
|
|
333
|
+
# Allows providing your own class for merging two orders.
|
|
334
|
+
#
|
|
335
|
+
# @!attribute [rw] order_merger_class
|
|
336
|
+
# @return [Class] a class with the same public interfaces
|
|
337
|
+
# as Spree::OrderMerger.
|
|
338
|
+
class_name_attribute :order_merger_class, default: 'Spree::OrderMerger'
|
|
339
|
+
|
|
340
|
+
# Allows providing your own class for adding default payments to a user's
|
|
341
|
+
# order from their "wallet".
|
|
342
|
+
#
|
|
343
|
+
# @!attribute [rw] default_payment_builder_class
|
|
344
|
+
# @return [Class] a class with the same public interfaces as
|
|
345
|
+
# Spree::Wallet::DefaultPaymentBuilder.
|
|
346
|
+
class_name_attribute :default_payment_builder_class, default: 'Spree::Wallet::DefaultPaymentBuilder'
|
|
347
|
+
|
|
348
|
+
# Allows providing your own class for canceling payments.
|
|
349
|
+
#
|
|
350
|
+
# @!attribute [rw] payment_canceller
|
|
351
|
+
# @return [Class] a class instance that responds to `cancel!(payment)`
|
|
352
|
+
attr_writer :payment_canceller
|
|
353
|
+
def payment_canceller
|
|
354
|
+
@payment_canceller ||= Spree::Payment::Cancellation.new(
|
|
355
|
+
reason: Spree::Payment::Cancellation::DEFAULT_REASON
|
|
356
|
+
)
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
# Allows providing your own class for adding payment sources to a user's
|
|
360
|
+
# "wallet" after an order moves to the complete state.
|
|
361
|
+
#
|
|
362
|
+
# @!attribute [rw] add_payment_sources_to_wallet_class
|
|
363
|
+
# @return [Class] a class with the same public interfaces
|
|
364
|
+
# as Spree::Wallet::AddPaymentSourcesToWallet.
|
|
365
|
+
class_name_attribute :add_payment_sources_to_wallet_class, default: 'Spree::Wallet::AddPaymentSourcesToWallet'
|
|
366
|
+
|
|
367
|
+
# Allows providing your own class for calculating taxes on an order.
|
|
368
|
+
#
|
|
369
|
+
# This extension point is under development and may change in a future minor release.
|
|
370
|
+
#
|
|
371
|
+
# @!attribute [rw] tax_adjuster_class
|
|
372
|
+
# @return [Class] a class with the same public interfaces as
|
|
373
|
+
# Spree::Tax::OrderAdjuster
|
|
374
|
+
# @api experimental
|
|
375
|
+
class_name_attribute :tax_adjuster_class, default: 'Spree::Tax::OrderAdjuster'
|
|
376
|
+
|
|
377
|
+
# Allows providing your own class for calculating taxes on an order.
|
|
378
|
+
#
|
|
379
|
+
# @!attribute [rw] tax_calculator_class
|
|
380
|
+
# @return [Class] a class with the same public interfaces as
|
|
381
|
+
# Spree::TaxCalculator::Default
|
|
382
|
+
# @api experimental
|
|
383
|
+
class_name_attribute :tax_calculator_class, default: 'Spree::TaxCalculator::Default'
|
|
384
|
+
|
|
385
|
+
# Allows providing your own class for choosing which store to use.
|
|
386
|
+
#
|
|
387
|
+
# @!attribute [rw] current_store_selector_class
|
|
388
|
+
# @return [Class] a class with the same public interfaces as
|
|
389
|
+
# Spree::CurrentStoreSelector
|
|
390
|
+
class_name_attribute :current_store_selector_class, default: 'Spree::StoreSelector::ByServerName'
|
|
391
|
+
|
|
392
|
+
# Allows providing your own class for creating urls on taxons
|
|
393
|
+
#
|
|
394
|
+
# @!attribute [rw] taxon_url_parametizer_class
|
|
395
|
+
# @return [Class] a class that provides a `#parameterize` method that
|
|
396
|
+
# returns a String
|
|
397
|
+
class_name_attribute :taxon_url_parametizer_class, default: 'ActiveSupport::Inflector'
|
|
398
|
+
|
|
399
|
+
# Allows providing your own class for image galleries on Variants
|
|
400
|
+
#
|
|
401
|
+
# @!attribute [rw] variant_gallery_class
|
|
402
|
+
# @return [Class] a class that implements an `images` method and returns an
|
|
403
|
+
# Enumerable of images adhering to the present_image_class interface
|
|
404
|
+
class_name_attribute :variant_gallery_class, default: 'Spree::Gallery::VariantGallery'
|
|
405
|
+
|
|
406
|
+
# Allows providing your own class for image galleries on Products
|
|
407
|
+
#
|
|
408
|
+
# @!attribute [rw] product_gallery_class
|
|
409
|
+
# @return [Class] a class that implements an `images` method and returns an
|
|
410
|
+
# Enumerable of images adhering to the present_image_class interface
|
|
411
|
+
class_name_attribute :product_gallery_class, default: 'Spree::Gallery::ProductGallery'
|
|
412
|
+
|
|
413
|
+
# Allows providing your own class instance for generating order numbers.
|
|
414
|
+
#
|
|
415
|
+
# @!attribute [rw] order_number_generator
|
|
416
|
+
# @return [Class] a class instance with the same public interfaces as
|
|
417
|
+
# Spree::Order::NumberGenerator
|
|
418
|
+
# @api experimental
|
|
419
|
+
attr_writer :order_number_generator
|
|
420
|
+
def order_number_generator
|
|
421
|
+
@order_number_generator ||= Spree::Order::NumberGenerator.new
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
def static_model_preferences
|
|
425
|
+
@static_model_preferences ||= Spree::Preferences::StaticModelPreferences.new
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
def stock
|
|
429
|
+
@stock_configuration ||= Spree::Core::StockConfiguration.new
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
def roles
|
|
433
|
+
@roles ||= Spree::RoleConfiguration.new.tap do |roles|
|
|
434
|
+
roles.assign_permissions :default, ['Spree::PermissionSets::DefaultCustomer']
|
|
435
|
+
roles.assign_permissions :admin, ['Spree::PermissionSets::SuperUser']
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
def environment
|
|
440
|
+
@environment ||= Spree::Core::Environment.new(self).tap do |env|
|
|
441
|
+
env.calculators.shipping_methods = %w[
|
|
442
|
+
Spree::Calculator::Shipping::FlatPercentItemTotal
|
|
443
|
+
Spree::Calculator::Shipping::FlatRate
|
|
444
|
+
Spree::Calculator::Shipping::FlexiRate
|
|
445
|
+
Spree::Calculator::Shipping::PerItem
|
|
446
|
+
Spree::Calculator::Shipping::PriceSack
|
|
447
|
+
]
|
|
448
|
+
|
|
449
|
+
env.calculators.tax_rates = %w[
|
|
450
|
+
Spree::Calculator::DefaultTax
|
|
451
|
+
]
|
|
452
|
+
|
|
453
|
+
env.stock_splitters = %w[
|
|
454
|
+
Spree::Stock::Splitter::ShippingCategory
|
|
455
|
+
Spree::Stock::Splitter::Backordered
|
|
456
|
+
]
|
|
457
|
+
|
|
458
|
+
env.payment_methods = %w[
|
|
459
|
+
Spree::PaymentMethod::BogusCreditCard
|
|
460
|
+
Spree::PaymentMethod::SimpleBogusCreditCard
|
|
461
|
+
Spree::PaymentMethod::StoreCredit
|
|
462
|
+
Spree::PaymentMethod::Check
|
|
463
|
+
]
|
|
464
|
+
|
|
465
|
+
env.promotions = Spree::Promo::Environment.new.tap do |promos|
|
|
466
|
+
promos.rules = %w[
|
|
467
|
+
Spree::Promotion::Rules::ItemTotal
|
|
468
|
+
Spree::Promotion::Rules::Product
|
|
469
|
+
Spree::Promotion::Rules::User
|
|
470
|
+
Spree::Promotion::Rules::FirstOrder
|
|
471
|
+
Spree::Promotion::Rules::UserLoggedIn
|
|
472
|
+
Spree::Promotion::Rules::OneUsePerUser
|
|
473
|
+
Spree::Promotion::Rules::Taxon
|
|
474
|
+
Spree::Promotion::Rules::NthOrder
|
|
475
|
+
Spree::Promotion::Rules::OptionValue
|
|
476
|
+
Spree::Promotion::Rules::FirstRepeatPurchaseSince
|
|
477
|
+
Spree::Promotion::Rules::UserRole
|
|
478
|
+
Spree::Promotion::Rules::Store
|
|
479
|
+
]
|
|
480
|
+
|
|
481
|
+
promos.actions = %w[
|
|
482
|
+
Spree::Promotion::Actions::CreateAdjustment
|
|
483
|
+
Spree::Promotion::Actions::CreateItemAdjustments
|
|
484
|
+
Spree::Promotion::Actions::CreateQuantityAdjustments
|
|
485
|
+
Spree::Promotion::Actions::FreeShipping
|
|
486
|
+
]
|
|
487
|
+
|
|
488
|
+
promos.shipping_actions = %w[
|
|
489
|
+
Spree::Promotion::Actions::FreeShipping
|
|
490
|
+
]
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
env.calculators.promotion_actions_create_adjustments = %w[
|
|
494
|
+
Spree::Calculator::FlatPercentItemTotal
|
|
495
|
+
Spree::Calculator::FlatRate
|
|
496
|
+
Spree::Calculator::FlexiRate
|
|
497
|
+
Spree::Calculator::TieredPercent
|
|
498
|
+
Spree::Calculator::TieredFlatRate
|
|
499
|
+
]
|
|
500
|
+
|
|
501
|
+
env.calculators.promotion_actions_create_item_adjustments = %w[
|
|
502
|
+
Spree::Calculator::DistributedAmount
|
|
503
|
+
Spree::Calculator::FlatRate
|
|
504
|
+
Spree::Calculator::FlexiRate
|
|
505
|
+
Spree::Calculator::PercentOnLineItem
|
|
506
|
+
Spree::Calculator::TieredPercent
|
|
507
|
+
]
|
|
508
|
+
|
|
509
|
+
env.calculators.promotion_actions_create_quantity_adjustments = %w[
|
|
510
|
+
Spree::Calculator::PercentOnLineItem
|
|
511
|
+
Spree::Calculator::FlatRate
|
|
512
|
+
]
|
|
513
|
+
end
|
|
514
|
+
end
|
|
515
|
+
|
|
516
|
+
# Default admin VAT location
|
|
517
|
+
#
|
|
518
|
+
# An object that responds to :state_id and :country_id so it can double as a Spree::Address in
|
|
519
|
+
# Spree::Zone.for_address. Takes the `admin_vat_country_iso` as input.
|
|
520
|
+
#
|
|
521
|
+
# @see admin_vat_country_iso The admin VAT country
|
|
522
|
+
# @return [Spree::Tax::TaxLocation] default tax location
|
|
523
|
+
def admin_vat_location
|
|
524
|
+
@default_tax_location ||= Spree::Tax::TaxLocation.new(
|
|
525
|
+
country: Spree::Country.find_by(iso: admin_vat_country_iso)
|
|
526
|
+
)
|
|
527
|
+
end
|
|
528
|
+
end
|
|
529
|
+
end
|
data/lib/spree/config.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'active_merchant/errors'
|
|
4
|
+
|
|
5
|
+
require 'active_merchant/billing/base'
|
|
6
|
+
|
|
7
|
+
require 'active_merchant/billing/avs_result'
|
|
8
|
+
require 'active_merchant/billing/cvv_result'
|
|
9
|
+
require 'active_merchant/billing/response'
|
|
10
|
+
|
|
11
|
+
require 'active_merchant/billing/credit_card_methods'
|
|
12
|
+
require 'active_merchant/billing/credit_card_formatting'
|
|
13
|
+
require 'active_merchant/billing/credit_card'
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Core
|
|
5
|
+
module ClassConstantizer
|
|
6
|
+
class Set
|
|
7
|
+
include Enumerable
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@collection = ::Set.new
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def <<(klass)
|
|
14
|
+
@collection << klass.to_s
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def concat(klasses)
|
|
18
|
+
klasses.each do |klass|
|
|
19
|
+
self << klass
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
delegate :clear, :empty?, to: :@collection
|
|
24
|
+
|
|
25
|
+
def each
|
|
26
|
+
@collection.each do |klass|
|
|
27
|
+
yield klass.constantize
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'cancan'
|
|
4
|
+
|
|
5
|
+
module Spree
|
|
6
|
+
module Core
|
|
7
|
+
module ControllerHelpers
|
|
8
|
+
module Auth
|
|
9
|
+
extend ActiveSupport::Concern
|
|
10
|
+
|
|
11
|
+
# @!attribute [rw] unauthorized_redirect
|
|
12
|
+
# @!scope class
|
|
13
|
+
# Extension point for overriding behaviour of access denied errors.
|
|
14
|
+
# Default behaviour is to redirect to "/unauthorized" with a flash
|
|
15
|
+
# message.
|
|
16
|
+
# @return [Proc] action to take when access denied error is raised.
|
|
17
|
+
|
|
18
|
+
included do
|
|
19
|
+
before_action :set_guest_token
|
|
20
|
+
helper_method :try_spree_current_user
|
|
21
|
+
|
|
22
|
+
class_attribute :unauthorized_redirect
|
|
23
|
+
self.unauthorized_redirect = -> do
|
|
24
|
+
flash[:error] = I18n.t('spree.authorization_failure')
|
|
25
|
+
redirect_to "/unauthorized"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
rescue_from CanCan::AccessDenied do
|
|
29
|
+
instance_exec(&unauthorized_redirect)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Needs to be overriden so that we use Spree's Ability rather than anyone else's.
|
|
34
|
+
def current_ability
|
|
35
|
+
@current_ability ||= Spree::Ability.new(try_spree_current_user)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def redirect_back_or_default(default)
|
|
39
|
+
redirect_to(session["spree_user_return_to"] || default)
|
|
40
|
+
session["spree_user_return_to"] = nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def set_guest_token
|
|
44
|
+
unless cookies.signed[:guest_token].present?
|
|
45
|
+
cookies.permanent.signed[:guest_token] = {
|
|
46
|
+
value: SecureRandom.urlsafe_base64(nil, false),
|
|
47
|
+
httponly: true
|
|
48
|
+
}
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def store_location
|
|
53
|
+
# disallow return to login, logout, signup pages
|
|
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
|
+
end
|
|
67
|
+
|
|
68
|
+
# proxy method to *possible* spree_current_user method
|
|
69
|
+
# Authentication extensions (such as spree_auth_devise) are meant to provide spree_current_user
|
|
70
|
+
def try_spree_current_user
|
|
71
|
+
# This one will be defined by apps looking to hook into Spree
|
|
72
|
+
# As per authentication_helpers.rb
|
|
73
|
+
if respond_to?(:spree_current_user, true)
|
|
74
|
+
spree_current_user
|
|
75
|
+
# This one will be defined by Devise
|
|
76
|
+
elsif respond_to?(:current_spree_user, true)
|
|
77
|
+
current_spree_user
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|