solidus_core 4.1.6 → 4.5.1
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/images/logo/solidus.svg +18 -1
- data/app/assets/images/logo/solidus_logo.png +0 -0
- data/app/helpers/spree/base_helper.rb +2 -2
- data/app/helpers/spree/core/controller_helpers/auth.rb +66 -0
- data/app/helpers/spree/core/controller_helpers/common.rb +82 -0
- data/app/helpers/spree/core/controller_helpers/order.rb +86 -0
- data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +165 -0
- data/app/helpers/spree/core/controller_helpers/pricing.rb +19 -0
- data/app/helpers/spree/core/controller_helpers/search.rb +16 -0
- data/app/helpers/spree/core/controller_helpers/store.rb +19 -0
- data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +74 -0
- data/app/mailers/spree/base_mailer.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +1 -1
- data/app/mailers/spree/order_mailer.rb +3 -3
- data/app/mailers/spree/reimbursement_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
- data/app/models/concerns/spree/display_money.rb +1 -1
- data/app/models/concerns/spree/metadata.rb +64 -0
- data/app/models/concerns/spree/named_type.rb +2 -0
- data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
- data/app/models/concerns/spree/user_address_book.rb +8 -9
- data/app/models/concerns/spree/user_methods.rb +3 -3
- data/app/models/spree/address.rb +10 -8
- data/app/models/spree/adjustment.rb +15 -65
- data/app/models/spree/adjustment_reason.rb +2 -0
- data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
- data/app/models/spree/carton.rb +2 -2
- data/app/models/spree/core/state_machines/inventory_unit.rb +42 -0
- data/app/models/spree/core/state_machines/order/class_methods.rb +217 -0
- data/app/models/spree/core/state_machines/order.rb +42 -0
- data/app/models/spree/core/state_machines/payment.rb +61 -0
- data/app/models/spree/core/state_machines/reimbursement.rb +33 -0
- data/app/models/spree/core/state_machines/return_authorization.rb +32 -0
- data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
- data/app/models/spree/core/state_machines/return_item/reception_status.rb +42 -0
- data/app/models/spree/core/state_machines/shipment.rb +58 -0
- data/app/models/spree/credit_card.rb +12 -9
- data/app/models/spree/customer_return.rb +2 -0
- data/app/models/spree/deprecated_configurable_class.rb +40 -0
- data/app/models/spree/fulfilment_changer.rb +4 -4
- data/app/models/spree/inventory_unit.rb +2 -2
- data/app/models/spree/item_total.rb +28 -0
- data/app/models/spree/legacy_user.rb +1 -0
- data/app/models/spree/line_item.rb +22 -4
- data/app/models/spree/money.rb +120 -0
- data/app/models/spree/null_promotion_adjuster.rb +13 -0
- data/app/models/spree/null_promotion_advertiser.rb +9 -0
- data/app/models/spree/null_promotion_finder.rb +9 -0
- data/app/models/spree/null_promotion_handler.rb +44 -0
- data/app/models/spree/option_value.rb +1 -0
- data/app/models/spree/order.rb +54 -36
- data/app/models/spree/order_cancellations.rb +8 -8
- data/app/models/spree/order_inventory.rb +6 -4
- data/app/models/spree/order_merger.rb +1 -1
- data/app/models/spree/order_mutex.rb +2 -2
- data/app/models/spree/order_shipping.rb +9 -9
- data/app/models/spree/order_taxation.rb +1 -0
- data/app/models/spree/order_updater.rb +19 -40
- data/app/models/spree/payment/processing.rb +2 -2
- data/app/models/spree/payment.rb +3 -2
- data/app/models/spree/payment_create.rb +1 -1
- data/app/models/spree/payment_method/bogus_credit_card.rb +14 -9
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +12 -6
- data/app/models/spree/payment_method/store_credit.rb +1 -1
- data/app/models/spree/payment_method.rb +3 -1
- data/app/models/spree/payment_source.rb +5 -1
- data/app/models/spree/permission_set.rb +11 -0
- data/app/models/spree/permission_sets/base.rb +45 -0
- data/app/models/spree/permission_sets/configuration_display.rb +53 -0
- data/app/models/spree/permission_sets/configuration_management.rb +52 -0
- data/app/models/spree/permission_sets/dashboard_display.rb +28 -0
- data/app/models/spree/permission_sets/default_customer.rb +83 -0
- data/app/models/spree/permission_sets/order_display.rb +50 -0
- data/app/models/spree/permission_sets/order_management.rb +50 -0
- data/app/models/spree/permission_sets/product_display.rb +43 -0
- data/app/models/spree/permission_sets/product_management.rb +47 -0
- data/app/models/spree/permission_sets/restricted_stock_display.rb +33 -0
- data/app/models/spree/permission_sets/restricted_stock_management.rb +33 -0
- data/app/models/spree/permission_sets/stock_display.rb +26 -0
- data/app/models/spree/permission_sets/stock_management.rb +26 -0
- data/app/models/spree/permission_sets/super_user.rb +26 -0
- data/app/models/spree/permission_sets/user_display.rb +27 -0
- data/app/models/spree/permission_sets/user_management.rb +44 -0
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/product.rb +13 -9
- data/app/models/spree/refund.rb +3 -1
- data/app/models/spree/refund_reason.rb +6 -1
- data/app/models/spree/reimbursement.rb +4 -4
- data/app/models/spree/reimbursement_performer.rb +3 -3
- data/app/models/spree/reimbursement_tax_calculator.rb +2 -2
- data/app/models/spree/reimbursement_type/credit.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
- data/app/models/spree/reimbursement_type.rb +6 -1
- data/app/models/spree/return_authorization.rb +2 -0
- data/app/models/spree/return_item.rb +10 -10
- data/app/models/spree/return_reason.rb +6 -1
- data/app/models/spree/role.rb +3 -1
- data/app/models/spree/role_permission.rb +8 -0
- data/app/models/spree/shipment.rb +9 -7
- data/app/models/spree/shipping_category.rb +2 -0
- data/app/models/spree/shipping_rate.rb +2 -3
- data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +8 -12
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
- data/app/models/spree/stock/package.rb +2 -2
- data/app/models/spree/stock/simple_coordinator.rb +36 -22
- data/app/models/spree/stock_item.rb +1 -0
- data/app/models/spree/stock_location.rb +5 -5
- data/app/models/spree/store.rb +3 -1
- data/app/models/spree/store_credit.rb +17 -15
- data/app/models/spree/store_credit_event.rb +4 -3
- data/app/models/spree/store_credit_reason.rb +6 -1
- data/app/models/spree/store_selector/by_server_name.rb +1 -1
- data/app/models/spree/tax/tax_helpers.rb +12 -1
- data/app/models/spree/tax_calculator/default.rb +3 -3
- data/app/models/spree/tax_calculator/shipping_rate.rb +1 -1
- data/app/models/spree/tax_category.rb +3 -1
- data/app/models/spree/tax_rate.rb +7 -3
- data/app/models/spree/taxon.rb +22 -2
- data/app/models/spree/taxon_brand_selector.rb +22 -0
- data/app/models/spree/taxonomy.rb +2 -2
- data/app/models/spree/unauthorized_redirect_handler.rb +24 -0
- data/app/models/spree/unit_cancel.rb +1 -2
- data/app/models/spree/user_address.rb +9 -3
- data/app/models/spree/variant/scopes.rb +4 -0
- data/app/models/spree/variant/vat_price_generator.rb +1 -1
- data/app/models/spree/variant.rb +21 -8
- data/app/models/spree/wallet.rb +2 -2
- data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
- data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
- data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
- data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
- data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +0 -1
- data/config/locales/en.yml +33 -90
- data/db/default/spree/permission_sets.rb +10 -0
- data/db/default/spree/return_reasons.rb +3 -1
- data/db/default/spree/states.rb +1 -1
- data/db/migrate/20160101010000_solidus_one_four.rb +0 -127
- data/db/migrate/20220419170826_remove_archived_user_addresses.rb +12 -0
- data/db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb +1 -1
- data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
- data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
- data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
- data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
- data/db/migrate/20250129061658_add_metadata_to_spree_resources.rb +28 -0
- data/db/migrate/20250201172950_add_gtin_and_condition_to_spree_variant.rb +6 -0
- data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +7 -0
- data/db/migrate/20250221152004_add_metadata_to_users.rb +13 -0
- data/db/seeds.rb +1 -0
- data/lib/generators/solidus/install/app_templates/authentication/custom.rb +0 -5
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
- data/lib/generators/solidus/install/install_generator.rb +64 -15
- data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +15 -12
- data/lib/generators/solidus/update/update_generator.rb +1 -1
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/dummy/templates/rails/application.rb.tt +1 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +41 -93
- data/lib/generators/spree/dummy/templates/rails/manifest.js +3 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
- data/lib/spree/app_configuration.rb +102 -67
- data/lib/spree/core/class_constantizer.rb +2 -2
- data/lib/spree/core/controller_helpers/auth.rb +5 -61
- data/lib/spree/core/controller_helpers/common.rb +5 -80
- data/lib/spree/core/controller_helpers/order.rb +5 -86
- data/lib/spree/core/controller_helpers/payment_parameters.rb +5 -163
- data/lib/spree/core/controller_helpers/pricing.rb +5 -17
- data/lib/spree/core/controller_helpers/search.rb +5 -14
- data/lib/spree/core/controller_helpers/store.rb +5 -17
- data/lib/spree/core/controller_helpers/strong_parameters.rb +5 -71
- data/lib/spree/core/engine.rb +13 -5
- data/lib/spree/core/environment/calculators.rb +35 -3
- data/lib/spree/core/environment/promotions.rb +25 -4
- data/lib/spree/core/environment_extension.rb +16 -2
- data/lib/spree/core/importer/order.rb +5 -5
- data/lib/spree/core/importer/product.rb +3 -3
- data/lib/spree/core/nested_class_set.rb +28 -0
- data/lib/spree/core/null_promotion_configuration.rb +84 -0
- data/lib/spree/core/product_filters.rb +1 -1
- data/lib/spree/core/search/variant.rb +2 -2
- data/lib/spree/core/state_machines/inventory_unit.rb +5 -40
- data/lib/spree/core/state_machines/order.rb +5 -251
- data/lib/spree/core/state_machines/payment.rb +5 -59
- data/lib/spree/core/state_machines/reimbursement.rb +5 -31
- data/lib/spree/core/state_machines/return_authorization.rb +5 -30
- data/lib/spree/core/state_machines/return_item/acceptance_status.rb +5 -49
- data/lib/spree/core/state_machines/return_item/reception_status.rb +5 -40
- data/lib/spree/core/state_machines/shipment.rb +5 -56
- data/lib/spree/core/state_machines.rb +48 -81
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +2 -2
- data/lib/spree/core.rb +2 -14
- data/lib/spree/deprecator.rb +9 -0
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +1 -1
- data/lib/spree/money.rb +5 -118
- data/lib/spree/permission_sets/base.rb +5 -30
- data/lib/spree/permission_sets/configuration_display.rb +5 -41
- data/lib/spree/permission_sets/configuration_management.rb +5 -40
- data/lib/spree/permission_sets/dashboard_display.rb +5 -14
- data/lib/spree/permission_sets/default_customer.rb +5 -71
- data/lib/spree/permission_sets/order_display.rb +5 -38
- data/lib/spree/permission_sets/order_management.rb +5 -38
- data/lib/spree/permission_sets/product_display.rb +5 -31
- data/lib/spree/permission_sets/product_management.rb +5 -35
- data/lib/spree/permission_sets/restricted_stock_display.rb +5 -21
- data/lib/spree/permission_sets/restricted_stock_management.rb +5 -21
- data/lib/spree/permission_sets/stock_display.rb +5 -14
- data/lib/spree/permission_sets/stock_management.rb +5 -14
- data/lib/spree/permission_sets/super_user.rb +5 -14
- data/lib/spree/permission_sets/user_display.rb +5 -15
- data/lib/spree/permission_sets/user_management.rb +5 -32
- data/lib/spree/permission_sets.rb +5 -18
- data/lib/spree/permitted_attributes.rb +21 -9
- data/lib/spree/preferences/configuration.rb +4 -0
- data/lib/spree/preferences/persistable.rb +7 -1
- data/lib/spree/preferences/store.rb +2 -2
- data/lib/spree/testing_support/capybara_ext.rb +11 -1
- data/lib/spree/testing_support/common_rake.rb +1 -0
- data/lib/spree/testing_support/dummy_ability.rb +7 -0
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css +1 -0
- data/lib/spree/testing_support/dummy_app/database.yml +37 -46
- data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +3 -6
- data/lib/spree/testing_support/dummy_app.rb +33 -19
- data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
- data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
- data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
- data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
- data/lib/spree/testing_support/factories/order_factory.rb +13 -24
- data/lib/spree/testing_support/factories/product_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
- data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +1 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/order_walkthrough.rb +3 -3
- data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
- data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
- data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
- data/lib/tasks/colorado_delivery_fee.rake +2 -2
- data/solidus_core.gemspec +7 -10
- metadata +107 -109
- data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
- data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
- data/app/models/spree/calculator/distributed_amount.rb +0 -33
- data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
- data/app/models/spree/calculator/flexi_rate.rb +0 -22
- data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
- data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
- data/app/models/spree/calculator/tiered_percent.rb +0 -62
- data/app/models/spree/line_item_action.rb +0 -8
- data/app/models/spree/order_promotion.rb +0 -27
- data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
- data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
- data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
- data/app/models/spree/promotion/rules/first_order.rb +0 -38
- data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
- data/app/models/spree/promotion/rules/item_total.rb +0 -86
- data/app/models/spree/promotion/rules/nth_order.rb +0 -45
- data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
- data/app/models/spree/promotion/rules/option_value.rb +0 -50
- data/app/models/spree/promotion/rules/product.rb +0 -86
- data/app/models/spree/promotion/rules/store.rb +0 -26
- data/app/models/spree/promotion/rules/taxon.rb +0 -91
- data/app/models/spree/promotion/rules/user.rb +0 -34
- data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
- data/app/models/spree/promotion/rules/user_role.rb +0 -45
- data/app/models/spree/promotion.rb +0 -271
- data/app/models/spree/promotion_action.rb +0 -47
- data/app/models/spree/promotion_category.rb +0 -8
- data/app/models/spree/promotion_chooser.rb +0 -34
- data/app/models/spree/promotion_code/batch_builder.rb +0 -64
- data/app/models/spree/promotion_code.rb +0 -54
- data/app/models/spree/promotion_code_batch.rb +0 -27
- data/app/models/spree/promotion_handler/cart.rb +0 -75
- data/app/models/spree/promotion_handler/coupon.rb +0 -123
- data/app/models/spree/promotion_handler/page.rb +0 -26
- data/app/models/spree/promotion_handler/shipping.rb +0 -61
- data/app/models/spree/promotion_rule.rb +0 -55
- data/app/models/spree/promotion_rule_role.rb +0 -8
- data/app/models/spree/promotion_rule_store.rb +0 -10
- data/app/models/spree/promotion_rule_taxon.rb +0 -8
- data/app/models/spree/promotion_rule_user.rb +0 -10
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
- data/bin/rails +0 -13
- data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
- data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
- data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
- data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
- data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
- data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
- data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
- data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
- data/lib/generators/spree/dummy/templates/rails/script/rails +0 -6
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
- data/lib/spree/permission_sets/promotion_display.rb +0 -25
- data/lib/spree/permission_sets/promotion_management.rb +0 -25
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_factory.rb +0 -98
@@ -1,165 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# This method expects a params hash in the format of:
|
9
|
-
#
|
10
|
-
# {
|
11
|
-
# payment_source: {
|
12
|
-
# # The keys here are spree_payment_method.id's
|
13
|
-
# '1' => {...source attributes for payment method 1...},
|
14
|
-
# '2' => {...source attributes for payment method 2...},
|
15
|
-
# },
|
16
|
-
# order: {
|
17
|
-
# # Note that only a single entry is expected/handled in this array
|
18
|
-
# payments_attributes: [
|
19
|
-
# {
|
20
|
-
# payment_method_id: '1',
|
21
|
-
# },
|
22
|
-
# ],
|
23
|
-
# ...other params...
|
24
|
-
# },
|
25
|
-
# ...other params...
|
26
|
-
# }
|
27
|
-
#
|
28
|
-
# And this method modifies the params into the format of:
|
29
|
-
#
|
30
|
-
# {
|
31
|
-
# order: {
|
32
|
-
# payments_attributes: [
|
33
|
-
# {
|
34
|
-
# payment_method_id: '1',
|
35
|
-
# source_attributes: {...source attributes for payment method 1...}
|
36
|
-
# },
|
37
|
-
# ],
|
38
|
-
# ...other params...
|
39
|
-
# },
|
40
|
-
# ...other params...
|
41
|
-
# }
|
42
|
-
#
|
43
|
-
def move_payment_source_into_payments_attributes(params)
|
44
|
-
# Step 1: Gather all the information and ensure all the pieces are there.
|
45
|
-
|
46
|
-
return params if params[:payment_source].blank?
|
47
|
-
|
48
|
-
payment_params = params[:order] &&
|
49
|
-
params[:order][:payments_attributes] &&
|
50
|
-
params[:order][:payments_attributes].first
|
51
|
-
return params if payment_params.blank?
|
52
|
-
|
53
|
-
payment_method_id = payment_params[:payment_method_id]
|
54
|
-
return params if payment_method_id.blank?
|
55
|
-
|
56
|
-
source_params = params[:payment_source][payment_method_id]
|
57
|
-
return params if source_params.blank?
|
58
|
-
|
59
|
-
# Step 2: Perform the modifications.
|
60
|
-
|
61
|
-
payment_params[:source_attributes] = source_params
|
62
|
-
params.delete(:payment_source)
|
63
|
-
|
64
|
-
params
|
65
|
-
end
|
66
|
-
|
67
|
-
# This method handles the awkwardness of how the html forms are currently
|
68
|
-
# set up for frontend.
|
69
|
-
#
|
70
|
-
# This method expects a params hash in the format of:
|
71
|
-
#
|
72
|
-
# {
|
73
|
-
# order: {
|
74
|
-
# wallet_payment_source_id: '123',
|
75
|
-
# ...other params...
|
76
|
-
# },
|
77
|
-
# cvc_confirm: '456', # optional
|
78
|
-
# ...other params...
|
79
|
-
# }
|
80
|
-
#
|
81
|
-
# And this method modifies the params into the format of:
|
82
|
-
#
|
83
|
-
# {
|
84
|
-
# order: {
|
85
|
-
# payments_attributes: [
|
86
|
-
# {
|
87
|
-
# source_attributes: {
|
88
|
-
# wallet_payment_source_id: '123',
|
89
|
-
# verification_value: '456',
|
90
|
-
# },
|
91
|
-
# },
|
92
|
-
# ]
|
93
|
-
# ...other params...
|
94
|
-
# },
|
95
|
-
# ...other params...
|
96
|
-
# }
|
97
|
-
#
|
98
|
-
def move_wallet_payment_source_id_into_payments_attributes(params)
|
99
|
-
return params if params[:order].blank?
|
100
|
-
|
101
|
-
wallet_payment_source_id = params[:order][:wallet_payment_source_id].presence
|
102
|
-
cvc_confirm = params[:cvc_confirm].presence
|
103
|
-
|
104
|
-
return params if wallet_payment_source_id.nil?
|
105
|
-
|
106
|
-
params[:order][:payments_attributes] = [
|
107
|
-
{
|
108
|
-
source_attributes: {
|
109
|
-
wallet_payment_source_id: wallet_payment_source_id,
|
110
|
-
verification_value: cvc_confirm
|
111
|
-
}
|
112
|
-
}
|
113
|
-
]
|
114
|
-
|
115
|
-
params[:order].delete(:wallet_payment_source_id)
|
116
|
-
params.delete(:cvc_confirm)
|
117
|
-
|
118
|
-
params
|
119
|
-
end
|
120
|
-
|
121
|
-
# This is a strange thing to do since an order can have multiple payments
|
122
|
-
# but we always assume that it only has a single payment and that its
|
123
|
-
# amount should be the current order total after store credit is applied.
|
124
|
-
# We should reconsider this method and its usage at some point.
|
125
|
-
#
|
126
|
-
# This method expects a params hash in the format of:
|
127
|
-
#
|
128
|
-
# {
|
129
|
-
# order: {
|
130
|
-
# # Note that only a single entry is expected/handled in this array
|
131
|
-
# payments_attributes: [
|
132
|
-
# {
|
133
|
-
# ...params...
|
134
|
-
# },
|
135
|
-
# ],
|
136
|
-
# ...other params...
|
137
|
-
# },
|
138
|
-
# ...other params...
|
139
|
-
# }
|
140
|
-
#
|
141
|
-
# And this method modifies the params into the format of:
|
142
|
-
#
|
143
|
-
# {
|
144
|
-
# order: {
|
145
|
-
# payments_attributes: [
|
146
|
-
# {
|
147
|
-
# ...params...
|
148
|
-
# amount: <the order total after store credit>,
|
149
|
-
# },
|
150
|
-
# ],
|
151
|
-
# ...other params...
|
152
|
-
# },
|
153
|
-
# ...other params...
|
154
|
-
# }
|
155
|
-
#
|
156
|
-
def set_payment_parameters_amount(params, order)
|
157
|
-
return params if params[:order].blank?
|
158
|
-
return params if params[:order][:payments_attributes].blank?
|
159
|
-
|
160
|
-
params[:order][:payments_attributes].first[:amount] = order.order_total_after_store_credit
|
161
|
-
|
162
|
-
params
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,19 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
included do
|
10
|
-
helper_method :current_pricing_options
|
11
|
-
end
|
12
|
-
|
13
|
-
def current_pricing_options
|
14
|
-
Spree::Config.pricing_options_class.from_context(self)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,16 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Spree::Config.searcher_class.new(params).tap do |searcher|
|
9
|
-
searcher.current_user = spree_current_user
|
10
|
-
searcher.pricing_options = current_pricing_options
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,19 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
included do
|
10
|
-
helper_method :current_store
|
11
|
-
end
|
12
|
-
|
13
|
-
def current_store
|
14
|
-
@current_store ||= Spree::Config.current_store_selector_class.new(request).store
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,73 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Spree::PermittedAttributes
|
9
|
-
end
|
10
|
-
|
11
|
-
delegate(*Spree::PermittedAttributes::ATTRIBUTES,
|
12
|
-
to: :permitted_attributes,
|
13
|
-
prefix: :permitted)
|
14
|
-
|
15
|
-
def permitted_credit_card_update_attributes
|
16
|
-
permitted_attributes.credit_card_update_attributes + [
|
17
|
-
address_attributes: permitted_address_attributes
|
18
|
-
]
|
19
|
-
end
|
20
|
-
|
21
|
-
def permitted_payment_attributes
|
22
|
-
permitted_attributes.payment_attributes + [
|
23
|
-
source_attributes: permitted_source_attributes
|
24
|
-
]
|
25
|
-
end
|
26
|
-
|
27
|
-
def permitted_source_attributes
|
28
|
-
permitted_attributes.source_attributes + [
|
29
|
-
address_attributes: permitted_address_attributes
|
30
|
-
]
|
31
|
-
end
|
32
|
-
|
33
|
-
def permitted_checkout_address_attributes
|
34
|
-
permitted_attributes.checkout_address_attributes
|
35
|
-
end
|
36
|
-
|
37
|
-
def permitted_checkout_delivery_attributes
|
38
|
-
permitted_attributes.checkout_delivery_attributes
|
39
|
-
end
|
40
|
-
|
41
|
-
def permitted_checkout_payment_attributes
|
42
|
-
permitted_attributes.checkout_payment_attributes
|
43
|
-
end
|
44
|
-
|
45
|
-
def permitted_checkout_confirm_attributes
|
46
|
-
permitted_attributes.checkout_confirm_attributes
|
47
|
-
end
|
48
|
-
|
49
|
-
def permitted_order_attributes
|
50
|
-
permitted_checkout_address_attributes +
|
51
|
-
permitted_checkout_delivery_attributes +
|
52
|
-
permitted_checkout_payment_attributes +
|
53
|
-
permitted_checkout_confirm_attributes + [
|
54
|
-
line_items_attributes: permitted_line_item_attributes
|
55
|
-
]
|
56
|
-
end
|
57
|
-
|
58
|
-
def permitted_product_attributes
|
59
|
-
permitted_attributes.product_attributes + [
|
60
|
-
product_properties_attributes: permitted_product_properties_attributes
|
61
|
-
]
|
62
|
-
end
|
63
|
-
|
64
|
-
def permitted_user_attributes
|
65
|
-
permitted_attributes.user_attributes + [
|
66
|
-
bill_address_attributes: permitted_address_attributes,
|
67
|
-
ship_address_attributes: permitted_address_attributes
|
68
|
-
]
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
data/lib/spree/core/engine.rb
CHANGED
@@ -21,6 +21,11 @@ module Spree
|
|
21
21
|
[Symbol, BigDecimal, ActiveSupport::HashWithIndifferentAccess]
|
22
22
|
end
|
23
23
|
|
24
|
+
initializer "spree.zeitwerk_ignores" do
|
25
|
+
old_helpers = Engine.root.join("lib", "spree", "core", "controller_helpers", "*", "*.rb")
|
26
|
+
Rails.application.autoloaders.main.ignore(old_helpers)
|
27
|
+
end
|
28
|
+
|
24
29
|
initializer "spree.environment", before: :load_config_initializers do |app|
|
25
30
|
app.config.spree = Spree::Config.environment
|
26
31
|
end
|
@@ -56,6 +61,7 @@ module Spree
|
|
56
61
|
Spree::Bus.clear
|
57
62
|
|
58
63
|
%i[
|
64
|
+
order_emptied
|
59
65
|
order_finalized
|
60
66
|
order_recalculated
|
61
67
|
reimbursement_reimbursed
|
@@ -67,12 +73,14 @@ module Spree
|
|
67
73
|
end
|
68
74
|
|
69
75
|
# Load in mailer previews for apps to use in development.
|
70
|
-
initializer "spree.core.action_mailer.set_preview_path", after: "action_mailer.
|
71
|
-
|
72
|
-
solidus_preview_path = Spree::Core::Engine.root.join 'lib/spree/mailer_previews'
|
76
|
+
initializer "spree.core.action_mailer.set_preview_path", after: "action_mailer.set_autoload_paths" do
|
77
|
+
solidus_preview_path = Spree::Core::Engine.root.join("lib/spree/mailer_previews")
|
73
78
|
|
74
|
-
|
75
|
-
|
79
|
+
if ActionMailer::Base.respond_to? :preview_paths # Rails 7.1+
|
80
|
+
ActionMailer::Base.preview_paths << solidus_preview_path.to_s
|
81
|
+
else
|
82
|
+
ActionMailer::Base.preview_path = "{#{ActionMailer::Base.preview_path},#{solidus_preview_path}}"
|
83
|
+
end
|
76
84
|
end
|
77
85
|
|
78
86
|
initializer "spree.deprecator" do |app|
|
@@ -9,9 +9,41 @@ module Spree
|
|
9
9
|
add_class_set :shipping_methods
|
10
10
|
add_class_set :tax_rates
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
def promotion_actions_create_adjustments
|
13
|
+
promotion_config.calculators["Spree::Promotion::Actions::CreateAdjustment"]
|
14
|
+
end
|
15
|
+
deprecate :promotion_actions_create_adjustments, deprecator: Spree.deprecator
|
16
|
+
|
17
|
+
def promotion_actions_create_adjustments=(value)
|
18
|
+
promotion_config.calculators["Spree::Promotion::Actions::CreateAdjustment"] = value
|
19
|
+
end
|
20
|
+
deprecate :promotion_actions_create_adjustments=, deprecator: Spree.deprecator
|
21
|
+
|
22
|
+
def promotion_actions_create_item_adjustments
|
23
|
+
promotion_config.calculators["Spree::Promotion::Actions::CreateItemAdjustments"]
|
24
|
+
end
|
25
|
+
deprecate :promotion_actions_create_item_adjustments, deprecator: Spree.deprecator
|
26
|
+
|
27
|
+
def promotion_actions_create_item_adjustments=(value)
|
28
|
+
promotion_config.calculators["Spree::Promotion::Actions::CreateItemAdjustments"] = value
|
29
|
+
end
|
30
|
+
deprecate :promotion_actions_create_item_adjustments=, deprecator: Spree.deprecator
|
31
|
+
|
32
|
+
def promotion_actions_create_quantity_adjustments
|
33
|
+
promotion_config.calculators["Spree::Promotion::Actions::CreateQuantityAdjustments"]
|
34
|
+
end
|
35
|
+
deprecate :promotion_actions_create_quantity_adjustments, deprecator: Spree.deprecator
|
36
|
+
|
37
|
+
def promotion_actions_create_quantity_adjustments=(value)
|
38
|
+
promotion_config.calculators["Spree::Promotion::Actions::CreateQuantityAdjustments"] = value
|
39
|
+
end
|
40
|
+
deprecate :promotion_actions_create_quantity_adjustments=, deprecator: Spree.deprecator
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def promotion_config
|
45
|
+
Spree::Config.promotions
|
46
|
+
end
|
15
47
|
end
|
16
48
|
end
|
17
49
|
end
|
@@ -4,11 +4,32 @@ module Spree
|
|
4
4
|
module Core
|
5
5
|
class Environment
|
6
6
|
class Promotions
|
7
|
-
|
7
|
+
class << self
|
8
|
+
private
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
def promotions_deprecation_message(method)
|
11
|
+
"The `Rails.application.config.spree.promotions.#{method}` preference is deprecated and will be removed in Solidus 5.0. " \
|
12
|
+
"Use `Spree::Config.promotions.#{method}` instead."
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
delegate :rules, :rules=, to: :promotion_config
|
17
|
+
deprecate rules: promotions_deprecation_message("rules"), deprecator: Spree.deprecator
|
18
|
+
deprecate "rules=": promotions_deprecation_message("rules="), deprecator: Spree.deprecator
|
19
|
+
|
20
|
+
delegate :actions, :actions=, to: :promotion_config
|
21
|
+
deprecate actions: promotions_deprecation_message("actions"), deprecator: Spree.deprecator
|
22
|
+
deprecate "actions=": promotions_deprecation_message("actions="), deprecator: Spree.deprecator
|
23
|
+
|
24
|
+
delegate :shipping_actions, :shipping_actions=, to: :promotion_config
|
25
|
+
deprecate shipping_actions: promotions_deprecation_message("shipping_actions"), deprecator: Spree.deprecator
|
26
|
+
deprecate "shipping_actions=": promotions_deprecation_message("shipping_actions="), deprecator: Spree.deprecator
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def promotion_config
|
31
|
+
Spree::Config.promotions
|
32
|
+
end
|
12
33
|
end
|
13
34
|
end
|
14
35
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'spree/core/class_constantizer'
|
4
|
+
require 'spree/core/nested_class_set'
|
4
5
|
|
5
6
|
module Spree
|
6
7
|
module Core
|
@@ -8,10 +9,10 @@ module Spree
|
|
8
9
|
extend ActiveSupport::Concern
|
9
10
|
|
10
11
|
class_methods do
|
11
|
-
def add_class_set(name)
|
12
|
+
def add_class_set(name, default: [])
|
12
13
|
define_method(name) do
|
13
14
|
set = instance_variable_get("@#{name}")
|
14
|
-
set ||= send("#{name}=",
|
15
|
+
set ||= send("#{name}=", default)
|
15
16
|
set
|
16
17
|
end
|
17
18
|
|
@@ -21,6 +22,19 @@ module Spree
|
|
21
22
|
instance_variable_set("@#{name}", set)
|
22
23
|
end
|
23
24
|
end
|
25
|
+
|
26
|
+
def add_nested_class_set(name, default: {})
|
27
|
+
define_method(name) do
|
28
|
+
set = instance_variable_get(:"@#{name}")
|
29
|
+
set ||= send(:"#{name}=", default)
|
30
|
+
set
|
31
|
+
end
|
32
|
+
|
33
|
+
define_method(:"#{name}=") do |hash|
|
34
|
+
set = Spree::Core::NestedClassSet.new(hash)
|
35
|
+
instance_variable_set(:"@#{name}", set)
|
36
|
+
end
|
37
|
+
end
|
24
38
|
end
|
25
39
|
end
|
26
40
|
end
|
@@ -74,7 +74,7 @@ module Spree
|
|
74
74
|
# able to find the line item if line_item.variant_id |= iu.variant_id
|
75
75
|
shipment.inventory_units.new(
|
76
76
|
variant_id: inventory_unit[:variant_id],
|
77
|
-
line_item:
|
77
|
+
line_item:
|
78
78
|
)
|
79
79
|
end
|
80
80
|
|
@@ -91,7 +91,7 @@ module Spree
|
|
91
91
|
shipment.save!
|
92
92
|
|
93
93
|
shipping_method = Spree::ShippingMethod.find_by(name: target[:shipping_method]) || Spree::ShippingMethod.find_by!(admin_name: target[:shipping_method])
|
94
|
-
rate = shipment.shipping_rates.create!(shipping_method
|
94
|
+
rate = shipment.shipping_rates.create!(shipping_method:,
|
95
95
|
cost: target[:cost])
|
96
96
|
shipment.selected_shipping_rate_id = rate.id
|
97
97
|
shipment.update_amounts
|
@@ -129,7 +129,7 @@ module Spree
|
|
129
129
|
return [] unless adjustments
|
130
130
|
adjustments.each do |target|
|
131
131
|
adjustment = order.adjustments.build(
|
132
|
-
order
|
132
|
+
order:,
|
133
133
|
amount: target[:amount].to_d,
|
134
134
|
label: target[:label]
|
135
135
|
)
|
@@ -141,7 +141,7 @@ module Spree
|
|
141
141
|
def self.create_payments_from_params(payments_hash, order)
|
142
142
|
return [] unless payments_hash
|
143
143
|
payments_hash.each do |target|
|
144
|
-
payment = order.payments.build
|
144
|
+
payment = order.payments.build(order:)
|
145
145
|
payment.amount = target[:amount].to_f
|
146
146
|
# Order API should be using state as that's the normal payment field.
|
147
147
|
# spree_wombat serializes payment state as status so imported orders should fall back to status field.
|
@@ -170,7 +170,7 @@ module Spree
|
|
170
170
|
def self.ensure_variant_id_from_params(hash)
|
171
171
|
sku = hash.delete(:sku)
|
172
172
|
unless hash[:variant_id].present?
|
173
|
-
hash[:variant_id] = Spree::Variant.with_prices.find_by!(sku:
|
173
|
+
hash[:variant_id] = Spree::Variant.with_prices.find_by!(sku:).id
|
174
174
|
end
|
175
175
|
hash
|
176
176
|
end
|
@@ -18,7 +18,7 @@ module Spree
|
|
18
18
|
if product.save
|
19
19
|
variants_attrs.each do |variant_attribute|
|
20
20
|
# make sure the product is assigned before the options=
|
21
|
-
product.variants.create({ product:
|
21
|
+
product.variants.create({ product: }.merge(variant_attribute))
|
22
22
|
end
|
23
23
|
|
24
24
|
set_up_options
|
@@ -35,7 +35,7 @@ module Spree
|
|
35
35
|
product.variants.find(variant_attribute['id'].to_i).update(variant_attribute)
|
36
36
|
else
|
37
37
|
# make sure the product is assigned before the options=
|
38
|
-
product.variants.create({ product:
|
38
|
+
product.variants.create({ product: }.merge(variant_attribute))
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -49,7 +49,7 @@ module Spree
|
|
49
49
|
|
50
50
|
def set_up_options
|
51
51
|
options_attrs.each do |name|
|
52
|
-
option_type = Spree::OptionType.where(name:
|
52
|
+
option_type = Spree::OptionType.where(name:).first_or_initialize do |ot|
|
53
53
|
ot.presentation = name
|
54
54
|
ot.save!
|
55
55
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spree/core/class_constantizer"
|
4
|
+
|
5
|
+
module Spree
|
6
|
+
module Core
|
7
|
+
class NestedClassSet
|
8
|
+
attr_reader :klass_sets
|
9
|
+
|
10
|
+
def initialize(hash = {})
|
11
|
+
@klass_sets = hash.map do |key, value|
|
12
|
+
[
|
13
|
+
key.to_s,
|
14
|
+
ClassConstantizer::Set.new(default: value)
|
15
|
+
]
|
16
|
+
end.to_h
|
17
|
+
end
|
18
|
+
|
19
|
+
def [](klass)
|
20
|
+
klass_sets[klass.to_s] || []
|
21
|
+
end
|
22
|
+
|
23
|
+
def []=(klass, klasses)
|
24
|
+
klass_sets[klass.to_s] = ClassConstantizer::Set.new(default: klasses.map(&:to_s))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Spree
|
4
|
+
module Core
|
5
|
+
class NullPromotionConfiguration < Spree::Preferences::Configuration
|
6
|
+
include Spree::Core::EnvironmentExtension
|
7
|
+
|
8
|
+
# order_adjuster_class allows extensions to provide their own Order Adjuster
|
9
|
+
class_name_attribute :order_adjuster_class, default: 'Spree::NullPromotionAdjuster'
|
10
|
+
|
11
|
+
# Allows providing a different coupon code handler.
|
12
|
+
# @!attribute [rw] coupon_code_handler_class
|
13
|
+
# @see Spree::NullPromotionHandler
|
14
|
+
# @return [Class] an object that conforms to the API of
|
15
|
+
# the standard coupon code handler class
|
16
|
+
# Spree::NullPromotionHandler.
|
17
|
+
class_name_attribute :coupon_code_handler_class, default: 'Spree::NullPromotionHandler'
|
18
|
+
|
19
|
+
# Allows providing a different promotion finder.
|
20
|
+
# @!attribute [rw] promotion_finder_class
|
21
|
+
# @see Spree::NullPromotionFinder
|
22
|
+
# @return [Class] an object that conforms to the API of
|
23
|
+
# the standard promotion finder class
|
24
|
+
# Spree::NullPromotionFinder.
|
25
|
+
class_name_attribute :promotion_finder_class, default: 'Spree::NullPromotionFinder'
|
26
|
+
|
27
|
+
# Allows getting and setting `Spree::Config.promotion_code_batch_mailer_class`.
|
28
|
+
# Both will issue a deprecation warning.
|
29
|
+
class_name_attribute :promotion_code_batch_mailer_class, default: 'Spree::DeprecatedConfigurableClass'
|
30
|
+
deprecate :promotion_code_batch_mailer_class, :promotion_code_batch_mailer_class=, deprecator: Spree.deprecator
|
31
|
+
|
32
|
+
# Allows getting and setting `Spree::Config.promotion_chooser_class`.
|
33
|
+
# Both will issue a deprecation warning.
|
34
|
+
class_name_attribute :promotion_chooser_class, default: 'Spree::DeprecatedConfigurableClass'
|
35
|
+
deprecate :promotion_chooser_class, :promotion_chooser_class=, deprecator: Spree.deprecator
|
36
|
+
|
37
|
+
# Allows getting and setting rules. Deprecated.
|
38
|
+
# @!attribute [rw] rules
|
39
|
+
# @return [Array] a set of rules
|
40
|
+
add_class_set :rules
|
41
|
+
deprecate :rules, :rules=, deprecator: Spree.deprecator
|
42
|
+
|
43
|
+
# Allows getting and setting actions. Deprecated.
|
44
|
+
# @!attribute [rw] actions
|
45
|
+
# @return [Array] a set of actions
|
46
|
+
add_class_set :actions
|
47
|
+
deprecate :actions, :actions=, deprecator: Spree.deprecator
|
48
|
+
|
49
|
+
# Allows getting and setting shipping actions. Deprecated.
|
50
|
+
# @!attribute [rw] shipping_actions
|
51
|
+
# @return [Array] a set of shipping_actions
|
52
|
+
add_class_set :shipping_actions
|
53
|
+
deprecate :shipping_actions, :shipping_actions=, deprecator: Spree.deprecator
|
54
|
+
|
55
|
+
# Allows getting an setting calculators for actions. Deprecated.
|
56
|
+
# @!attribute [rw] calculators
|
57
|
+
# @return [Spree::Core::NestedClassSet] a set of calculators
|
58
|
+
add_nested_class_set :calculators
|
59
|
+
deprecate :calculators, :calculators=, deprecator: Spree.deprecator
|
60
|
+
|
61
|
+
# Allows providing a different promotion shipping promotion handler.
|
62
|
+
# @!attribute [rw] shipping_promotion_handler_class
|
63
|
+
# @see Spree::NullPromotionHandler
|
64
|
+
# @return [Class] an object that conforms to the API of
|
65
|
+
# the standard promotion finder class
|
66
|
+
# Spree::NullPromotionHandler.
|
67
|
+
class_name_attribute :shipping_promotion_handler_class, default: 'Spree::NullPromotionHandler'
|
68
|
+
deprecate :shipping_promotion_handler_class, deprecator: Spree.deprecator
|
69
|
+
deprecate :shipping_promotion_handler_class=, deprecator: Spree.deprecator
|
70
|
+
|
71
|
+
# Allows providing a different promotion advertiser.
|
72
|
+
# @!attribute [rw] advertiser_class
|
73
|
+
# @see Spree::NullPromotionAdvertiser
|
74
|
+
# @return [Class] an object that conforms to the API of
|
75
|
+
# the standard promotion advertiser class
|
76
|
+
# Spree::NullPromotionAdvertiser.
|
77
|
+
class_name_attribute :advertiser_class, default: 'Spree::NullPromotionAdvertiser'
|
78
|
+
|
79
|
+
# !@attribute [rw] promotion_api_attributes
|
80
|
+
# @return [Array<Symbol>] Attributes to be returned by the API for a promotion
|
81
|
+
preference :promotion_api_attributes, :array, default: []
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|