solidus_core 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree.js.erb +31 -2
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/mailers/spree/base_mailer.rb +4 -0
- data/app/mailers/spree/order_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
- data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
- data/app/models/concerns/spree/default_price.rb +1 -1
- data/app/models/concerns/spree/soft_deletable.rb +18 -0
- data/app/models/concerns/spree/user_address_book.rb +86 -32
- data/app/models/concerns/spree/user_methods.rb +3 -2
- data/app/models/spree/ability.rb +34 -10
- data/app/models/spree/address/name.rb +49 -0
- data/app/models/spree/address/state_validator.rb +71 -0
- data/app/models/spree/address.rb +94 -17
- data/app/models/spree/adjustment.rb +1 -1
- data/app/models/spree/base.rb +1 -0
- data/app/models/spree/calculator/default_tax.rb +1 -1
- data/app/models/spree/calculator/percent_per_item.rb +4 -4
- data/app/models/spree/calculator/price_sack.rb +1 -1
- data/app/models/spree/credit_card.rb +2 -2
- data/app/models/spree/customer_return.rb +4 -2
- data/app/models/spree/exchange.rb +1 -1
- data/app/models/spree/image/active_storage_attachment.rb +21 -0
- data/app/models/spree/inventory_unit.rb +1 -1
- data/app/models/spree/line_item.rb +13 -4
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/checkout.rb +1 -0
- data/app/models/spree/order.rb +91 -20
- data/app/models/spree/order_inventory.rb +16 -4
- data/app/models/spree/order_merger.rb +6 -4
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/order_updater.rb +11 -10
- data/app/models/spree/payment/cancellation.rb +3 -3
- data/app/models/spree/payment/processing.rb +54 -30
- data/app/models/spree/payment.rb +3 -3
- data/app/models/spree/payment_method.rb +8 -9
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +2 -8
- data/app/models/spree/product/scopes.rb +10 -5
- data/app/models/spree/product.rb +19 -14
- data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
- data/app/models/spree/promotion.rb +18 -7
- data/app/models/spree/promotion_action.rb +1 -7
- data/app/models/spree/promotion_code.rb +6 -1
- data/app/models/spree/promotion_code_batch.rb +1 -1
- data/app/models/spree/promotion_handler/coupon.rb +2 -2
- data/app/models/spree/promotion_rule.rb +1 -1
- data/app/models/spree/promotion_rule_role.rb +1 -1
- data/app/models/spree/refund.rb +54 -12
- data/app/models/spree/reimbursement.rb +27 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
- data/app/models/spree/return_authorization.rb +1 -1
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
- data/app/models/spree/return_item.rb +21 -10
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/shipment.rb +2 -2
- data/app/models/spree/shipping_calculator.rb +1 -1
- data/app/models/spree/shipping_manifest.rb +2 -2
- data/app/models/spree/shipping_method.rb +2 -9
- data/app/models/spree/shipping_rate.rb +1 -1
- data/app/models/spree/shipping_rate_tax.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
- data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
- data/app/models/spree/stock/package.rb +1 -1
- data/app/models/spree/stock/simple_coordinator.rb +1 -3
- data/app/models/spree/stock_item.rb +2 -8
- data/app/models/spree/stock_movement.rb +2 -0
- data/app/models/spree/store.rb +1 -1
- data/app/models/spree/store_credit.rb +1 -7
- data/app/models/spree/store_credit_category.rb +30 -3
- data/app/models/spree/store_credit_event.rb +1 -7
- data/app/models/spree/store_credit_reason.rb +0 -4
- data/app/models/spree/tax/tax_helpers.rb +1 -1
- data/app/models/spree/tax_category.rb +2 -8
- data/app/models/spree/tax_rate.rb +7 -7
- data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
- data/app/models/spree/taxon.rb +1 -1
- data/app/models/spree/user_address.rb +8 -2
- data/app/models/spree/variant.rb +7 -13
- data/app/models/spree/variant_property_rule.rb +5 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
- data/app/models/spree/zone.rb +1 -1
- data/config/locales/en.yml +44 -5
- data/db/default/spree/countries.rb +1 -1
- data/db/default/spree/states.rb +12 -4
- data/db/default/spree/store_credit.rb +2 -2
- data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
- data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
- data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
- data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
- data/lib/generators/solidus/install/install_generator.rb +253 -0
- data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
- data/lib/generators/spree/install/install_generator.rb +7 -189
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
- data/lib/spree/app_configuration.rb +117 -51
- data/lib/spree/awesome_nested_set_override.rb +44 -0
- data/lib/spree/core/controller_helpers/auth.rb +17 -4
- data/lib/spree/core/controller_helpers/current_host.rb +17 -0
- data/lib/spree/core/controller_helpers/order.rb +8 -7
- data/lib/spree/core/controller_helpers/strong_parameters.rb +21 -7
- data/lib/spree/core/engine.rb +39 -2
- data/lib/spree/core/importer/order.rb +26 -11
- data/lib/spree/core/permalinks.rb +1 -3
- data/lib/spree/core/product_filters.rb +6 -5
- data/lib/spree/core/state_machines/order.rb +249 -0
- data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
- data/lib/spree/core/state_machines.rb +20 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +5 -11
- data/lib/spree/encryptor.rb +25 -0
- data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
- data/lib/spree/event/configuration.rb +11 -6
- data/lib/spree/event/subscriber.rb +38 -18
- data/lib/spree/event/subscriber_registry.rb +92 -0
- data/lib/spree/event.rb +40 -7
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +2 -1
- data/lib/spree/paranoia_deprecations.rb +32 -12
- data/lib/spree/permission_sets/configuration_display.rb +14 -14
- data/lib/spree/permission_sets/default_customer.rb +16 -16
- data/lib/spree/permission_sets/order_display.rb +11 -11
- data/lib/spree/permission_sets/order_management.rb +1 -1
- data/lib/spree/permission_sets/product_display.rb +9 -9
- data/lib/spree/permission_sets/promotion_display.rb +5 -5
- data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
- data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
- data/lib/spree/permission_sets/stock_display.rb +2 -2
- data/lib/spree/permission_sets/stock_management.rb +1 -1
- data/lib/spree/permission_sets/user_display.rb +3 -3
- data/lib/spree/permission_sets/user_management.rb +4 -3
- data/lib/spree/permitted_attributes.rb +79 -9
- data/lib/spree/preferences/preferable.rb +4 -3
- data/lib/spree/preferences/preferable_class_methods.rb +22 -3
- data/lib/spree/testing_support/ability_helpers.rb +9 -9
- data/lib/spree/testing_support/authorization_helpers.rb +1 -0
- data/lib/spree/testing_support/blacklist_urls.rb +23 -0
- data/lib/spree/testing_support/capybara_ext.rb +3 -0
- data/lib/spree/testing_support/common_rake.rb +3 -3
- data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
- data/lib/spree/testing_support/dummy_app.rb +44 -23
- data/lib/spree/testing_support/factories/address_factory.rb +1 -2
- data/lib/spree/testing_support/factories/image_factory.rb +1 -1
- data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
- data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
- data/lib/spree/testing_support/factories/user_factory.rb +4 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/job_helpers.rb +24 -0
- data/lib/spree/testing_support/precompiled_assets.rb +15 -0
- data/lib/spree/testing_support/preferences.rb +3 -1
- data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
- data/lib/spree/testing_support/translations.rb +25 -0
- data/solidus_core.gemspec +8 -5
- metadata +81 -359
- data/script/rails +0 -10
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/base_helper_spec.rb +0 -168
- data/spec/helpers/products_helper_spec.rb +0 -202
- data/spec/helpers/taxons_helper_spec.rb +0 -43
- data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
- data/spec/lib/calculated_adjustments_spec.rb +0 -133
- data/spec/lib/i18n_spec.rb +0 -97
- data/spec/lib/search/base_spec.rb +0 -91
- data/spec/lib/search/variant_spec.rb +0 -115
- data/spec/lib/spree/app_configuration_spec.rb +0 -140
- data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
- data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
- data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -41
- data/spec/lib/spree/core/current_store_spec.rb +0 -33
- data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
- data/spec/lib/spree/core/importer/order_spec.rb +0 -484
- data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
- data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
- data/spec/lib/spree/core/validators/email_spec.rb +0 -53
- data/spec/lib/spree/core/version_spec.rb +0 -19
- data/spec/lib/spree/event/subscriber_spec.rb +0 -85
- data/spec/lib/spree/event_spec.rb +0 -130
- data/spec/lib/spree/localized_number_spec.rb +0 -45
- data/spec/lib/spree/migrations_spec.rb +0 -32
- data/spec/lib/spree/money_spec.rb +0 -298
- data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
- data/spec/lib/spree/promo/environment_spec.rb +0 -53
- data/spec/lib/tasks/dummy_task.rake +0 -12
- data/spec/lib/tasks/dummy_task_spec.rb +0 -30
- data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
- data/spec/mailers/carton_mailer_spec.rb +0 -44
- data/spec/mailers/order_mailer_spec.rb +0 -117
- data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
- data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
- data/spec/mailers/test_mailer_spec.rb +0 -13
- data/spec/models/spree/ability_spec.rb +0 -279
- data/spec/models/spree/address_spec.rb +0 -399
- data/spec/models/spree/adjustment_reason_spec.rb +0 -11
- data/spec/models/spree/adjustment_spec.rb +0 -339
- data/spec/models/spree/asset_spec.rb +0 -25
- data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
- data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
- data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
- data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
- data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
- data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
- data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
- data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
- data/spec/models/spree/calculator_spec.rb +0 -43
- data/spec/models/spree/carton_spec.rb +0 -145
- data/spec/models/spree/classification_spec.rb +0 -126
- data/spec/models/spree/concerns/display_money_spec.rb +0 -44
- data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
- data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
- data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
- data/spec/models/spree/country_spec.rb +0 -154
- data/spec/models/spree/credit_card_spec.rb +0 -373
- data/spec/models/spree/customer_return_spec.rb +0 -294
- data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
- data/spec/models/spree/exchange_spec.rb +0 -76
- data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
- data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
- data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
- data/spec/models/spree/gateway/bogus_simple.rb +0 -14
- data/spec/models/spree/gateway/bogus_spec.rb +0 -14
- data/spec/models/spree/gateway_spec.rb +0 -14
- data/spec/models/spree/image_spec.rb +0 -25
- data/spec/models/spree/inventory_unit_spec.rb +0 -309
- data/spec/models/spree/line_item_spec.rb +0 -240
- data/spec/models/spree/option_type_spec.rb +0 -16
- data/spec/models/spree/option_value_spec.rb +0 -52
- data/spec/models/spree/order/address_spec.rb +0 -52
- data/spec/models/spree/order/adjustments_spec.rb +0 -29
- data/spec/models/spree/order/callbacks_spec.rb +0 -44
- data/spec/models/spree/order/checkout_spec.rb +0 -740
- data/spec/models/spree/order/finalizing_spec.rb +0 -92
- data/spec/models/spree/order/number_generator_spec.rb +0 -47
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
- data/spec/models/spree/order/payment_spec.rb +0 -280
- data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
- data/spec/models/spree/order/state_machine_spec.rb +0 -122
- data/spec/models/spree/order/totals_spec.rb +0 -26
- data/spec/models/spree/order/validations_spec.rb +0 -17
- data/spec/models/spree/order_cancellations_spec.rb +0 -233
- data/spec/models/spree/order_capturing_spec.rb +0 -16
- data/spec/models/spree/order_contents_spec.rb +0 -362
- data/spec/models/spree/order_inventory_spec.rb +0 -285
- data/spec/models/spree/order_merger_spec.rb +0 -162
- data/spec/models/spree/order_mutex_spec.rb +0 -89
- data/spec/models/spree/order_promotion_spec.rb +0 -33
- data/spec/models/spree/order_shipping_spec.rb +0 -247
- data/spec/models/spree/order_spec.rb +0 -1687
- data/spec/models/spree/order_taxation_spec.rb +0 -128
- data/spec/models/spree/order_update_attributes_spec.rb +0 -49
- data/spec/models/spree/order_updater_spec.rb +0 -556
- data/spec/models/spree/payment/cancellation_spec.rb +0 -84
- data/spec/models/spree/payment_create_spec.rb +0 -195
- data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
- data/spec/models/spree/payment_method/check_spec.rb +0 -80
- data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
- data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
- data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
- data/spec/models/spree/payment_method_spec.rb +0 -408
- data/spec/models/spree/payment_spec.rb +0 -1270
- data/spec/models/spree/permission_sets/base_spec.rb +0 -14
- data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
- data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
- data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
- data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
- data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
- data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
- data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
- data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
- data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
- data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
- data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
- data/spec/models/spree/preference_spec.rb +0 -79
- data/spec/models/spree/preferences/configuration_spec.rb +0 -27
- data/spec/models/spree/preferences/preferable_spec.rb +0 -334
- data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
- data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
- data/spec/models/spree/preferences/store_spec.rb +0 -40
- data/spec/models/spree/price_spec.rb +0 -150
- data/spec/models/spree/product/scopes_spec.rb +0 -164
- data/spec/models/spree/product_duplicator_spec.rb +0 -92
- data/spec/models/spree/product_filter_spec.rb +0 -28
- data/spec/models/spree/product_property_spec.rb +0 -20
- data/spec/models/spree/product_spec.rb +0 -584
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
- data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
- data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
- data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
- data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
- data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
- data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
- data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -226
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
- data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
- data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
- data/spec/models/spree/promotion_action_spec.rb +0 -44
- data/spec/models/spree/promotion_category_spec.rb +0 -19
- data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
- data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
- data/spec/models/spree/promotion_code_spec.rb +0 -206
- data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
- data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
- data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
- data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
- data/spec/models/spree/promotion_rule_spec.rb +0 -34
- data/spec/models/spree/promotion_spec.rb +0 -945
- data/spec/models/spree/refund_spec.rb +0 -200
- data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
- data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
- data/spec/models/spree/reimbursement_spec.rb +0 -278
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
- data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
- data/spec/models/spree/return_authorization_spec.rb +0 -226
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
- data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
- data/spec/models/spree/return_item_spec.rb +0 -785
- data/spec/models/spree/returns_calculator_spec.rb +0 -16
- data/spec/models/spree/shipment_spec.rb +0 -914
- data/spec/models/spree/shipping_calculator_spec.rb +0 -45
- data/spec/models/spree/shipping_manifest_spec.rb +0 -110
- data/spec/models/spree/shipping_method_spec.rb +0 -292
- data/spec/models/spree/shipping_rate_spec.rb +0 -154
- data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
- data/spec/models/spree/state_spec.rb +0 -43
- data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
- data/spec/models/spree/stock/availability_spec.rb +0 -143
- data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
- data/spec/models/spree/stock/content_item_spec.rb +0 -70
- data/spec/models/spree/stock/differentiator_spec.rb +0 -41
- data/spec/models/spree/stock/estimator_spec.rb +0 -241
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
- data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
- data/spec/models/spree/stock/package_spec.rb +0 -182
- data/spec/models/spree/stock/quantifier_spec.rb +0 -113
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
- data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
- data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
- data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
- data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
- data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
- data/spec/models/spree/stock_item_spec.rb +0 -348
- data/spec/models/spree/stock_location_spec.rb +0 -288
- data/spec/models/spree/stock_movement_spec.rb +0 -58
- data/spec/models/spree/stock_quantities_spec.rb +0 -249
- data/spec/models/spree/store_credit_category_spec.rb +0 -19
- data/spec/models/spree/store_credit_event_spec.rb +0 -328
- data/spec/models/spree/store_credit_spec.rb +0 -900
- data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
- data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
- data/spec/models/spree/store_spec.rb +0 -156
- data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
- data/spec/models/spree/tax/tax_location_spec.rb +0 -79
- data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
- data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
- data/spec/models/spree/tax_category_spec.rb +0 -50
- data/spec/models/spree/tax_rate_spec.rb +0 -317
- data/spec/models/spree/taxon_spec.rb +0 -197
- data/spec/models/spree/taxonomy_spec.rb +0 -15
- data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
- data/spec/models/spree/unit_cancel_spec.rb +0 -126
- data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
- data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
- data/spec/models/spree/user_spec.rb +0 -247
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
- data/spec/models/spree/variant/price_selector_spec.rb +0 -90
- data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
- data/spec/models/spree/variant/scopes_spec.rb +0 -94
- data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
- data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
- data/spec/models/spree/variant_property_rule_spec.rb +0 -85
- data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
- data/spec/models/spree/variant_spec.rb +0 -862
- data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
- data/spec/models/spree/wallet_spec.rb +0 -155
- data/spec/models/spree/zone_spec.rb +0 -248
- data/spec/rails_helper.rb +0 -46
- data/spec/shared_examples/calculator_shared_examples.rb +0 -10
- data/spec/spec_helper.rb +0 -36
- data/spec/support/big_decimal.rb +0 -7
- data/spec/support/concerns/default_price.rb +0 -44
- data/spec/support/concerns/payment_source.rb +0 -66
- data/spec/support/concerns/working_factories.rb +0 -15
- data/spec/support/dummy_ability.rb +0 -7
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
|
@@ -34,11 +34,9 @@ module Spree
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def unstock_inventory_units
|
|
37
|
-
inventory_units.group_by(&:
|
|
38
|
-
|
|
39
|
-
shipment
|
|
40
|
-
line_item = units.first.line_item
|
|
41
|
-
shipment.stock_location.unstock line_item.variant, units.count, shipment
|
|
37
|
+
inventory_units.group_by(&:shipment).each do |shipment, units_by_shipment|
|
|
38
|
+
units_by_shipment.group_by(&:variant).each do |variant, units|
|
|
39
|
+
shipment.stock_location.unstock variant, units.count, shipment
|
|
42
40
|
end
|
|
43
41
|
end
|
|
44
42
|
end
|
|
@@ -86,7 +86,7 @@ module Spree
|
|
|
86
86
|
# counting only those in the given state if it was specified
|
|
87
87
|
def quantity(state = nil)
|
|
88
88
|
matched_contents = state.nil? ? contents : contents.select { |content| content.state.to_s == state.to_s }
|
|
89
|
-
matched_contents.
|
|
89
|
+
matched_contents.sum(&:quantity)
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
# @return [Boolean] true if there are no inventory units in this
|
|
@@ -51,9 +51,7 @@ module Spree
|
|
|
51
51
|
# Allocate any available on hand inventory and remaining desired inventory from backorders
|
|
52
52
|
on_hand_packages, backordered_packages, leftover = @allocator.allocate_inventory(@desired)
|
|
53
53
|
|
|
54
|
-
unless leftover.empty?
|
|
55
|
-
raise Spree::Order::InsufficientStock
|
|
56
|
-
end
|
|
54
|
+
raise Spree::Order::InsufficientStock.new(items: leftover.quantities) unless leftover.empty?
|
|
57
55
|
|
|
58
56
|
packages = @stock_locations.map do |stock_location|
|
|
59
57
|
# Combine on_hand and backorders into a single package per-location
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'discard'
|
|
4
|
-
|
|
5
3
|
module Spree
|
|
6
4
|
class StockItem < Spree::Base
|
|
7
|
-
|
|
8
|
-
include Spree::ParanoiaDeprecations
|
|
9
|
-
|
|
10
|
-
include Discard::Model
|
|
11
|
-
self.discard_column = :deleted_at
|
|
5
|
+
include Spree::SoftDeletable
|
|
12
6
|
|
|
13
7
|
belongs_to :stock_location, class_name: 'Spree::StockLocation', inverse_of: :stock_items, optional: true
|
|
14
|
-
belongs_to :variant, -> {
|
|
8
|
+
belongs_to :variant, -> { with_discarded }, class_name: 'Spree::Variant', inverse_of: :stock_items, optional: true
|
|
15
9
|
has_many :stock_movements, inverse_of: :stock_item
|
|
16
10
|
|
|
17
11
|
validates :stock_location, :variant, presence: true
|
|
@@ -4,6 +4,7 @@ module Spree
|
|
|
4
4
|
class StockMovement < Spree::Base
|
|
5
5
|
belongs_to :stock_item, class_name: 'Spree::StockItem', inverse_of: :stock_movements, optional: true
|
|
6
6
|
belongs_to :originator, polymorphic: true, optional: true
|
|
7
|
+
has_one :variant, through: :stock_item
|
|
7
8
|
|
|
8
9
|
after_create :update_stock_item_quantity
|
|
9
10
|
|
|
@@ -12,6 +13,7 @@ module Spree
|
|
|
12
13
|
|
|
13
14
|
scope :recent, -> { order(created_at: :desc) }
|
|
14
15
|
|
|
16
|
+
self.whitelisted_ransackable_associations = %w[variant]
|
|
15
17
|
self.whitelisted_ransackable_attributes = ['quantity']
|
|
16
18
|
|
|
17
19
|
def readonly?
|
data/app/models/spree/store.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Spree
|
|
|
17
17
|
|
|
18
18
|
has_many :orders, class_name: "Spree::Order"
|
|
19
19
|
|
|
20
|
-
validates :code, presence: true, uniqueness: { allow_blank: true }
|
|
20
|
+
validates :code, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
|
|
21
21
|
validates :name, presence: true
|
|
22
22
|
validates :url, presence: true
|
|
23
23
|
validates :mail_from_address, presence: true
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'discard'
|
|
4
|
-
|
|
5
3
|
class Spree::StoreCredit < Spree::PaymentSource
|
|
6
|
-
|
|
7
|
-
include Spree::ParanoiaDeprecations
|
|
8
|
-
|
|
9
|
-
include Discard::Model
|
|
10
|
-
self.discard_column = :deleted_at
|
|
4
|
+
include Spree::SoftDeletable
|
|
11
5
|
|
|
12
6
|
VOID_ACTION = 'void'
|
|
13
7
|
CREDIT_ACTION = 'credit'
|
|
@@ -1,18 +1,45 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
class Spree::StoreCreditCategory < Spree::Base
|
|
4
|
+
GIFT_CARD = 'Gift Card'
|
|
5
|
+
REIMBURSEMENT = 'Reimbursement'
|
|
6
|
+
|
|
4
7
|
class_attribute :non_expiring_credit_types
|
|
5
8
|
self.non_expiring_credit_types = [Spree::StoreCreditType::NON_EXPIRING]
|
|
6
9
|
|
|
10
|
+
# @deprecated
|
|
7
11
|
class_attribute :reimbursement_category_name
|
|
8
12
|
self.reimbursement_category_name = I18n.t('spree.store_credit_category.default')
|
|
9
13
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
# @deprecated
|
|
15
|
+
def self.reimbursement_category(reimbursement)
|
|
16
|
+
reimbursement.store_credit_category
|
|
13
17
|
end
|
|
14
18
|
|
|
15
19
|
def non_expiring?
|
|
16
20
|
self.class.non_expiring_credit_types.include? name
|
|
17
21
|
end
|
|
22
|
+
|
|
23
|
+
public_instance_methods.grep(/^reimbursement_category_name/).each do |method|
|
|
24
|
+
deprecate(
|
|
25
|
+
method => 'Use Spree::Reimbursement#store_credit_category.name instead',
|
|
26
|
+
deprecator: Spree::Deprecation
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class << self
|
|
31
|
+
public_instance_methods.grep(/^reimbursement_category_name/).each do |method|
|
|
32
|
+
deprecate(
|
|
33
|
+
method => 'Use Spree::Reimbursement.store_credit_category.name instead',
|
|
34
|
+
deprecator: Spree::Deprecation
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
public_instance_methods.grep(/^reimbursement_category$/).each do |method|
|
|
39
|
+
deprecate(
|
|
40
|
+
method => 'Use Spree::Reimbursement.store_credit_category instead',
|
|
41
|
+
deprecator: Spree::Deprecation
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
18
45
|
end
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'discard'
|
|
4
|
-
|
|
5
3
|
module Spree
|
|
6
4
|
class StoreCreditEvent < Spree::Base
|
|
7
|
-
|
|
8
|
-
include Spree::ParanoiaDeprecations
|
|
9
|
-
|
|
10
|
-
include Discard::Model
|
|
11
|
-
self.discard_column = :deleted_at
|
|
5
|
+
include Spree::SoftDeletable
|
|
12
6
|
|
|
13
7
|
belongs_to :store_credit, optional: true
|
|
14
8
|
belongs_to :originator, polymorphic: true, optional: true
|
|
@@ -4,8 +4,4 @@ class Spree::StoreCreditReason < Spree::Base
|
|
|
4
4
|
include Spree::NamedType
|
|
5
5
|
|
|
6
6
|
has_many :store_credit_events, inverse_of: :store_credit_reason
|
|
7
|
-
|
|
8
|
-
validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
|
|
9
|
-
|
|
10
|
-
scope :active, -> { where(active: true) }
|
|
11
7
|
end
|
|
@@ -9,7 +9,7 @@ module Spree
|
|
|
9
9
|
@rates_for_order ||= Spree::TaxRate.for_address(item.order.tax_address)
|
|
10
10
|
|
|
11
11
|
@rates_for_order.select do |rate|
|
|
12
|
-
rate.tax_categories.map(&:id).include?(item.tax_category_id)
|
|
12
|
+
rate.active? && rate.tax_categories.map(&:id).include?(item.tax_category_id)
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'discard'
|
|
4
|
-
|
|
5
3
|
module Spree
|
|
6
4
|
class TaxCategory < Spree::Base
|
|
7
|
-
|
|
8
|
-
include Spree::ParanoiaDeprecations
|
|
9
|
-
|
|
10
|
-
include Discard::Model
|
|
11
|
-
self.discard_column = :deleted_at
|
|
5
|
+
include Spree::SoftDeletable
|
|
12
6
|
|
|
13
7
|
after_discard do
|
|
14
8
|
self.tax_rate_tax_categories = []
|
|
15
9
|
end
|
|
16
10
|
|
|
17
11
|
validates :name, presence: true
|
|
18
|
-
validates_uniqueness_of :name, unless: :deleted_at
|
|
12
|
+
validates_uniqueness_of :name, case_sensitive: true, unless: :deleted_at
|
|
19
13
|
|
|
20
14
|
has_many :tax_rate_tax_categories,
|
|
21
15
|
class_name: 'Spree::TaxRateTaxCategory',
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'discard'
|
|
4
|
-
|
|
5
3
|
module Spree
|
|
6
4
|
class TaxRate < Spree::Base
|
|
7
|
-
|
|
8
|
-
include Spree::ParanoiaDeprecations
|
|
9
|
-
|
|
10
|
-
include Discard::Model
|
|
11
|
-
self.discard_column = :deleted_at
|
|
5
|
+
include Spree::SoftDeletable
|
|
12
6
|
|
|
13
7
|
# Need to deal with adjustments before calculator is destroyed.
|
|
14
8
|
before_destroy :remove_adjustments_from_incomplete_orders
|
|
@@ -37,6 +31,12 @@ module Spree
|
|
|
37
31
|
scope :for_address, ->(address) { joins(:zone).merge(Spree::Zone.for_address(address)) }
|
|
38
32
|
scope :for_country,
|
|
39
33
|
->(country) { for_address(Spree::Tax::TaxLocation.new(country: country)) }
|
|
34
|
+
scope :active, -> do
|
|
35
|
+
table = arel_table
|
|
36
|
+
time = Time.current
|
|
37
|
+
where(table[:starts_at].eq(nil).or(table[:starts_at].lt(time))).
|
|
38
|
+
where(table[:expires_at].eq(nil).or(table[:expires_at].gt(time)))
|
|
39
|
+
end
|
|
40
40
|
|
|
41
41
|
# Finds geographically matching tax rates for a tax zone.
|
|
42
42
|
# We do not know if they are/aren't applicable until we attempt to apply these rates to
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree::Taxon::ActiveStorageAttachment
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
include Spree::ActiveStorageAdapter
|
|
6
|
+
|
|
7
|
+
included do
|
|
8
|
+
has_attachment :icon,
|
|
9
|
+
styles: { mini: '32x32>', normal: '128x128>' },
|
|
10
|
+
default_style: :mini
|
|
11
|
+
validate :icon_is_an_image
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def attachment_partial_name
|
|
17
|
+
'paperclip'
|
|
18
|
+
end
|
|
19
|
+
end
|
data/app/models/spree/taxon.rb
CHANGED
|
@@ -134,7 +134,7 @@ module Spree
|
|
|
134
134
|
|
|
135
135
|
def touch_ancestors_and_taxonomy
|
|
136
136
|
# Touches all ancestors at once to avoid recursive taxonomy touch, and reduce queries.
|
|
137
|
-
self.class.where(id: ancestors.pluck(:id)).update_all(updated_at: Time.current)
|
|
137
|
+
self.class.default_scoped.where(id: ancestors.pluck(:id)).update_all(updated_at: Time.current)
|
|
138
138
|
# Have taxonomy touch happen in #touch_ancestors_and_taxonomy rather than association option in order for imports to override.
|
|
139
139
|
taxonomy.try!(:touch)
|
|
140
140
|
end
|
|
@@ -6,7 +6,7 @@ module Spree
|
|
|
6
6
|
belongs_to :address, class_name: "Spree::Address", optional: true
|
|
7
7
|
|
|
8
8
|
validates_uniqueness_of :address_id, scope: :user_id
|
|
9
|
-
validates_uniqueness_of :user_id, conditions: -> { active.
|
|
9
|
+
validates_uniqueness_of :user_id, conditions: -> { active.default_shipping }, message: :default_address_exists, if: :default?
|
|
10
10
|
|
|
11
11
|
scope :with_address_values, ->(address_attributes) do
|
|
12
12
|
joins(:address).merge(
|
|
@@ -15,9 +15,15 @@ module Spree
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
scope :all_historical, -> { unscope(where: :archived) }
|
|
18
|
-
scope :
|
|
18
|
+
scope :default_shipping, -> { where(default: true) }
|
|
19
|
+
scope :default_billing, -> { where(default_billing: true) }
|
|
19
20
|
scope :active, -> { where(archived: false) }
|
|
20
21
|
|
|
22
|
+
scope :default, -> do
|
|
23
|
+
Spree::Deprecation.warn "This scope is deprecated. Please start using ::default_shipping."
|
|
24
|
+
default_shipping
|
|
25
|
+
end
|
|
26
|
+
|
|
21
27
|
default_scope -> { order([default: :desc, updated_at: :desc]) }
|
|
22
28
|
end
|
|
23
29
|
end
|
data/app/models/spree/variant.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'discard'
|
|
4
|
-
|
|
5
3
|
module Spree
|
|
6
4
|
# == Master Variant
|
|
7
5
|
#
|
|
@@ -20,11 +18,7 @@ module Spree
|
|
|
20
18
|
class Variant < Spree::Base
|
|
21
19
|
acts_as_list scope: :product
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
include Spree::ParanoiaDeprecations
|
|
25
|
-
|
|
26
|
-
include Discard::Model
|
|
27
|
-
self.discard_column = :deleted_at
|
|
21
|
+
include Spree::SoftDeletable
|
|
28
22
|
|
|
29
23
|
after_discard do
|
|
30
24
|
stock_items.discard_all
|
|
@@ -36,11 +30,11 @@ module Spree
|
|
|
36
30
|
attr_writer :rebuild_vat_prices
|
|
37
31
|
include Spree::DefaultPrice
|
|
38
32
|
|
|
39
|
-
belongs_to :product, -> {
|
|
33
|
+
belongs_to :product, -> { with_discarded }, touch: true, class_name: 'Spree::Product', inverse_of: :variants, optional: false
|
|
40
34
|
belongs_to :tax_category, class_name: 'Spree::TaxCategory', optional: true
|
|
41
35
|
|
|
42
|
-
delegate :name, :description, :slug, :available_on, :
|
|
43
|
-
:meta_description, :meta_keywords, :shipping_category,
|
|
36
|
+
delegate :name, :description, :slug, :available_on, :discontinue_on, :discontinued?,
|
|
37
|
+
:shipping_category_id, :meta_description, :meta_keywords, :shipping_category,
|
|
44
38
|
to: :product
|
|
45
39
|
delegate :tax_category, to: :product, prefix: true
|
|
46
40
|
delegate :tax_rates, to: :tax_category
|
|
@@ -80,7 +74,7 @@ module Spree
|
|
|
80
74
|
|
|
81
75
|
validates :cost_price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
|
|
82
76
|
validates :price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
|
|
83
|
-
validates_uniqueness_of :sku, allow_blank: true, if: :enforce_unique_sku?
|
|
77
|
+
validates_uniqueness_of :sku, allow_blank: true, case_sensitive: true, if: :enforce_unique_sku?
|
|
84
78
|
|
|
85
79
|
after_create :create_stock_items
|
|
86
80
|
after_create :set_position
|
|
@@ -391,9 +385,9 @@ module Spree
|
|
|
391
385
|
#
|
|
392
386
|
# @return [Array<Spree::VariantPropertyRuleValue>] variant_properties
|
|
393
387
|
def variant_properties
|
|
394
|
-
product.variant_property_rules.
|
|
388
|
+
product.variant_property_rules.flat_map do |rule|
|
|
395
389
|
rule.values if rule.applies_to_variant?(self)
|
|
396
|
-
end.
|
|
390
|
+
end.compact
|
|
397
391
|
end
|
|
398
392
|
|
|
399
393
|
# The gallery for the variant, which represents all the images
|
|
@@ -38,7 +38,11 @@ module Spree
|
|
|
38
38
|
# @param variant [Spree::Variant] variant to check
|
|
39
39
|
# @return [Boolean]
|
|
40
40
|
def applies_to_variant?(variant)
|
|
41
|
-
|
|
41
|
+
if apply_to_all
|
|
42
|
+
matches_option_value_ids?(variant.option_value_ids)
|
|
43
|
+
else
|
|
44
|
+
(option_value_ids & variant.option_value_ids).present?
|
|
45
|
+
end
|
|
42
46
|
end
|
|
43
47
|
end
|
|
44
48
|
end
|
|
@@ -24,16 +24,21 @@ class Spree::Wallet::AddPaymentSourcesToWallet
|
|
|
24
24
|
# add valid sources to wallet and optionally set a default
|
|
25
25
|
if sources.any?
|
|
26
26
|
# arbitrarily sort by id for picking a default
|
|
27
|
-
|
|
27
|
+
sources.sort_by(&:id).each do |source|
|
|
28
28
|
order.user.wallet.add(source)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
wallet_payment_sources.last
|
|
31
|
+
make_default
|
|
33
32
|
end
|
|
34
33
|
end
|
|
35
34
|
end
|
|
36
35
|
|
|
36
|
+
protected
|
|
37
|
+
|
|
38
|
+
def make_default
|
|
39
|
+
order.user.wallet.default_wallet_payment_source = order.user.wallet_payment_sources.last
|
|
40
|
+
end
|
|
41
|
+
|
|
37
42
|
private
|
|
38
43
|
|
|
39
44
|
attr_reader :order
|
data/app/models/spree/zone.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Spree
|
|
|
13
13
|
has_many :shipping_method_zones, dependent: :destroy
|
|
14
14
|
has_many :shipping_methods, through: :shipping_method_zones
|
|
15
15
|
|
|
16
|
-
validates :name, presence: true, uniqueness: { allow_blank: true }
|
|
16
|
+
validates :name, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
|
|
17
17
|
after_save :remove_defunct_members
|
|
18
18
|
|
|
19
19
|
scope :with_member_ids, ->(state_ids, country_ids) do
|
data/config/locales/en.yml
CHANGED
|
@@ -28,6 +28,7 @@ en:
|
|
|
28
28
|
company: Company
|
|
29
29
|
firstname: First Name
|
|
30
30
|
lastname: Last Name
|
|
31
|
+
name: Name
|
|
31
32
|
phone: Phone
|
|
32
33
|
zipcode: Zip Code
|
|
33
34
|
spree/adjustment:
|
|
@@ -115,7 +116,7 @@ en:
|
|
|
115
116
|
considered_risky: Risky
|
|
116
117
|
coupon_code: Coupon Code
|
|
117
118
|
created_at: Order Date
|
|
118
|
-
email: Customer
|
|
119
|
+
email: Customer Email
|
|
119
120
|
included_tax_total: Tax (incl.)
|
|
120
121
|
ip_address: IP Address
|
|
121
122
|
item_total: Item Total
|
|
@@ -131,6 +132,7 @@ en:
|
|
|
131
132
|
city: Billing address city
|
|
132
133
|
firstname: Billing address first name
|
|
133
134
|
lastname: Billing address last name
|
|
135
|
+
name: Billing address name
|
|
134
136
|
phone: Billing address phone
|
|
135
137
|
state: Billing address state
|
|
136
138
|
zipcode: Billing address zipcode
|
|
@@ -139,6 +141,7 @@ en:
|
|
|
139
141
|
city: Shipping address city
|
|
140
142
|
firstname: Shipping address first name
|
|
141
143
|
lastname: Shipping address last name
|
|
144
|
+
name: Shipping address name
|
|
142
145
|
phone: Shipping address phone
|
|
143
146
|
state: Shipping address state
|
|
144
147
|
zipcode: Shipping address zipcode
|
|
@@ -174,6 +177,7 @@ en:
|
|
|
174
177
|
cost_price: Cost Price
|
|
175
178
|
depth: Depth
|
|
176
179
|
description: Description
|
|
180
|
+
discontinue_on: Discontinue on
|
|
177
181
|
height: Height
|
|
178
182
|
master_price: Master Price
|
|
179
183
|
meta_description: Meta Description
|
|
@@ -316,6 +320,8 @@ en:
|
|
|
316
320
|
name: Name
|
|
317
321
|
service_level: Service Level
|
|
318
322
|
tracking_url: Tracking URL
|
|
323
|
+
stock_locations: Stock Locations
|
|
324
|
+
available_to_all: Available to all stock locations
|
|
319
325
|
spree/shipping_rate:
|
|
320
326
|
amount: Amount
|
|
321
327
|
label: Label
|
|
@@ -356,6 +362,7 @@ en:
|
|
|
356
362
|
default: Default
|
|
357
363
|
default_currency: Default Currency
|
|
358
364
|
mail_from_address: Mail From Address
|
|
365
|
+
bcc_email: BCC Email
|
|
359
366
|
meta_description: Meta Description
|
|
360
367
|
meta_keywords: Meta Keywords
|
|
361
368
|
name: Site Name
|
|
@@ -468,6 +475,7 @@ en:
|
|
|
468
475
|
attributes:
|
|
469
476
|
price:
|
|
470
477
|
not_a_number: is not valid
|
|
478
|
+
does_not_match_order_currency: Line item price currency must match order currency!
|
|
471
479
|
spree/price:
|
|
472
480
|
attributes:
|
|
473
481
|
currency:
|
|
@@ -475,8 +483,11 @@ en:
|
|
|
475
483
|
spree/promotion:
|
|
476
484
|
attributes:
|
|
477
485
|
apply_automatically:
|
|
478
|
-
disallowed_with_code: Disallowed for promotions with a code
|
|
479
486
|
disallowed_with_path: Disallowed for promotions with a path
|
|
487
|
+
spree/promotion_code:
|
|
488
|
+
attributes:
|
|
489
|
+
base:
|
|
490
|
+
disallowed_with_apply_automatically: Could not create promotion code on promotion that apply automatically
|
|
480
491
|
spree/refund:
|
|
481
492
|
attributes:
|
|
482
493
|
amount:
|
|
@@ -688,7 +699,7 @@ en:
|
|
|
688
699
|
one: RMA Reason
|
|
689
700
|
other: RMA Reasons
|
|
690
701
|
spree/role:
|
|
691
|
-
one:
|
|
702
|
+
one: Role
|
|
692
703
|
other: Roles
|
|
693
704
|
spree/shipment:
|
|
694
705
|
one: Shipment
|
|
@@ -783,6 +794,7 @@ en:
|
|
|
783
794
|
refund: Refund
|
|
784
795
|
remove: Remove
|
|
785
796
|
save: Save
|
|
797
|
+
send_email: Send Email
|
|
786
798
|
ship: Ship
|
|
787
799
|
split: Split
|
|
788
800
|
update: Update
|
|
@@ -799,6 +811,8 @@ en:
|
|
|
799
811
|
add_option_value: Add Option Value
|
|
800
812
|
add_product: Add Product
|
|
801
813
|
add_product_properties: Add Product Properties
|
|
814
|
+
add_variant_properties: Add Variant Properties
|
|
815
|
+
applies_to_all_variant_properties: Applies to all Variant Properties above
|
|
802
816
|
add_rule_of_type: Add rule of type
|
|
803
817
|
add_state: Add State
|
|
804
818
|
add_stock: Add Stock
|
|
@@ -840,6 +854,11 @@ en:
|
|
|
840
854
|
drag_and_drop: or drag and drop them here
|
|
841
855
|
image_process_failed: Server failed to process the image
|
|
842
856
|
upload_images: Upload Images
|
|
857
|
+
order:
|
|
858
|
+
events:
|
|
859
|
+
approve: Approve
|
|
860
|
+
cancel: Cancel
|
|
861
|
+
resume: Resume
|
|
843
862
|
payments:
|
|
844
863
|
source_forms:
|
|
845
864
|
storecredit:
|
|
@@ -876,6 +895,9 @@ en:
|
|
|
876
895
|
expired: Expired
|
|
877
896
|
inactive: Inactive
|
|
878
897
|
not_started: Not started
|
|
898
|
+
shipping_methods:
|
|
899
|
+
form:
|
|
900
|
+
stock_locations_placeholder: 'Choose stock locations'
|
|
879
901
|
stock_locations:
|
|
880
902
|
form:
|
|
881
903
|
address: Address
|
|
@@ -1391,17 +1413,25 @@ en:
|
|
|
1391
1413
|
available_on: This sets the availability date for the product. If this value
|
|
1392
1414
|
is not set, or it is set to a date in the future, then the product is not
|
|
1393
1415
|
available on the storefront.
|
|
1416
|
+
discontinue_on: This sets the discontinue date for the product. If this value
|
|
1417
|
+
is set to a date, then the product is not available on the storefront from
|
|
1418
|
+
that day on anymore.
|
|
1394
1419
|
promotionable: 'This determines whether or not promotions can apply to this
|
|
1395
1420
|
product.<br/>Default: Checked'
|
|
1396
1421
|
shipping_category: 'This determines what kind of shipping this product requires.<br/>
|
|
1397
1422
|
Default: Default'
|
|
1398
1423
|
tax_category: 'This determines what kind of taxation is applied to this product.<br/>
|
|
1399
|
-
Default:
|
|
1424
|
+
Default: %{default_tax_category}'
|
|
1400
1425
|
spree/promotion:
|
|
1401
1426
|
expires_at: This determines when the promotion expires. <br/> If no value
|
|
1402
1427
|
is specified, the promotion will never expire.
|
|
1403
1428
|
starts_at: This determines when the promotion can be applied to orders. <br/>
|
|
1404
1429
|
If no value is specified, the promotion will be immediately available.
|
|
1430
|
+
promo_code_will_be_disabled: Selecting this option, promo codes will be disabled for this promotion
|
|
1431
|
+
because all its rules / actions will be applied automatically to all orders.
|
|
1432
|
+
spree/shipping_method:
|
|
1433
|
+
available_to_all: Uncheck to select specific stock locations this
|
|
1434
|
+
shipping method will be available in.
|
|
1405
1435
|
spree/stock_location:
|
|
1406
1436
|
active: 'This determines whether stock from this location can be used when
|
|
1407
1437
|
building packages.<br/> Default: Checked'
|
|
@@ -1423,6 +1453,8 @@ en:
|
|
|
1423
1453
|
(orders which don't yet have an address).<br/> Default: None."
|
|
1424
1454
|
code: 'An identifier for your store. Developers may need this value if you operate
|
|
1425
1455
|
multiple storefronts.'
|
|
1456
|
+
spree/tax_category:
|
|
1457
|
+
is_default: 'When checked, this tax category will be selected by default when creating new products or variants.'
|
|
1426
1458
|
spree/tax_rate:
|
|
1427
1459
|
validity_period: This determines the validity period within which the tax
|
|
1428
1460
|
rate is valid and will be applied to eligible items. <br /> If no start
|
|
@@ -1496,6 +1528,11 @@ en:
|
|
|
1496
1528
|
iso_name: Iso Name
|
|
1497
1529
|
item: Item
|
|
1498
1530
|
item_description: Item Description
|
|
1531
|
+
items_selected:
|
|
1532
|
+
all: All Items Selected
|
|
1533
|
+
none: No Item Selected
|
|
1534
|
+
one: One Item Selected
|
|
1535
|
+
custom: Items Selected
|
|
1499
1536
|
item_total: Item Total
|
|
1500
1537
|
item_total_rule:
|
|
1501
1538
|
operators:
|
|
@@ -1566,6 +1603,7 @@ en:
|
|
|
1566
1603
|
my_account: My Account
|
|
1567
1604
|
my_orders: My Orders
|
|
1568
1605
|
name: Name
|
|
1606
|
+
name_contains: Name Contains
|
|
1569
1607
|
name_on_card: Name on card
|
|
1570
1608
|
name_or_sku: Name or SKU (enter at least first 4 characters of product name)
|
|
1571
1609
|
negative_movement_absent_item: Cannot create negative movement for absent stock
|
|
@@ -1957,7 +1995,7 @@ en:
|
|
|
1957
1995
|
select_a_stock_location: Select a stock location
|
|
1958
1996
|
selected_quantity_not_available: selected of %{item} is not available.
|
|
1959
1997
|
send_copy_of_all_mails_to: Send Copy of All Mails To
|
|
1960
|
-
send_mailer: Send
|
|
1998
|
+
send_mailer: Send Shipment Email
|
|
1961
1999
|
send_mails_as: Send Mails As
|
|
1962
2000
|
server: Server
|
|
1963
2001
|
server_error: The server returned an error
|
|
@@ -1965,6 +2003,7 @@ en:
|
|
|
1965
2003
|
ship: ship
|
|
1966
2004
|
ship_address: Ship Address
|
|
1967
2005
|
ship_address_required: Valid shipping address required
|
|
2006
|
+
bill_address_required: Valid billing address required
|
|
1968
2007
|
ship_total: Ship Total
|
|
1969
2008
|
shipment: Shipment
|
|
1970
2009
|
shipment_adjustments: Shipment adjustments
|
|
@@ -5,7 +5,7 @@ require 'carmen'
|
|
|
5
5
|
# Insert Countries into the spree_countries table, checking to ensure that no
|
|
6
6
|
# duplicates are created, using as few SQL statements as possible (2)
|
|
7
7
|
|
|
8
|
-
connection =
|
|
8
|
+
connection = Spree::Base.connection
|
|
9
9
|
|
|
10
10
|
country_mapper = ->(country) do
|
|
11
11
|
name = connection.quote country.name
|
data/db/default/spree/states.rb
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
def create_states(subregions, country)
|
|
4
|
+
subregions.each do |subregion|
|
|
5
|
+
Spree::State.where(abbr: subregion.code, country: country).first_or_create!(
|
|
6
|
+
name: subregion.name
|
|
7
|
+
)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
3
11
|
ActiveRecord::Base.transaction do
|
|
4
12
|
Spree::Country.all.each do |country|
|
|
5
13
|
carmen_country = Carmen::Country.coded(country.iso)
|
|
6
14
|
next unless carmen_country.subregions?
|
|
7
15
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
)
|
|
16
|
+
if Spree::Config[:countries_that_use_nested_subregions].include? country.iso
|
|
17
|
+
create_states(carmen_country.subregions.flat_map(&:subregions), country)
|
|
18
|
+
else
|
|
19
|
+
create_states(carmen_country.subregions, country)
|
|
12
20
|
end
|
|
13
21
|
end
|
|
14
22
|
end
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
Spree::StoreCreditCategory.find_or_create_by!(name: I18n.t('spree.store_credit_category.default'))
|
|
4
3
|
|
|
5
4
|
Spree::PaymentMethod.create_with(
|
|
6
5
|
name: "Store Credit",
|
|
@@ -18,6 +17,7 @@ Spree::StoreCreditType.create_with(priority: 2).find_or_create_by!(name: Spree::
|
|
|
18
17
|
Spree::ReimbursementType.create_with(name: "Store Credit").find_or_create_by!(type: 'Spree::ReimbursementType::StoreCredit')
|
|
19
18
|
Spree::ReimbursementType.create_with(name: "Original").find_or_create_by!(type: 'Spree::ReimbursementType::OriginalPayment')
|
|
20
19
|
|
|
21
|
-
Spree::StoreCreditCategory.find_or_create_by!(name:
|
|
20
|
+
Spree::StoreCreditCategory.find_or_create_by!(name: Spree::StoreCreditCategory::GIFT_CARD)
|
|
21
|
+
Spree::StoreCreditCategory.find_or_create_by!(name: Spree::StoreCreditCategory::REIMBURSEMENT)
|
|
22
22
|
|
|
23
23
|
Spree::StoreCreditReason.find_or_create_by!(name: 'Credit Given In Error')
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class AddApplyToAllToVariantPropertyRule < ActiveRecord::Migration[5.1]
|
|
4
|
+
def change
|
|
5
|
+
add_column :spree_variant_property_rules, :apply_to_all, :boolean, default: false, null: false
|
|
6
|
+
change_column :spree_variant_property_rules, :apply_to_all, :boolean, default: true
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def down
|
|
10
|
+
remove_column :spree_variant_property_rules, :apply_to_all
|
|
11
|
+
end
|
|
12
|
+
end
|