solidus_core 1.0.0.pre
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/LICENSE +26 -0
- data/app/assets/images/logo/solidus.png +0 -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.coffee.erb +61 -0
- data/app/controllers/spree/base_controller.rb +15 -0
- data/app/helpers/spree/base_helper.rb +210 -0
- data/app/helpers/spree/checkout_helper.rb +31 -0
- data/app/helpers/spree/orders_helper.rb +17 -0
- data/app/helpers/spree/products_helper.rb +82 -0
- data/app/helpers/spree/store_helper.rb +16 -0
- data/app/helpers/spree/taxons_helper.rb +19 -0
- data/app/mailers/spree/base_mailer.rb +23 -0
- data/app/mailers/spree/carton_mailer.rb +12 -0
- data/app/mailers/spree/order_mailer.rb +35 -0
- data/app/mailers/spree/reimbursement_mailer.rb +10 -0
- data/app/mailers/spree/test_mailer.rb +8 -0
- data/app/models/concerns/spree/adjustment_source.rb +24 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +33 -0
- data/app/models/concerns/spree/default_price.rb +34 -0
- data/app/models/concerns/spree/display_money.rb +32 -0
- data/app/models/concerns/spree/named_type.rb +12 -0
- data/app/models/concerns/spree/user_address.rb +30 -0
- data/app/models/concerns/spree/user_api_authentication.rb +13 -0
- data/app/models/concerns/spree/user_payment_source.rb +19 -0
- data/app/models/concerns/spree/user_reporting.rb +22 -0
- data/app/models/spree/ability.rb +74 -0
- data/app/models/spree/address.rb +157 -0
- data/app/models/spree/adjustment.rb +143 -0
- data/app/models/spree/app_configuration.rb +253 -0
- data/app/models/spree/asset.rb +6 -0
- data/app/models/spree/base.rb +15 -0
- data/app/models/spree/billing_integration.rb +21 -0
- data/app/models/spree/calculator.rb +47 -0
- data/app/models/spree/calculator/default_tax.rb +67 -0
- data/app/models/spree/calculator/flat_percent_item_total.rb +22 -0
- data/app/models/spree/calculator/flat_rate.rb +20 -0
- data/app/models/spree/calculator/flexi_rate.rb +33 -0
- data/app/models/spree/calculator/free_shipping.rb +21 -0
- data/app/models/spree/calculator/percent_on_line_item.rb +15 -0
- data/app/models/spree/calculator/percent_per_item.rb +50 -0
- data/app/models/spree/calculator/price_sack.rb +29 -0
- data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +22 -0
- data/app/models/spree/calculator/shipping/flat_rate.rb +18 -0
- data/app/models/spree/calculator/shipping/flexi_rate.rb +35 -0
- data/app/models/spree/calculator/shipping/per_item.rb +22 -0
- data/app/models/spree/calculator/shipping/price_sack.rb +28 -0
- data/app/models/spree/calculator/tiered_flat_rate.rb +37 -0
- data/app/models/spree/calculator/tiered_percent.rb +44 -0
- data/app/models/spree/carton.rb +57 -0
- data/app/models/spree/classification.rb +11 -0
- data/app/models/spree/country.rb +23 -0
- data/app/models/spree/credit_card.rb +197 -0
- data/app/models/spree/customer_return.rb +73 -0
- data/app/models/spree/exchange.rb +46 -0
- data/app/models/spree/gateway.rb +79 -0
- data/app/models/spree/gateway/bogus.rb +91 -0
- data/app/models/spree/gateway/bogus_simple.rb +26 -0
- data/app/models/spree/image.rb +44 -0
- data/app/models/spree/inventory_unit.rb +154 -0
- data/app/models/spree/item_adjustments.rb +85 -0
- data/app/models/spree/item_adjustments.rb.orig +93 -0
- data/app/models/spree/legacy_user.rb +38 -0
- data/app/models/spree/line_item.rb +183 -0
- data/app/models/spree/line_item_action.rb +6 -0
- data/app/models/spree/log_entry.rb +20 -0
- data/app/models/spree/option_type.rb +30 -0
- data/app/models/spree/option_value.rb +26 -0
- data/app/models/spree/option_values_variant.rb +6 -0
- data/app/models/spree/order.rb +811 -0
- data/app/models/spree/order/checkout.rb +351 -0
- data/app/models/spree/order/currency_updater.rb +40 -0
- data/app/models/spree/order/payments.rb +66 -0
- data/app/models/spree/order_cancellations.rb +72 -0
- data/app/models/spree/order_capturing.rb +49 -0
- data/app/models/spree/order_contents.rb +125 -0
- data/app/models/spree/order_inventory.rb +108 -0
- data/app/models/spree/order_mutex.rb +35 -0
- data/app/models/spree/order_promotion.rb +23 -0
- data/app/models/spree/order_shipping.rb +99 -0
- data/app/models/spree/order_stock_location.rb +15 -0
- data/app/models/spree/order_updater.rb +178 -0
- data/app/models/spree/payment.rb +292 -0
- data/app/models/spree/payment/processing.rb +210 -0
- data/app/models/spree/payment_capture_event.rb +9 -0
- data/app/models/spree/payment_method.rb +79 -0
- data/app/models/spree/payment_method/check.rb +31 -0
- data/app/models/spree/payment_method/store_credit.rb +127 -0
- data/app/models/spree/preference.rb +5 -0
- data/app/models/spree/preferences/configuration.rb +78 -0
- data/app/models/spree/preferences/preferable.rb +128 -0
- data/app/models/spree/preferences/preferable_class_methods.rb +64 -0
- data/app/models/spree/preferences/scoped_store.rb +33 -0
- data/app/models/spree/preferences/store.rb +93 -0
- data/app/models/spree/price.rb +62 -0
- data/app/models/spree/product.rb +347 -0
- data/app/models/spree/product/scopes.rb +262 -0
- data/app/models/spree/product_option_type.rb +7 -0
- data/app/models/spree/product_property.rb +25 -0
- data/app/models/spree/product_scope/scopes.rb +47 -0
- data/app/models/spree/promotion.rb +229 -0
- data/app/models/spree/promotion/actions/create_adjustment.rb +63 -0
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +80 -0
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +129 -0
- data/app/models/spree/promotion/actions/free_shipping.rb +41 -0
- data/app/models/spree/promotion/rules/first_order.rb +37 -0
- data/app/models/spree/promotion/rules/item_total.rb +61 -0
- data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
- data/app/models/spree/promotion/rules/option_value.rb +50 -0
- data/app/models/spree/promotion/rules/product.rb +64 -0
- data/app/models/spree/promotion/rules/taxon.rb +69 -0
- data/app/models/spree/promotion/rules/user.rb +30 -0
- data/app/models/spree/promotion/rules/user_logged_in.rb +18 -0
- data/app/models/spree/promotion_action.rb +23 -0
- data/app/models/spree/promotion_builder.rb +55 -0
- data/app/models/spree/promotion_category.rb +6 -0
- data/app/models/spree/promotion_chooser.rb +30 -0
- data/app/models/spree/promotion_code.rb +39 -0
- data/app/models/spree/promotion_code/code_builder.rb +62 -0
- data/app/models/spree/promotion_handler/cart.rb +65 -0
- data/app/models/spree/promotion_handler/coupon.rb +119 -0
- data/app/models/spree/promotion_handler/free_shipping.rb +43 -0
- data/app/models/spree/promotion_handler/page.rb +24 -0
- data/app/models/spree/promotion_rule.rb +44 -0
- data/app/models/spree/property.rb +20 -0
- data/app/models/spree/prototype.rb +9 -0
- data/app/models/spree/refund.rb +96 -0
- data/app/models/spree/refund_reason.rb +13 -0
- data/app/models/spree/reimbursement.rb +188 -0
- data/app/models/spree/reimbursement/credit.rb +25 -0
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
- data/app/models/spree/reimbursement/reimbursement_type_validator.rb +15 -0
- data/app/models/spree/reimbursement_performer.rb +43 -0
- data/app/models/spree/reimbursement_tax_calculator.rb +38 -0
- data/app/models/spree/reimbursement_type.rb +16 -0
- data/app/models/spree/reimbursement_type/credit.rb +13 -0
- data/app/models/spree/reimbursement_type/exchange.rb +9 -0
- data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +70 -0
- data/app/models/spree/reimbursement_type/store_credit.rb +27 -0
- data/app/models/spree/return_authorization.rb +108 -0
- data/app/models/spree/return_authorization_reason.rb +7 -0
- data/app/models/spree/return_item.rb +311 -0
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
- data/app/models/spree/return_item/eligibility_validator/default.rb +30 -0
- data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +16 -0
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +17 -0
- data/app/models/spree/return_item/eligibility_validator/order_completed.rb +16 -0
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +9 -0
- data/app/models/spree/returns_calculator.rb +8 -0
- data/app/models/spree/role.rb +10 -0
- data/app/models/spree/role_user.rb +17 -0
- data/app/models/spree/shipment.rb +427 -0
- data/app/models/spree/shipping_calculator.rb +22 -0
- data/app/models/spree/shipping_category.rb +8 -0
- data/app/models/spree/shipping_manifest.rb +23 -0
- data/app/models/spree/shipping_method.rb +69 -0
- data/app/models/spree/shipping_method_category.rb +6 -0
- data/app/models/spree/shipping_rate.rb +57 -0
- data/app/models/spree/state.rb +30 -0
- data/app/models/spree/state_change.rb +15 -0
- data/app/models/spree/static_model_preferences.rb +32 -0
- data/app/models/spree/stock/adjuster.rb +28 -0
- data/app/models/spree/stock/availability_validator.rb +35 -0
- data/app/models/spree/stock/content_item.rb +48 -0
- data/app/models/spree/stock/coordinator.rb +96 -0
- data/app/models/spree/stock/differentiator.rb +44 -0
- data/app/models/spree/stock/estimator.rb +70 -0
- data/app/models/spree/stock/inventory_unit_builder.rb +22 -0
- data/app/models/spree/stock/inventory_validator.rb +14 -0
- data/app/models/spree/stock/package.rb +131 -0
- data/app/models/spree/stock/packer.rb +49 -0
- data/app/models/spree/stock/prioritizer.rb +47 -0
- data/app/models/spree/stock/quantifier.rb +47 -0
- data/app/models/spree/stock/splitter/backordered.rb +23 -0
- data/app/models/spree/stock/splitter/base.rb +28 -0
- data/app/models/spree/stock/splitter/shipping_category.rb +32 -0
- data/app/models/spree/stock/splitter/weight.rb +32 -0
- data/app/models/spree/stock_item.rb +107 -0
- data/app/models/spree/stock_location.rb +128 -0
- data/app/models/spree/stock_movement.rb +26 -0
- data/app/models/spree/stock_transfer.rb +108 -0
- data/app/models/spree/store.rb +38 -0
- data/app/models/spree/store_credit.rb +267 -0
- data/app/models/spree/store_credit_category.rb +17 -0
- data/app/models/spree/store_credit_event.rb +52 -0
- data/app/models/spree/store_credit_type.rb +6 -0
- data/app/models/spree/tax_category.rb +19 -0
- data/app/models/spree/tax_rate.rb +199 -0
- data/app/models/spree/taxon.rb +103 -0
- data/app/models/spree/taxonomy.rb +27 -0
- data/app/models/spree/tracker.rb +8 -0
- data/app/models/spree/transfer_item.rb +58 -0
- data/app/models/spree/unit_cancel.rb +32 -0
- data/app/models/spree/user_stock_location.rb +6 -0
- data/app/models/spree/validations/db_maximum_length_validator.rb +22 -0
- data/app/models/spree/variant.rb +356 -0
- data/app/models/spree/variant/scopes.rb +40 -0
- data/app/models/spree/zone.rb +138 -0
- data/app/models/spree/zone_member.rb +11 -0
- data/app/views/layouts/spree/base_mailer.html.erb +784 -0
- data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +19 -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.text.erb +10 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
- data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
- data/app/views/spree/shared/_base_mailer_header.html.erb +31 -0
- data/app/views/spree/shared/_error_messages.html.erb +11 -0
- data/app/views/spree/shipment_mailer/shipped_email.html.erb +34 -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/friendly_id.rb +88 -0
- data/config/initializers/premailer_assets.rb +1 -0
- data/config/initializers/user_class_extensions.rb +42 -0
- data/config/locales/en.yml +1534 -0
- data/config/routes.rb +1 -0
- data/db/default/spree/countries.rb +19 -0
- data/db/default/spree/roles.rb +2 -0
- data/db/default/spree/states.rb +16 -0
- data/db/default/spree/store_credit.rb +16 -0
- data/db/default/spree/stores.rb +9 -0
- data/db/default/spree/zones.rb +17 -0
- data/db/migrate/20120831092320_spree_one_two.rb +481 -0
- data/db/migrate/20120831092359_spree_promo_one_two.rb +45 -0
- data/db/migrate/20120905145253_add_tax_rate_label.rb +5 -0
- data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +5 -0
- data/db/migrate/20120929093553_remove_unused_preference_columns.rb +8 -0
- data/db/migrate/20121009142519_add_lock_version_to_variant.rb +5 -0
- data/db/migrate/20121010142909_add_states_required_to_countries.rb +5 -0
- data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +6 -0
- data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +11 -0
- data/db/migrate/20121031162139_split_prices_from_variants.rb +31 -0
- data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +9 -0
- data/db/migrate/20121107184631_add_currency_to_line_items.rb +5 -0
- data/db/migrate/20121107194006_add_currency_to_orders.rb +5 -0
- data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +5 -0
- data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +5 -0
- data/db/migrate/20121124203911_add_position_to_taxonomies.rb +5 -0
- data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +5 -0
- data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +6 -0
- data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +9 -0
- data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +6 -0
- data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +5 -0
- data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +9 -0
- data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +5 -0
- data/db/migrate/20130211190146_create_spree_stock_items.rb +14 -0
- data/db/migrate/20130211191120_create_spree_stock_locations.rb +11 -0
- data/db/migrate/20130213191427_create_default_stock.rb +34 -0
- data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +5 -0
- data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +5 -0
- data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +5 -0
- data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +6 -0
- data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +6 -0
- data/db/migrate/20130228210442_create_shipping_method_zone.rb +21 -0
- data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +5 -0
- data/db/migrate/20130301162924_create_shipping_method_categories.rb +13 -0
- data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20130304162240_create_spree_shipping_rates.rb +24 -0
- data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +7 -0
- data/db/migrate/20130305143310_create_stock_movements.rb +12 -0
- data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +22 -0
- data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +5 -0
- data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +5 -0
- data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +5 -0
- data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +8 -0
- data/db/migrate/20130319062004_change_orders_total_precision.rb +8 -0
- data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +7 -0
- data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +7 -0
- data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +7 -0
- data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +7 -0
- data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +15 -0
- data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +9 -0
- data/db/migrate/20130326175857_add_stock_location_to_rma.rb +5 -0
- data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +15 -0
- data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +9 -0
- data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +14 -0
- data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +5 -0
- data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +13 -0
- data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +5 -0
- data/db/migrate/20130417120035_update_adjustment_states.rb +16 -0
- data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +15 -0
- data/db/migrate/20130418125341_create_spree_stock_transfers.rb +14 -0
- data/db/migrate/20130423110707_drop_products_count_on_hand.rb +5 -0
- data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +5 -0
- data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +23 -0
- data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +5 -0
- data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +5 -0
- data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +5 -0
- data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +5 -0
- data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +5 -0
- data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +9 -0
- data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +9 -0
- data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +6 -0
- data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +5 -0
- data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +7 -0
- data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +5 -0
- data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +6 -0
- data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +5 -0
- data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +6 -0
- data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +5 -0
- data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +5 -0
- data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +5 -0
- data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +10 -0
- data/db/migrate/20130806022521_drop_spree_mail_methods.rb +12 -0
- data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +8 -0
- data/db/migrate/20130807024301_upgrade_adjustments.rb +40 -0
- data/db/migrate/20130807024302_rename_adjustment_fields.rb +14 -0
- data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +5 -0
- data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +5 -0
- data/db/migrate/20130813140619_expand_order_number_size.rb +9 -0
- data/db/migrate/20130813232134_rename_activators_to_promotions.rb +5 -0
- data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +5 -0
- data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +5 -0
- data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +16 -0
- data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +8 -0
- data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +15 -0
- data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +19 -0
- data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +5 -0
- data/db/migrate/20130909115621_change_states_required_for_countries.rb +9 -0
- data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +5 -0
- data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +5 -0
- data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +7 -0
- data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +16 -0
- data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +5 -0
- data/db/migrate/20131107132123_add_tax_category_to_variants.rb +6 -0
- data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +5 -0
- data/db/migrate/20131118043959_add_included_to_adjustments.rb +5 -0
- data/db/migrate/20131118050234_rename_tax_total_fields.rb +11 -0
- data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +21 -0
- data/db/migrate/20131120234456_add_updated_at_to_variants.rb +5 -0
- data/db/migrate/20131127001002_add_position_to_classifications.rb +5 -0
- data/db/migrate/20131211112807_create_spree_orders_promotions.rb +8 -0
- data/db/migrate/20131211192741_unique_shipping_method_categories.rb +24 -0
- data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +5 -0
- data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +8 -0
- data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +5 -0
- data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +5 -0
- data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +6 -0
- data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +5 -0
- data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +6 -0
- data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +5 -0
- data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +5 -0
- data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +12 -0
- data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +5 -0
- data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +11 -0
- data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +5 -0
- data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +5 -0
- data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +6 -0
- data/db/migrate/20140213184916_add_more_indexes.rb +13 -0
- data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +5 -0
- data/db/migrate/20140227112348_add_preference_store_to_everything.rb +8 -0
- data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +13 -0
- data/db/migrate/20140309023735_migrate_old_preferences.rb +23 -0
- data/db/migrate/20140309024355_create_spree_stores.rb +25 -0
- data/db/migrate/20140309033438_create_store_from_preferences.rb +30 -0
- data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +6 -0
- data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
- data/db/migrate/20140331100557_add_additional_store_fields.rb +8 -0
- data/db/migrate/20140410141842_add_many_missing_indexes.rb +17 -0
- data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +66 -0
- data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +5 -0
- data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +8 -0
- data/db/migrate/20140518174634_add_token_to_spree_orders.rb +5 -0
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +29 -0
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +10 -0
- data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +6 -0
- data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +6 -0
- data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +5 -0
- data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
- data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
- data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
- data/db/migrate/20140708132019_create_order_mutex.rb +11 -0
- data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
- data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
- data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
- data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
- data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
- data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
- data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
- data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
- data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
- data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
- data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
- data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +7 -0
- data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
- data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
- data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
- data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
- data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
- data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
- data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
- data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
- data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
- data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
- data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
- data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +10 -0
- data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
- data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
- data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
- data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
- data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
- data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
- data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +6 -0
- data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
- data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +8 -0
- data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +5 -0
- data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +8 -0
- data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +13 -0
- data/db/migrate/20141105213646_update_classifications_positions.rb +9 -0
- data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +5 -0
- data/db/migrate/20141231151320_add_default_column_to_price.rb +5 -0
- data/db/migrate/20150112194216_add_position_to_stock_location.rb +5 -0
- data/db/migrate/20150113002122_create_spree_promotion_codes.rb +13 -0
- data/db/migrate/20150113002123_create_adjustment_promotion_code_association.rb +6 -0
- data/db/migrate/20150121202544_add_restock_inventory_to_stock_location.rb +5 -0
- data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +5 -0
- data/db/migrate/20150127161843_create_order_stock_locations.rb +12 -0
- data/db/migrate/20150203151219_add_fulfillable_to_stock_location.rb +5 -0
- data/db/migrate/20150205210527_add_code_to_refund_reason.rb +5 -0
- data/db/migrate/20150213160148_add_promotion_code_id_to_orders_promotions.rb +7 -0
- data/db/migrate/20150213163612_add_approver_name_to_spree_orders.rb +5 -0
- data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +65 -0
- data/db/migrate/20150226195213_downcase_promotion_codes_values.rb +11 -0
- data/db/migrate/20150227161934_add_order_ids_to_adjustments_where_missing.rb +9 -0
- data/db/migrate/20150303212749_add_per_code_usage_limit_to_promotions.rb +5 -0
- data/db/migrate/20150303212826_remove_usage_limit_from_promotion_codes.rb +5 -0
- data/db/migrate/20150304211616_add_timestamps_to_order_promotions.rb +6 -0
- data/db/migrate/20150305043021_create_spree_cartons.rb +24 -0
- data/db/migrate/20150305210403_add_timestamps_to_spree_roles_users.rb +7 -0
- data/db/migrate/20150313140507_remove_considered_risky_from_spree_orders.rb +5 -0
- data/db/migrate/20150313192827_add_index_to_inventory_units_carton_id.rb +5 -0
- data/db/migrate/20150313201235_add_imported_from_shipment_id_to_cartons.rb +8 -0
- data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +13 -0
- data/db/migrate/20150330144639_create_spree_user_stock_locations.rb +10 -0
- data/db/migrate/20150331134544_add_stock_location_code.rb +5 -0
- data/db/migrate/20150402210430_create_unit_cancels.rb +10 -0
- data/db/migrate/20150407173305_add_fields_to_stock_transfer.rb +12 -0
- data/db/migrate/20150407173531_create_transfer_items.rb +14 -0
- data/db/migrate/20150424143547_drop_stock_transfer_type.rb +10 -0
- data/db/migrate/20150424161102_add_stock_transfer_finalized_at.rb +8 -0
- data/db/migrate/20150429125822_rename_stock_transfer_reference.rb +5 -0
- data/db/migrate/20150430233803_create_line_item_actions.rb +10 -0
- data/db/migrate/20150506181159_create_spree_store_credit_categories.rb +10 -0
- data/db/migrate/20150506181244_create_spree_store_credits.rb +19 -0
- data/db/migrate/20150506181539_create_spree_store_credit_events.rb +17 -0
- data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +13 -0
- data/db/migrate/20150506181715_create_store_credit_types.rb +17 -0
- data/db/migrate/20150506182045_create_store_credit_reimbursement_type.rb +5 -0
- data/db/migrate/20150508044622_add_resellable_to_return_items.rb +5 -0
- data/db/migrate/20150514185559_add_invalidated_at_to_spree_store_credits.rb +5 -0
- data/db/migrate/20150514201836_migrate_deleted_store_credits_to_invalidated.rb +13 -0
- data/db/migrate/20150515170322_add_check_stock_on_transfer.rb +5 -0
- data/db/migrate/20150528125647_delete_inventory_units_without_shipment.rb +25 -0
- data/db/migrate/20150601191251_add_deleted_at_to_stock_transfers.rb +5 -0
- data/db/migrate/20150601204148_add_deleted_at_to_transfer_items.rb +5 -0
- data/db/migrate/20150609193231_add_preferences_to_promotion_actions.rb +5 -0
- data/db/migrate/20150610182638_add_id_to_spree_option_values_variants.rb +5 -0
- data/db/migrate/20150611200247_add_frontend_viewable_to_spree_orders.rb +5 -0
- data/db/migrate/20150612205731_remove_spree_configurations.rb +15 -0
- data/db/migrate/20150618191713_remove_credit_card_address_id.rb +7 -0
- data/db/migrate/20150626214817_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +10 -0
- data/db/seeds.rb +5 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +56 -0
- data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +36 -0
- data/lib/generators/spree/custom_user/templates/initializer.rb.tt +1 -0
- data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +140 -0
- data/lib/generators/spree/dummy/templates/initializers/custom_user.rb +1 -0
- data/lib/generators/spree/dummy/templates/initializers/devise.rb +3 -0
- data/lib/generators/spree/dummy/templates/rails/application.rb +10 -0
- data/lib/generators/spree/dummy/templates/rails/boot.rb +6 -0
- data/lib/generators/spree/dummy/templates/rails/database.yml +65 -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 +34 -0
- data/lib/generators/spree/install/install_generator.rb +191 -0
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +41 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +13 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +13 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +12 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +12 -0
- data/lib/solidus_core.rb +1 -0
- data/lib/spree/core.rb +95 -0
- data/lib/spree/core/controller_helpers/auth.rb +83 -0
- data/lib/spree/core/controller_helpers/common.rb +74 -0
- data/lib/spree/core/controller_helpers/order.rb +106 -0
- data/lib/spree/core/controller_helpers/respond_with.rb +65 -0
- data/lib/spree/core/controller_helpers/search.rb +14 -0
- data/lib/spree/core/controller_helpers/store.rb +19 -0
- data/lib/spree/core/controller_helpers/strong_parameters.rb +42 -0
- data/lib/spree/core/delegate_belongs_to.rb +95 -0
- data/lib/spree/core/engine.rb +114 -0
- data/lib/spree/core/environment.rb +15 -0
- data/lib/spree/core/environment/calculators.rb +12 -0
- data/lib/spree/core/environment_extension.rb +25 -0
- data/lib/spree/core/importer.rb +9 -0
- data/lib/spree/core/importer/order.rb +202 -0
- data/lib/spree/core/importer/product.rb +62 -0
- data/lib/spree/core/permalinks.rb +71 -0
- data/lib/spree/core/product_duplicator.rb +74 -0
- data/lib/spree/core/product_filters.rb +194 -0
- data/lib/spree/core/routes.rb +46 -0
- data/lib/spree/core/search/base.rb +97 -0
- data/lib/spree/core/search/variant.rb +46 -0
- data/lib/spree/core/unreturned_item_charger.rb +102 -0
- data/lib/spree/core/validators/email.rb +7 -0
- data/lib/spree/core/version.rb +5 -0
- data/lib/spree/i18n.rb +37 -0
- data/lib/spree/i18n/base.rb +17 -0
- data/lib/spree/i18n/initializer.rb +1 -0
- data/lib/spree/localized_number.rb +24 -0
- data/lib/spree/migrations.rb +76 -0
- data/lib/spree/money.rb +72 -0
- data/lib/spree/permitted_attributes.rb +114 -0
- data/lib/spree/promo/environment.rb +9 -0
- data/lib/spree/responder.rb +45 -0
- data/lib/spree/testing_support/ability_helpers.rb +105 -0
- data/lib/spree/testing_support/authorization_helpers.rb +63 -0
- data/lib/spree/testing_support/bar_ability.rb +14 -0
- data/lib/spree/testing_support/caching.rb +47 -0
- data/lib/spree/testing_support/capybara_ext.rb +163 -0
- data/lib/spree/testing_support/common_rake.rb +40 -0
- data/lib/spree/testing_support/controller_requests.rb +83 -0
- data/lib/spree/testing_support/extension_rake.rb +10 -0
- data/lib/spree/testing_support/factories.rb +20 -0
- data/lib/spree/testing_support/factories/address_factory.rb +22 -0
- data/lib/spree/testing_support/factories/adjustment_factory.rb +26 -0
- data/lib/spree/testing_support/factories/calculator_factory.rb +24 -0
- data/lib/spree/testing_support/factories/carton_factory.rb +21 -0
- data/lib/spree/testing_support/factories/country_factory.rb +9 -0
- data/lib/spree/testing_support/factories/credit_card_factory.rb +10 -0
- data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +10 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +14 -0
- data/lib/spree/testing_support/factories/options_factory.rb +13 -0
- data/lib/spree/testing_support/factories/order_factory.rb +100 -0
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +6 -0
- data/lib/spree/testing_support/factories/payment_factory.rb +28 -0
- data/lib/spree/testing_support/factories/payment_method_factory.rb +27 -0
- data/lib/spree/testing_support/factories/price_factory.rb +7 -0
- data/lib/spree/testing_support/factories/product_factory.rb +36 -0
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +6 -0
- data/lib/spree/testing_support/factories/product_property_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +62 -0
- data/lib/spree/testing_support/factories/property_factory.rb +6 -0
- data/lib/spree/testing_support/factories/prototype_factory.rb +6 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +14 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +18 -0
- data/lib/spree/testing_support/factories/return_item_factory.rb +16 -0
- data/lib/spree/testing_support/factories/role_factory.rb +9 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +28 -0
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +25 -0
- data/lib/spree/testing_support/factories/state_factory.rb +13 -0
- data/lib/spree/testing_support/factories/stock_factory.rb +31 -0
- data/lib/spree/testing_support/factories/stock_item_factory.rb +9 -0
- data/lib/spree/testing_support/factories/stock_location_factory.rb +28 -0
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +11 -0
- data/lib/spree/testing_support/factories/stock_transfer_factory.rb +28 -0
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +6 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +15 -0
- data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -0
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +13 -0
- data/lib/spree/testing_support/factories/store_factory.rb +8 -0
- data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -0
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -0
- data/lib/spree/testing_support/factories/taxon_factory.rb +7 -0
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
- data/lib/spree/testing_support/factories/tracker_factory.rb +7 -0
- data/lib/spree/testing_support/factories/user_factory.rb +22 -0
- data/lib/spree/testing_support/factories/variant_factory.rb +39 -0
- data/lib/spree/testing_support/factories/zone_factory.rb +17 -0
- data/lib/spree/testing_support/flash.rb +27 -0
- data/lib/spree/testing_support/i18n.rb +98 -0
- data/lib/spree/testing_support/mail.rb +20 -0
- data/lib/spree/testing_support/order_walkthrough.rb +78 -0
- data/lib/spree/testing_support/preferences.rb +29 -0
- data/lib/spree/testing_support/rspec-activemodel-mocks_patch.rb +8 -0
- data/lib/spree/testing_support/url_helpers.rb +9 -0
- data/lib/spree_core.rb +1 -0
- data/lib/tasks/core.rake +101 -0
- data/lib/tasks/email.rake +7 -0
- data/lib/tasks/exchanges.rake +48 -0
- data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +180 -0
- data/lib/tasks/order_capturing.rake +23 -0
- data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
- data/vendor/assets/javascripts/jquery.payment.js +497 -0
- data/vendor/assets/javascripts/jsuri.js +2 -0
- data/vendor/assets/stylesheets/normalize.css +375 -0
- data/vendor/assets/stylesheets/skeleton.css +242 -0
- metadata +993 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class Address < Spree::Base
|
|
3
|
+
require 'twitter_cldr'
|
|
4
|
+
|
|
5
|
+
belongs_to :country, class_name: "Spree::Country"
|
|
6
|
+
belongs_to :state, class_name: "Spree::State"
|
|
7
|
+
|
|
8
|
+
has_many :shipments, inverse_of: :address
|
|
9
|
+
has_many :cartons, inverse_of: :address
|
|
10
|
+
|
|
11
|
+
validates :firstname, :lastname, :address1, :city, :country, presence: true
|
|
12
|
+
validates :zipcode, presence: true, if: :require_zipcode?
|
|
13
|
+
validates :phone, presence: true, if: :require_phone?
|
|
14
|
+
|
|
15
|
+
validate :state_validate, :postal_code_validate
|
|
16
|
+
|
|
17
|
+
alias_attribute :first_name, :firstname
|
|
18
|
+
alias_attribute :last_name, :lastname
|
|
19
|
+
|
|
20
|
+
def self.build_default
|
|
21
|
+
country = Spree::Country.find(Spree::Config[:default_country_id]) rescue Spree::Country.first
|
|
22
|
+
new(country: country)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.default(user = nil, kind = "bill")
|
|
26
|
+
if user && user_address = user.send(:"#{kind}_address")
|
|
27
|
+
user_address.dup
|
|
28
|
+
else
|
|
29
|
+
build_default
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @return [String] the full name on this address
|
|
34
|
+
def full_name
|
|
35
|
+
"#{firstname} #{lastname}".strip
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# @return [String] a string representation of this state
|
|
39
|
+
def state_text
|
|
40
|
+
state.try(:abbr) || state.try(:name) || state_name
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# @param other [Spree::Address, nil] the address we are comparing with
|
|
44
|
+
# @return [Boolean] true if this fields on this address match the fields on
|
|
45
|
+
# the other address
|
|
46
|
+
def same_as?(other)
|
|
47
|
+
return false if other.nil?
|
|
48
|
+
attributes.except('id', 'updated_at', 'created_at') == other.attributes.except('id', 'updated_at', 'created_at')
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
alias same_as same_as?
|
|
52
|
+
|
|
53
|
+
# @return [String] the full name on the address followed by the first line
|
|
54
|
+
# of the address
|
|
55
|
+
def to_s
|
|
56
|
+
"#{full_name}: #{address1}"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [Spree::Address] a new address that is the same_as? this address
|
|
60
|
+
def clone
|
|
61
|
+
ActiveSupport::Deprecation.warn "Spree::Address.clone is deprecated and may be removed from future releases, Use Spree::Address.dup instead", caller
|
|
62
|
+
self.dup
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @note This compares the addresses based on only the fields that make up
|
|
66
|
+
# the logical "address" and excludes their order IDs. Use #same_as? to
|
|
67
|
+
# include the order IDs in the comparison
|
|
68
|
+
# @return [Boolean] true if the two addresses have the same address fields
|
|
69
|
+
def ==(other_address)
|
|
70
|
+
self_attrs = self.attributes
|
|
71
|
+
other_attrs = other_address.respond_to?(:attributes) ? other_address.attributes : {}
|
|
72
|
+
|
|
73
|
+
[self_attrs, other_attrs].each { |attrs| attrs.except!('id', 'created_at', 'updated_at', 'order_id') }
|
|
74
|
+
|
|
75
|
+
self_attrs == other_attrs
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @return [Boolean] true if the order is missing all of the address fields
|
|
79
|
+
# are nil
|
|
80
|
+
def empty?
|
|
81
|
+
attributes.except('id', 'created_at', 'updated_at', 'order_id', 'country_id').all? { |_, v| v.nil? }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# @return [Hash] an ActiveMerchant compatible address hash
|
|
85
|
+
def active_merchant_hash
|
|
86
|
+
{
|
|
87
|
+
name: full_name,
|
|
88
|
+
address1: address1,
|
|
89
|
+
address2: address2,
|
|
90
|
+
city: city,
|
|
91
|
+
state: state_text,
|
|
92
|
+
zip: zipcode,
|
|
93
|
+
country: country.try(:iso),
|
|
94
|
+
phone: phone
|
|
95
|
+
}
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# @todo Remove this from the public API if possible.
|
|
99
|
+
# @return [true] whether or not the address requires a phone number to be
|
|
100
|
+
# valid
|
|
101
|
+
def require_phone?
|
|
102
|
+
true
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# @todo Remove this from the public API if possible.
|
|
106
|
+
# @return [true] whether or not the address requires a zipcode to be valid
|
|
107
|
+
def require_zipcode?
|
|
108
|
+
true
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
private
|
|
112
|
+
def state_validate
|
|
113
|
+
# Skip state validation without country (also required)
|
|
114
|
+
# or when disabled by preference
|
|
115
|
+
return if country.blank? || !Spree::Config[:address_requires_state]
|
|
116
|
+
return unless country.states_required
|
|
117
|
+
|
|
118
|
+
# ensure associated state belongs to country
|
|
119
|
+
if state.present?
|
|
120
|
+
if state.country == country
|
|
121
|
+
self.state_name = nil #not required as we have a valid state and country combo
|
|
122
|
+
else
|
|
123
|
+
if state_name.present?
|
|
124
|
+
self.state = nil
|
|
125
|
+
else
|
|
126
|
+
errors.add(:state, :invalid)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# ensure state_name belongs to country without states, or that it matches a predefined state name/abbr
|
|
132
|
+
if state_name.present?
|
|
133
|
+
if country.states.present?
|
|
134
|
+
states = country.states.find_all_by_name_or_abbr(state_name)
|
|
135
|
+
|
|
136
|
+
if states.size == 1
|
|
137
|
+
self.state = states.first
|
|
138
|
+
self.state_name = nil
|
|
139
|
+
else
|
|
140
|
+
errors.add(:state, :invalid)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# ensure at least one state field is populated
|
|
146
|
+
errors.add :state, :blank if state.blank? && state_name.blank?
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def postal_code_validate
|
|
150
|
+
return if country.blank? || country.iso.blank? || !require_zipcode?
|
|
151
|
+
return if !TwitterCldr::Shared::PostalCodes.territories.include?(country.iso.downcase.to_sym)
|
|
152
|
+
|
|
153
|
+
postal_code = TwitterCldr::Shared::PostalCodes.for_territory(country.iso)
|
|
154
|
+
errors.add(:zipcode, :invalid) if !postal_code.valid?(zipcode.to_s)
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
# Adjustments represent a change to the +item_total+ of an Order. Each
|
|
3
|
+
# adjustment has an +amount+ that can be either positive or negative.
|
|
4
|
+
#
|
|
5
|
+
# Adjustments can be "opened" or "closed". Once an adjustment is closed, it
|
|
6
|
+
# will not be automatically updated.
|
|
7
|
+
#
|
|
8
|
+
# == Boolean attributes
|
|
9
|
+
#
|
|
10
|
+
# 1. *mandatory*
|
|
11
|
+
#
|
|
12
|
+
# If this flag is set to true then it means the the charge is required and
|
|
13
|
+
# will not be removed from the order, even if the amount is zero. In other
|
|
14
|
+
# words a record will be created even if the amount is zero. This is
|
|
15
|
+
# useful for representing things such as shipping and tax charges where
|
|
16
|
+
# you may want to make it explicitly clear that no charge was made for
|
|
17
|
+
# such things.
|
|
18
|
+
#
|
|
19
|
+
# 2. *eligible?*
|
|
20
|
+
#
|
|
21
|
+
# This boolean attributes stores whether this adjustment is currently
|
|
22
|
+
# eligible for its order. Only eligible adjustments count towards the
|
|
23
|
+
# order's adjustment total. This allows an adjustment to be preserved if
|
|
24
|
+
# it becomes ineligible so it might be reinstated.
|
|
25
|
+
class Adjustment < Spree::Base
|
|
26
|
+
belongs_to :adjustable, polymorphic: true, touch: true
|
|
27
|
+
belongs_to :source, polymorphic: true
|
|
28
|
+
belongs_to :order, class_name: "Spree::Order"
|
|
29
|
+
belongs_to :promotion_code, :class_name => 'Spree::PromotionCode'
|
|
30
|
+
|
|
31
|
+
validates :adjustable, presence: true
|
|
32
|
+
validates :order, presence: true
|
|
33
|
+
validates :label, presence: true
|
|
34
|
+
validates :amount, numericality: true
|
|
35
|
+
validates :promotion_code, presence: true, if: :require_promotion_code?
|
|
36
|
+
|
|
37
|
+
state_machine :state, initial: :open do
|
|
38
|
+
event :close do
|
|
39
|
+
transition from: :open, to: :closed
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
event :open do
|
|
43
|
+
transition from: :closed, to: :open
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
after_create :update_adjustable_adjustment_total
|
|
48
|
+
after_destroy :update_adjustable_adjustment_total
|
|
49
|
+
|
|
50
|
+
scope :open, -> { where(state: 'open') }
|
|
51
|
+
scope :closed, -> { where(state: 'closed') }
|
|
52
|
+
scope :cancellation, -> { where(source_type: 'Spree::UnitCancel') }
|
|
53
|
+
scope :tax, -> { where(source_type: 'Spree::TaxRate') }
|
|
54
|
+
scope :non_tax, -> do
|
|
55
|
+
source_type = arel_table[:source_type]
|
|
56
|
+
where(source_type.not_eq('Spree::TaxRate').or source_type.eq(nil))
|
|
57
|
+
end
|
|
58
|
+
scope :price, -> { where(adjustable_type: 'Spree::LineItem') }
|
|
59
|
+
scope :shipping, -> { where(adjustable_type: 'Spree::Shipment') }
|
|
60
|
+
scope :optional, -> { where(mandatory: false) }
|
|
61
|
+
scope :eligible, -> { where(eligible: true) }
|
|
62
|
+
scope :charge, -> { where("#{quoted_table_name}.amount >= 0") }
|
|
63
|
+
scope :credit, -> { where("#{quoted_table_name}.amount < 0") }
|
|
64
|
+
scope :nonzero, -> { where("#{quoted_table_name}.amount != 0") }
|
|
65
|
+
scope :promotion, -> { where(source_type: 'Spree::PromotionAction') }
|
|
66
|
+
scope :non_promotion, -> { where.not(source_type: 'Spree::PromotionAction') }
|
|
67
|
+
scope :return_authorization, -> { where(source_type: "Spree::ReturnAuthorization") }
|
|
68
|
+
scope :is_included, -> { where(included: true) }
|
|
69
|
+
scope :additional, -> { where(included: false) }
|
|
70
|
+
|
|
71
|
+
extend DisplayMoney
|
|
72
|
+
money_methods :amount
|
|
73
|
+
|
|
74
|
+
def closed?
|
|
75
|
+
state == "closed"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def currency
|
|
79
|
+
adjustable ? adjustable.currency : Spree::Config[:currency]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# @return [Boolean] true when this is a promotion adjustment (Promotion adjustments have a {PromotionAction} source)
|
|
83
|
+
def promotion?
|
|
84
|
+
source_type == 'Spree::PromotionAction'
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# @return [Boolean] true when this is a tax adjustment (Tax adjustments have a {TaxRate} source)
|
|
88
|
+
def tax?
|
|
89
|
+
source_type == 'Spree::TaxRate'
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# @return [Boolean] true when this is a cancellation adjustment (Cancellation adjustments have a {UnitCancel} source)
|
|
93
|
+
def cancellation?
|
|
94
|
+
source_type == 'Spree::UnitCancel'
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Recalculate and persist the amount from this adjustment's source based on
|
|
98
|
+
# the adjustable ({Order}, {Shipment}, or {LineItem})
|
|
99
|
+
#
|
|
100
|
+
# If the adjustment has no source (such as when created manually from the
|
|
101
|
+
# admin) or is closed, this is a noop.
|
|
102
|
+
#
|
|
103
|
+
# @param target [Spree::LineItem,Spree::Shipment,Spree::Order] Deprecated: the target to calculate against
|
|
104
|
+
# @return [BigDecimal] New amount of this adjustment
|
|
105
|
+
def update!(target = nil)
|
|
106
|
+
if target
|
|
107
|
+
ActiveSupport::Deprecation.warn("Passing a target to Adjustment#update! is deprecated. The adjustment will use the correct target from it's adjustable association.", caller)
|
|
108
|
+
end
|
|
109
|
+
return amount if closed?
|
|
110
|
+
|
|
111
|
+
# If the adjustment has no source, do not attempt to re-calculate the amount.
|
|
112
|
+
# Chances are likely that this was a manually created adjustment in the admin backend.
|
|
113
|
+
if source.present?
|
|
114
|
+
self.amount = source.compute_amount(target || adjustable)
|
|
115
|
+
|
|
116
|
+
if promotion?
|
|
117
|
+
self.eligible = source.promotion.eligible?(adjustable, promotion_code: promotion_code)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Persist only if changed
|
|
121
|
+
# This is only not a save! to avoid the extra queries to load the order
|
|
122
|
+
# (for validations) and to touch the adjustment.
|
|
123
|
+
update_columns(eligible: eligible, amount: amount, updated_at: Time.now) if changed?
|
|
124
|
+
end
|
|
125
|
+
amount
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def currency
|
|
129
|
+
adjustable ? adjustable.currency : Spree::Config[:currency]
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
private
|
|
133
|
+
|
|
134
|
+
def update_adjustable_adjustment_total
|
|
135
|
+
# Cause adjustable's total to be recalculated
|
|
136
|
+
ItemAdjustments.new(adjustable).update
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def require_promotion_code?
|
|
140
|
+
promotion? && source.promotion.codes.any?
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# This is the primary location for defining spree preferences
|
|
2
|
+
#
|
|
3
|
+
# The expectation is that this is created once and stored in
|
|
4
|
+
# the spree environment
|
|
5
|
+
#
|
|
6
|
+
# setters:
|
|
7
|
+
# a.color = :blue
|
|
8
|
+
# a[:color] = :blue
|
|
9
|
+
# a.set :color = :blue
|
|
10
|
+
# a.preferred_color = :blue
|
|
11
|
+
#
|
|
12
|
+
# getters:
|
|
13
|
+
# a.color
|
|
14
|
+
# a[:color]
|
|
15
|
+
# a.get :color
|
|
16
|
+
# a.preferred_color
|
|
17
|
+
#
|
|
18
|
+
require "spree/core/search/base"
|
|
19
|
+
require "spree/core/search/variant"
|
|
20
|
+
|
|
21
|
+
module Spree
|
|
22
|
+
class AppConfiguration < Preferences::Configuration
|
|
23
|
+
# Alphabetized to more easily lookup particular preferences
|
|
24
|
+
|
|
25
|
+
# @!attribute [rw] address_requires_state
|
|
26
|
+
# @return [Boolean] should state/state_name be required
|
|
27
|
+
preference :address_requires_state, :boolean, default: true
|
|
28
|
+
|
|
29
|
+
# @!attribute [rw] admin_interface_logo
|
|
30
|
+
# @return [String] URL of logo used in admin (default: +'logo/solidus_logo.png'+)
|
|
31
|
+
preference :admin_interface_logo, :string, default: 'logo/solidus_logo.png'
|
|
32
|
+
|
|
33
|
+
# @!attribute [rw] admin_products_per_page
|
|
34
|
+
# @return [Integer] Number of products to display in admin (default: +10+)
|
|
35
|
+
preference :admin_products_per_page, :integer, default: 10
|
|
36
|
+
|
|
37
|
+
# @!attribute [rw] admin_variants_per_page
|
|
38
|
+
# @return [Integer] Number of variants to display in admin (default: +20+)
|
|
39
|
+
preference :admin_variants_per_page, :integer, default: 20
|
|
40
|
+
|
|
41
|
+
# @!attribute [rw] allow_checkout_on_gateway_error
|
|
42
|
+
# @return [Boolean] Allow checkout to complete after a failed payment (default: +false+)
|
|
43
|
+
preference :allow_checkout_on_gateway_error, :boolean, default: false
|
|
44
|
+
|
|
45
|
+
# @!attribute [rw] allow_guest_checkout
|
|
46
|
+
# @return [Boolean] When false, customers must create an account to complete an order (default: +true+)
|
|
47
|
+
preference :allow_guest_checkout, :boolean, default: true
|
|
48
|
+
|
|
49
|
+
# @!attribute [rw] allow_return_item_amount_editing
|
|
50
|
+
# @return [Boolean] Determines whether an admin is allowed to change a return item's pre-calculated amount (default: +false+)
|
|
51
|
+
preference :allow_return_item_amount_editing, :boolean, default: false
|
|
52
|
+
|
|
53
|
+
# @!attribute [rw] alternative_billing_phone
|
|
54
|
+
# @return [Boolean] Request an extra phone number for bill address (default: +false+)
|
|
55
|
+
preference :alternative_billing_phone, :boolean, default: false
|
|
56
|
+
|
|
57
|
+
# @!attribute [rw] alternative_shipping_phone
|
|
58
|
+
# @return [Boolean] Request an extra phone number for shipping address (default: +false+)
|
|
59
|
+
preference :alternative_shipping_phone, :boolean, default: false
|
|
60
|
+
|
|
61
|
+
# @!attribute [rw] always_put_site_name_in_title
|
|
62
|
+
# @return [Boolean] When true, site name is always appended to titles on the frontend (default: +true+)
|
|
63
|
+
preference :always_put_site_name_in_title, :boolean, default: true
|
|
64
|
+
|
|
65
|
+
# @!attribute [rw] auto_capture
|
|
66
|
+
# @note Setting this to true is not recommended. Performing an authorize
|
|
67
|
+
# and later capture has far superior error handing. VISA and MasterCard
|
|
68
|
+
# also require that shipments are sent within a certain time of the card
|
|
69
|
+
# being charged.
|
|
70
|
+
# @return [Boolean] Perform a sale/purchase transaction at checkout instead of a authorize and capture.
|
|
71
|
+
preference :auto_capture, :boolean, default: false
|
|
72
|
+
|
|
73
|
+
# @!attribute [rw] auto_capture_exchanges
|
|
74
|
+
# @return [Boolean] automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
|
|
75
|
+
preference :auto_capture_exchanges, :boolean, default: false
|
|
76
|
+
|
|
77
|
+
# @!attribute [rw] binary_inventory_cache
|
|
78
|
+
# Only invalidate product caches when they change from in stock to out of
|
|
79
|
+
# stock. By default, caches are invalidated on any change of inventory
|
|
80
|
+
# quantity. Setting this to true should make operations on inventory
|
|
81
|
+
# faster.
|
|
82
|
+
# (default: +false+)
|
|
83
|
+
# @return [Boolean]
|
|
84
|
+
preference :binary_inventory_cache, :boolean, default: false
|
|
85
|
+
|
|
86
|
+
# @!attribute [rw] checkout_zone
|
|
87
|
+
# @return [String] Name of a {Zone}, which limits available countries to those included in that zone. (default: +nil+)
|
|
88
|
+
preference :checkout_zone, :string, default: nil
|
|
89
|
+
|
|
90
|
+
# @!attribute [rw] company
|
|
91
|
+
# @return [Boolean] Request company field for billing and shipping addresses. (default: +false+)
|
|
92
|
+
preference :company, :boolean, default: false
|
|
93
|
+
|
|
94
|
+
# @!attribute [rw] create_rma_for_unreturned_exchange
|
|
95
|
+
# @return [Boolean] allows rma to be created for items after unreturned exchange charge has been made (default: +false+)
|
|
96
|
+
preference :create_rma_for_unreturned_exchange, :boolean, default: false
|
|
97
|
+
|
|
98
|
+
# @!attribute [rw] currency
|
|
99
|
+
# Currency to use by default when not defined on the site (default: +"USD"+)
|
|
100
|
+
# @return [String] ISO 4217 Three letter currency code
|
|
101
|
+
preference :currency, :string, default: "USD"
|
|
102
|
+
|
|
103
|
+
# @!attribute [rw] default_country_id
|
|
104
|
+
# @deprecated
|
|
105
|
+
# @return [Integer,nil] id of {Country} to be selected by default in dropdowns (default: nil)
|
|
106
|
+
preference :default_country_id, :integer
|
|
107
|
+
|
|
108
|
+
# @!attribute [rw] expedited_exchanges
|
|
109
|
+
# Kicks off an exchange shipment upon return authorization save.
|
|
110
|
+
# charge customer if they do not return items within timely manner.
|
|
111
|
+
# @note this requires payment profiles to be supported on your gateway of
|
|
112
|
+
# choice as well as a delayed job handler to be configured with
|
|
113
|
+
# activejob.
|
|
114
|
+
# @return [Boolean] Use expidited exchanges (default: +false+)
|
|
115
|
+
preference :expedited_exchanges, :boolean, default: false
|
|
116
|
+
|
|
117
|
+
# @!attribute [rw] expedited_exchanges_days_window
|
|
118
|
+
# @return [Integer] Number of days the customer has to return their item
|
|
119
|
+
# after the expedited exchange is shipped in order to avoid being
|
|
120
|
+
# charged (default: +14+)
|
|
121
|
+
preference :expedited_exchanges_days_window, :integer, default: 14
|
|
122
|
+
|
|
123
|
+
# @!attribute [rw] layout
|
|
124
|
+
# @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
|
|
125
|
+
preference :layout, :string, default: 'spree/layouts/spree_application'
|
|
126
|
+
|
|
127
|
+
# @!attribute [rw] logo
|
|
128
|
+
# @return [String] URL of logo used on frontend (default: +'logo/solidus_logo.png'+)
|
|
129
|
+
preference :logo, :string, default: 'logo/solidus_logo.png'
|
|
130
|
+
|
|
131
|
+
# @!attribute [rw] order_capturing_time_window
|
|
132
|
+
# @return [Integer] the number of days to look back for fully-shipped/cancelled orders in order to charge for them
|
|
133
|
+
preference :order_capturing_time_window, :integer, default: 14
|
|
134
|
+
|
|
135
|
+
# @!attribute [rw] max_level_in_taxons_menu
|
|
136
|
+
# @return [Integer] maximum nesting level in taxons menu (default: +1+)
|
|
137
|
+
preference :max_level_in_taxons_menu, :integer, default: 1
|
|
138
|
+
|
|
139
|
+
# @!attribute [rw] order_mutex_max_age
|
|
140
|
+
# @return [Integer] Max age of {OrderMutex} in seconds (default: 2 minutes)
|
|
141
|
+
preference :order_mutex_max_age, :integer, default: 2.minutes
|
|
142
|
+
|
|
143
|
+
# @!attribute [rw] orders_per_page
|
|
144
|
+
# @return [Integer] Orders to show per-page in the admin (default: +15+)
|
|
145
|
+
preference :orders_per_page, :integer, default: 15
|
|
146
|
+
|
|
147
|
+
# @!attribute [rw] properties_per_page
|
|
148
|
+
# @return [Integer] Properties to show per-page in the admin (default: +15+)
|
|
149
|
+
preference :properties_per_page, :integer, default: 15
|
|
150
|
+
|
|
151
|
+
# @!attribute [rw] products_per_page
|
|
152
|
+
# @return [Integer] Products to show per-page in the frontend (default: +12+)
|
|
153
|
+
preference :products_per_page, :integer, default: 12
|
|
154
|
+
|
|
155
|
+
# @!attribute [rw] promotions_per_page
|
|
156
|
+
# @return [Integer] Promotions to show per-page in the admin (default: +15+)
|
|
157
|
+
preference :promotions_per_page, :integer, default: 15
|
|
158
|
+
|
|
159
|
+
# @!attribute [rw] customer_returns_per_page
|
|
160
|
+
# @return [Integer] Customer returns to show per-page in the admin (default: +15+)
|
|
161
|
+
preference :customer_returns_per_page, :integer, default: 15
|
|
162
|
+
|
|
163
|
+
# @!attribute [rw] require_master_price
|
|
164
|
+
# @return [Boolean] Require a price on the master variant of a product (default: +true+)
|
|
165
|
+
preference :require_master_price, :boolean, default: true
|
|
166
|
+
|
|
167
|
+
# @!attribute [rw] require_payment_to_ship
|
|
168
|
+
# @return [Boolean] Allows shipments to be ready to ship regardless of the order being paid if false (default: +true+)
|
|
169
|
+
preference :require_payment_to_ship, :boolean, default: true # Allows shipments to be ready to ship regardless of the order being paid if false
|
|
170
|
+
|
|
171
|
+
# @!attribute [rw] return_eligibility_number_of_days
|
|
172
|
+
# @return [Integer] default: 365
|
|
173
|
+
preference :return_eligibility_number_of_days, :integer, default: 365
|
|
174
|
+
|
|
175
|
+
# @!attribute [rw] shipping_instructions
|
|
176
|
+
# @return [Boolean] Request instructions/info for shipping (default: +false+)
|
|
177
|
+
preference :shipping_instructions, :boolean, default: false
|
|
178
|
+
|
|
179
|
+
# @!attribute [rw] show_only_complete_orders_by_default
|
|
180
|
+
# @return [Boolean] Only show completed orders by default in the admin (default: +true+)
|
|
181
|
+
preference :show_only_complete_orders_by_default, :boolean, default: true
|
|
182
|
+
|
|
183
|
+
# @!attribute [rw] show_variant_full_price
|
|
184
|
+
# @return [Boolean] Displays variant full price or difference with product price. (default: +false+)
|
|
185
|
+
preference :show_variant_full_price, :boolean, default: false
|
|
186
|
+
|
|
187
|
+
# @!attribute [rw] show_products_without_price
|
|
188
|
+
# @return [Boolean] Whether products without a price are visible in the frontend (default: +false+)
|
|
189
|
+
preference :show_products_without_price, :boolean, default: false
|
|
190
|
+
|
|
191
|
+
# @!attribute [rw] show_raw_product_description
|
|
192
|
+
# @return [Boolean] Don't escape HTML of product descriptions. (default: +false+)
|
|
193
|
+
preference :show_raw_product_description, :boolean, :default => false
|
|
194
|
+
|
|
195
|
+
# @!attribute [rw] tax_using_ship_address
|
|
196
|
+
# @return [Boolean] Use the shipping address rather than the billing address to determine tax (default: +true+)
|
|
197
|
+
preference :tax_using_ship_address, :boolean, default: true
|
|
198
|
+
|
|
199
|
+
# @!attribute [rw] track_inventory_levels
|
|
200
|
+
# Determines whether to track on_hand values for variants / products. If
|
|
201
|
+
# you do not track inventory, or have effectively unlimited inventory for
|
|
202
|
+
# all products you can turn this on.
|
|
203
|
+
# @return [] Track on_hand values for variants / products. (default: true)
|
|
204
|
+
preference :track_inventory_levels, :boolean, default: true
|
|
205
|
+
|
|
206
|
+
# Default mail headers settings
|
|
207
|
+
|
|
208
|
+
# @!attribute [rw] send_core_emails
|
|
209
|
+
# @return [Boolean] Whether to send transactional emails (default: true)
|
|
210
|
+
preference :send_core_emails, :boolean, default: true
|
|
211
|
+
|
|
212
|
+
# @!attribute [rw] mails_from
|
|
213
|
+
# @return [String] Email address used as +From:+ field in transactional emails.
|
|
214
|
+
preference :mails_from, :string, :default => 'spree@example.com'
|
|
215
|
+
|
|
216
|
+
# Store credits configurations
|
|
217
|
+
|
|
218
|
+
# @!attribute [rw] credit_to_new_allocation
|
|
219
|
+
# @return [Boolean] Creates a new allocation anytime {StoreCredit#credit} is called
|
|
220
|
+
preference :credit_to_new_allocation, :boolean, default: false
|
|
221
|
+
|
|
222
|
+
# searcher_class allows spree extension writers to provide their own Search class
|
|
223
|
+
def searcher_class
|
|
224
|
+
@searcher_class ||= Spree::Core::Search::Base
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def searcher_class=(sclass)
|
|
228
|
+
@searcher_class = sclass
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
# all the following can be deprecated when store prefs are no longer supported
|
|
232
|
+
# @private
|
|
233
|
+
DEPRECATED_STORE_PREFERENCES = {
|
|
234
|
+
site_name: :name,
|
|
235
|
+
site_url: :url,
|
|
236
|
+
default_meta_description: :meta_description,
|
|
237
|
+
default_meta_keywords: :meta_keywords,
|
|
238
|
+
default_seo_title: :seo_title,
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
DEPRECATED_STORE_PREFERENCES.each do |old_preference_name, store_method|
|
|
242
|
+
# Avoid warning about implementation details
|
|
243
|
+
bc = ActiveSupport::BacktraceCleaner.new
|
|
244
|
+
bc.add_silencer { |line| line =~ %r{spree/preferences} }
|
|
245
|
+
|
|
246
|
+
# support all the old preference methods with a warning
|
|
247
|
+
define_method "preferred_#{old_preference_name}" do
|
|
248
|
+
ActiveSupport::Deprecation.warn("#{old_preference_name} is no longer supported on Spree::Config, please access it through #{store_method} on Spree::Store", bc.clean(caller))
|
|
249
|
+
Store.default.send(store_method)
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
end
|