spree_core 4.3.0 → 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/finders/spree/option_values/find_available.rb +9 -1
- data/app/finders/spree/products/find.rb +2 -4
- data/app/finders/spree/taxons/find.rb +1 -1
- data/app/helpers/spree/base_helper.rb +12 -13
- data/app/helpers/spree/currency_helper.rb +1 -1
- data/app/helpers/spree/locale_helper.rb +6 -2
- data/app/helpers/spree/products_helper.rb +10 -19
- data/app/jobs/spree/base_job.rb +4 -0
- data/app/jobs/spree/stock_locations/stock_items/create_job.rb +13 -0
- data/app/jobs/spree/variants/remove_from_incomplete_orders_job.rb +9 -0
- data/app/jobs/spree/variants/remove_line_item_job.rb +9 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +1 -1
- data/app/models/concerns/spree/default_price.rb +1 -1
- data/app/models/concerns/spree/display_link.rb +17 -29
- data/app/models/concerns/spree/display_money.rb +3 -1
- data/app/models/concerns/spree/image_methods.rb +21 -9
- data/app/models/concerns/spree/memoized_data.rb +1 -1
- data/app/models/concerns/spree/metadata.rb +23 -0
- data/app/models/concerns/spree/multi_store_resource.rb +1 -1
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/number_identifier.rb +18 -0
- data/app/models/concerns/spree/product_scopes.rb +59 -27
- data/app/models/concerns/spree/unique_name.rb +10 -0
- data/app/models/concerns/spree/user_methods.rb +9 -0
- data/app/models/concerns/spree/user_reporting.rb +1 -1
- data/app/models/concerns/spree/user_roles.rb +20 -2
- data/app/models/spree/ability.rb +11 -3
- data/app/models/spree/address.rb +11 -3
- data/app/models/spree/adjustment.rb +1 -0
- data/app/models/spree/asset/support/active_storage.rb +3 -2
- data/app/models/spree/asset.rb +4 -0
- data/app/models/spree/base.rb +14 -0
- data/app/models/spree/calculator/flat_rate.rb +1 -1
- data/app/models/spree/calculator/flexi_rate.rb +1 -1
- data/app/models/spree/calculator/price_sack.rb +1 -1
- data/app/models/spree/calculator/shipping/digital_delivery.rb +22 -0
- data/app/models/spree/calculator/shipping/flat_rate.rb +1 -1
- data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -1
- data/app/models/spree/calculator/shipping/per_item.rb +1 -1
- data/app/models/spree/calculator/shipping/price_sack.rb +1 -1
- data/app/models/spree/calculator.rb +2 -2
- data/app/models/spree/cms_page.rb +7 -3
- data/app/models/spree/cms_section.rb +13 -13
- data/app/models/spree/cms_section_image.rb +15 -0
- data/app/models/spree/cms_section_image_one.rb +4 -0
- data/app/models/spree/cms_section_image_three.rb +4 -0
- data/app/models/spree/cms_section_image_two.rb +4 -0
- data/app/models/spree/country.rb +4 -2
- data/app/models/spree/credit_card.rb +17 -1
- data/app/models/spree/customer_return.rb +6 -1
- data/app/models/spree/digital.rb +19 -0
- data/app/models/spree/digital_link.rb +57 -0
- data/app/models/spree/fulfilment_changer.rb +1 -1
- data/app/models/spree/gateway/bogus.rb +5 -1
- data/app/models/spree/icon.rb +5 -1
- data/app/models/spree/image/configuration/active_storage.rb +6 -19
- data/app/models/spree/image.rb +3 -3
- data/app/models/spree/inventory_unit.rb +5 -2
- data/app/models/spree/legacy_user.rb +2 -2
- data/app/models/spree/line_item.rb +15 -4
- data/app/models/spree/linkable/homepage.rb +3 -0
- data/app/models/spree/linkable/uri.rb +3 -0
- data/app/models/spree/log_entry.rb +9 -1
- data/app/models/spree/menu.rb +3 -0
- data/app/models/spree/menu_item.rb +7 -11
- data/app/models/spree/option_type.rb +8 -4
- data/app/models/spree/option_value.rb +7 -0
- data/app/models/spree/order/address_book.rb +1 -0
- data/app/models/spree/order/checkout.rb +7 -1
- data/app/models/spree/order/digital.rb +33 -0
- data/app/models/spree/order.rb +45 -24
- data/app/models/spree/order_inventory.rb +1 -1
- data/app/models/spree/order_merger.rb +1 -1
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/payment/processing.rb +2 -1
- data/app/models/spree/payment.rb +32 -5
- data/app/models/spree/payment_capture_event.rb +4 -0
- data/app/models/spree/payment_method/store_credit.rb +1 -1
- data/app/models/spree/payment_method.rb +6 -1
- data/app/models/spree/payment_source.rb +10 -0
- data/app/models/spree/preference.rb +6 -1
- data/app/models/spree/price.rb +4 -1
- data/app/models/spree/product.rb +73 -30
- data/app/models/spree/product_property.rb +1 -0
- data/app/models/spree/promotion/rules/option_value.rb +2 -2
- data/app/models/spree/promotion/rules/product.rb +1 -1
- data/app/models/spree/promotion.rb +9 -1
- data/app/models/spree/promotion_action.rb +1 -1
- data/app/models/spree/promotion_rule.rb +1 -1
- data/app/models/spree/promotion_rule_user.rb +1 -1
- data/app/models/spree/property.rb +4 -0
- data/app/models/spree/prototype.rb +5 -0
- data/app/models/spree/refund.rb +10 -0
- data/app/models/spree/reimbursement.rb +4 -1
- data/app/models/spree/return_authorization.rb +7 -2
- data/app/models/spree/return_item.rb +5 -1
- data/app/models/spree/role.rb +3 -3
- data/app/models/spree/role_user.rb +1 -1
- data/app/models/spree/shipment.rb +11 -30
- data/app/models/spree/shipping_category.rb +4 -1
- data/app/models/spree/shipping_method.rb +8 -0
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/state_change.rb +1 -1
- data/app/models/spree/stock/availability_validator.rb +9 -3
- data/app/models/spree/stock/content_item.rb +1 -1
- data/app/models/spree/stock/quantifier.rb +2 -2
- data/app/models/spree/stock/splitter/digital.rb +35 -0
- data/app/models/spree/stock_item.rb +7 -2
- data/app/models/spree/stock_location.rb +23 -31
- data/app/models/spree/stock_movement.rb +7 -0
- data/app/models/spree/stock_transfer.rb +6 -6
- data/app/models/spree/store.rb +58 -20
- data/app/models/spree/store_credit.rb +10 -3
- data/app/models/spree/store_credit_category.rb +2 -0
- data/app/models/spree/store_credit_event.rb +2 -7
- data/app/models/spree/store_credit_type.rb +2 -0
- data/app/models/spree/store_favicon_image.rb +17 -0
- data/app/models/spree/store_logo.rb +9 -0
- data/app/models/spree/store_mailer_logo.rb +13 -0
- data/app/models/spree/tax_category.rb +9 -1
- data/app/models/spree/tax_rate.rb +9 -2
- data/app/models/spree/taxon.rb +14 -0
- data/app/models/spree/taxon_image/configuration/active_storage.rb +6 -12
- data/app/models/spree/taxon_image.rb +3 -2
- data/app/models/spree/taxonomy.rb +11 -1
- data/app/models/spree/variant.rb +63 -24
- data/app/models/spree/wished_item.rb +33 -0
- data/app/models/spree/wishlist.rb +38 -0
- data/app/models/spree/zone.rb +11 -6
- data/app/services/spree/account/addresses/create.rb +1 -17
- data/app/services/spree/account/addresses/update.rb +1 -22
- data/app/services/spree/addresses/create.rb +24 -0
- data/app/services/spree/addresses/helper.rb +41 -0
- data/app/services/spree/addresses/update.rb +32 -0
- data/app/services/spree/cart/add_item.rb +4 -2
- data/app/services/spree/cart/create.rb +4 -2
- data/app/services/spree/cart/remove_line_item.rb +1 -0
- data/app/services/spree/cart/update.rb +2 -2
- data/app/services/spree/checkout/add_store_credit.rb +4 -1
- data/app/services/spree/checkout/select_shipping_method.rb +49 -0
- data/app/services/spree/checkout/update.rb +3 -10
- data/app/services/spree/line_items/create.rb +20 -0
- data/app/services/spree/line_items/destroy.rb +18 -0
- data/app/services/spree/line_items/helper.rb +11 -0
- data/app/services/spree/line_items/update.rb +17 -0
- data/app/services/spree/orders/approve.rb +18 -0
- data/app/services/spree/orders/cancel.rb +18 -0
- data/app/services/spree/payments/create.rb +66 -0
- data/app/services/spree/seeds/all.rb +26 -0
- data/app/services/spree/seeds/countries.rb +50 -0
- data/app/services/spree/seeds/default_reimbursement_types.rb +12 -0
- data/app/services/spree/seeds/roles.rb +11 -0
- data/app/services/spree/seeds/shipping_categories.rb +12 -0
- data/app/services/spree/seeds/states.rb +72 -0
- data/app/services/spree/seeds/stock_locations.rb +18 -0
- data/app/services/spree/seeds/store_credit_categories.rb +14 -0
- data/app/services/spree/seeds/stores.rb +31 -0
- data/app/services/spree/seeds/zones.rb +39 -0
- data/app/services/spree/shipments/add_item.rb +32 -0
- data/app/services/spree/shipments/change_state.rb +14 -0
- data/app/services/spree/shipments/create.rb +48 -0
- data/app/services/spree/shipments/helper.rb +23 -0
- data/app/services/spree/shipments/remove_item.rb +55 -0
- data/app/services/spree/shipments/update.rb +40 -0
- data/app/services/spree/stock_locations/stock_items/create.rb +31 -0
- data/app/services/spree/variants/remove_line_items.rb +15 -0
- data/app/services/spree/wallet/create_payment_source.rb +26 -0
- data/app/validators/spree/url_validator.rb +23 -0
- data/brakeman.ignore +20 -0
- data/config/initializers/active_storage.rb +0 -6
- data/config/locales/en.yml +19 -170
- data/config/routes.rb +43 -0
- data/db/migrate/20210914000000_spree_four_three.rb +1205 -0
- data/db/migrate/20210915064321_add_metadata_to_spree_orders.rb +13 -0
- data/db/migrate/20210915064322_add_metadata_to_spree_products.rb +13 -0
- data/db/migrate/20210915064323_add_metadata_to_spree_variants.rb +13 -0
- data/db/migrate/20210915064324_add_metadata_to_spree_line_items.rb +13 -0
- data/db/migrate/20210915064325_add_metadata_to_spree_shipments.rb +13 -0
- data/db/migrate/20210915064326_add_metadata_to_spree_payments.rb +13 -0
- data/db/migrate/20210915064327_add_metadata_to_spree_taxons_and_taxonomies.rb +18 -0
- data/db/migrate/20210915064328_add_metadata_to_spree_stock_transfers.rb +13 -0
- data/db/migrate/20210915064329_add_metadata_to_spree_multiple_tables.rb +30 -0
- data/db/migrate/20210920090344_add_deleted_at_to_spree_stores.rb +8 -0
- data/db/migrate/20210921070812_rename_column_access_hash_to_token.rb +8 -0
- data/db/migrate/20210921070813_create_spree_wishlists.rb +18 -0
- data/db/migrate/20210921070814_create_spree_wished_products.rb +16 -0
- data/db/migrate/20210921070815_rename_spree_wished_products_to_spree_wished_items.rb +5 -0
- data/db/migrate/20210921090344_add_unique_stock_item_stock_location_variant_deleted_at_index.rb +5 -0
- data/db/migrate/20210929090344_create_stock_item_stock_location_id_variant_id_coalesce_deleted_at_unique_index.rb +32 -0
- data/db/migrate/20210929091444_create_spree_digital_links.rb +13 -0
- data/db/migrate/20210929093238_create_spree_digitals.rb +9 -0
- data/db/migrate/20210930143043_rename_secret_to_token_on_spree_digital_links.rb +5 -0
- data/db/migrate/20210930155649_add_settings_to_spree_stores.rb +11 -0
- data/db/migrate/20211201202851_update_linkable_resource_types.rb +10 -0
- data/db/migrate/20211203082008_add_settings_to_payment_methods.rb +11 -0
- data/db/migrate/20211229162122_disable_propagate_all_variants_by_default.rb +5 -0
- data/db/migrate/20220103082046_add_status_and_make_active_at_to_spree_products.rb +7 -0
- data/db/migrate/20220106230929_add_internal_note_to_spree_orders.rb +5 -0
- data/db/migrate/20220113052823_create_payment_sources.rb +22 -0
- data/db/migrate/20220117100333_add_make_active_at_to_spree_products.rb +17 -0
- data/db/migrate/20220120092821_add_metadata_to_spree_tax_rates.rb +13 -0
- data/db/migrate/20220201103922_add_first_name_and_last_name_to_spree_users.rb +9 -0
- data/db/migrate/20220222083546_add_barcode_to_spree_variants.rb +6 -0
- data/db/migrate/20220329113557_fix_cms_pages_unique_indexes.rb +8 -0
- data/db/migrate/20220613133029_add_metadata_to_spree_stock_items.rb +13 -0
- data/db/seeds.rb +1 -5
- data/lib/friendly_id/paranoia.rb +4 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +14 -3
- data/lib/generators/spree/dummy/templates/package.json +12 -0
- data/lib/generators/spree/dummy/templates/rails/database.yml +20 -18
- data/lib/generators/spree/dummy/templates/rails/test.rb +2 -0
- data/lib/spree/core/configuration.rb +90 -0
- data/lib/spree/core/controller_helpers/auth.rb +7 -5
- data/lib/spree/core/controller_helpers/common.rb +15 -1
- data/lib/spree/core/controller_helpers/currency.rb +8 -6
- data/lib/spree/core/controller_helpers/locale.rb +8 -6
- data/lib/spree/core/controller_helpers/order.rb +4 -2
- data/lib/spree/core/controller_helpers/search.rb +1 -1
- data/lib/spree/core/controller_helpers/store.rb +5 -3
- data/lib/spree/core/dependencies.rb +130 -0
- data/lib/spree/core/engine.rb +54 -45
- data/lib/spree/core/importer/product.rb +1 -1
- data/lib/spree/core/number_generator.rb +0 -2
- data/{app/models/spree → lib/spree/core}/preferences/configuration.rb +5 -2
- data/{app/models/spree → lib/spree/core}/preferences/preferable.rb +3 -0
- data/{app/models/spree → lib/spree/core}/preferences/preferable_class_methods.rb +2 -0
- data/{app/models/spree → lib/spree/core}/preferences/store.rb +1 -1
- data/lib/spree/core/search/base.rb +9 -5
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +41 -13
- data/lib/spree/money.rb +2 -2
- data/lib/spree/permitted_attributes.rb +36 -16
- data/lib/spree/testing_support/authorization_helpers.rb +3 -1
- data/lib/spree/testing_support/capybara_config.rb +14 -19
- data/lib/spree/testing_support/capybara_ext.rb +1 -6
- data/lib/spree/testing_support/common_rake.rb +23 -4
- data/lib/spree/testing_support/factories/asset_factory.rb +15 -0
- data/lib/spree/testing_support/factories/cms_section_factory.rb +2 -2
- data/lib/spree/testing_support/factories/digital_factory.rb +10 -0
- data/lib/spree/testing_support/factories/digital_link_factory.rb +6 -0
- data/lib/spree/testing_support/factories/favicon_image_factory.rb +9 -0
- data/lib/spree/testing_support/factories/icon_factory.rb +3 -1
- data/lib/spree/testing_support/factories/image_factory.rb +3 -1
- data/lib/spree/testing_support/factories/log_entry_factory.rb +6 -0
- data/lib/spree/testing_support/factories/menu_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/order_factory.rb +6 -2
- data/lib/spree/testing_support/factories/payment_capture_event_factory.rb +6 -0
- data/lib/spree/testing_support/factories/payment_factory.rb +3 -3
- data/lib/spree/testing_support/factories/product_factory.rb +6 -1
- data/lib/spree/testing_support/factories/product_property_factory.rb +1 -0
- data/lib/spree/testing_support/factories/promotion_action_factory.rb +5 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_credit_factory.rb +7 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +1 -1
- data/lib/spree/testing_support/factories/role_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -0
- data/lib/spree/testing_support/factories/state_change_factory.rb +8 -0
- data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -0
- data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -3
- data/lib/spree/testing_support/factories/stock_transfer_factory.rb +9 -0
- data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
- data/lib/spree/testing_support/factories/store_factory.rb +1 -1
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -0
- data/lib/spree/testing_support/factories/taxon_image_factory.rb +3 -1
- data/lib/spree/testing_support/factories/user_factory.rb +6 -0
- data/lib/spree/testing_support/factories/variant_factory.rb +4 -0
- data/lib/spree/testing_support/factories/wished_variant_factory.rb +6 -0
- data/lib/spree/testing_support/factories/wishlist_factory.rb +18 -0
- data/lib/spree/testing_support/jobs.rb +9 -0
- data/lib/spree/testing_support/metadata.rb +54 -0
- data/lib/spree_core.rb +2 -1
- data/lib/tasks/core.rake +16 -4
- data/spree_core.gemspec +4 -4
- metadata +160 -366
- data/app/models/friendly_id/slug_decorator.rb +0 -9
- data/app/models/spree/app_configuration.rb +0 -89
- data/app/models/spree/app_dependencies.rb +0 -98
- data/app/services/spree/account/addresses/helper.rb +0 -43
- data/app/services/spree/build_localized_redirect_url.rb +0 -101
- data/db/default/spree/countries.rb +0 -24
- data/db/default/spree/default_reimbursement_type.rb +0 -1
- data/db/default/spree/roles.rb +0 -2
- data/db/default/spree/states.rb +0 -49
- data/db/default/spree/store_credit_categories.rb +0 -1
- data/db/default/spree/stores.rb +0 -21
- data/db/default/spree/zones.rb +0 -29
- data/db/migrate/20120831092320_spree_one_two.rb +0 -481
- data/db/migrate/20120831092359_spree_promo_one_two.rb +0 -45
- data/db/migrate/20120905145253_add_tax_rate_label.rb +0 -5
- data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +0 -5
- data/db/migrate/20120929093553_remove_unused_preference_columns.rb +0 -8
- data/db/migrate/20121009142519_add_lock_version_to_variant.rb +0 -5
- data/db/migrate/20121010142909_add_states_required_to_countries.rb +0 -5
- data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +0 -6
- data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +0 -11
- data/db/migrate/20121031162139_split_prices_from_variants.rb +0 -31
- data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +0 -9
- data/db/migrate/20121107184631_add_currency_to_line_items.rb +0 -5
- data/db/migrate/20121107194006_add_currency_to_orders.rb +0 -5
- data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +0 -5
- data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +0 -5
- data/db/migrate/20121124203911_add_position_to_taxonomies.rb +0 -5
- data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +0 -5
- data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +0 -6
- data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +0 -9
- data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +0 -6
- data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +0 -5
- data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +0 -9
- data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +0 -5
- data/db/migrate/20130211190146_create_spree_stock_items.rb +0 -14
- data/db/migrate/20130211191120_create_spree_stock_locations.rb +0 -11
- data/db/migrate/20130213191427_create_default_stock.rb +0 -33
- data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +0 -5
- data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +0 -5
- data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +0 -5
- data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +0 -6
- data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +0 -6
- data/db/migrate/20130228210442_create_shipping_method_zone.rb +0 -21
- data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +0 -5
- data/db/migrate/20130301162924_create_shipping_method_categories.rb +0 -13
- data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +0 -5
- data/db/migrate/20130304162240_create_spree_shipping_rates.rb +0 -24
- data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +0 -7
- data/db/migrate/20130305143310_create_stock_movements.rb +0 -12
- data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +0 -22
- data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +0 -5
- data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +0 -5
- data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +0 -5
- data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +0 -8
- data/db/migrate/20130319062004_change_orders_total_precision.rb +0 -8
- data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +0 -7
- data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +0 -7
- data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +0 -7
- data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +0 -7
- data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +0 -15
- data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +0 -9
- data/db/migrate/20130326175857_add_stock_location_to_rma.rb +0 -5
- data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +0 -15
- data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +0 -9
- data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +0 -14
- data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +0 -5
- data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +0 -13
- data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +0 -5
- data/db/migrate/20130417120035_update_adjustment_states.rb +0 -16
- data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +0 -15
- data/db/migrate/20130418125341_create_spree_stock_transfers.rb +0 -14
- data/db/migrate/20130423110707_drop_products_count_on_hand.rb +0 -5
- data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +0 -5
- data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +0 -23
- data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +0 -5
- data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +0 -5
- data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +0 -5
- data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +0 -5
- data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +0 -5
- data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +0 -9
- data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +0 -9
- data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +0 -6
- data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +0 -5
- data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +0 -7
- data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +0 -5
- data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +0 -6
- data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +0 -5
- data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +0 -6
- data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +0 -5
- data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +0 -5
- data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +0 -5
- data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +0 -10
- data/db/migrate/20130806022521_drop_spree_mail_methods.rb +0 -12
- data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +0 -8
- data/db/migrate/20130807024301_upgrade_adjustments.rb +0 -46
- data/db/migrate/20130807024302_rename_adjustment_fields.rb +0 -20
- data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +0 -5
- data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +0 -5
- data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +0 -5
- data/db/migrate/20130813140619_expand_order_number_size.rb +0 -9
- data/db/migrate/20130813232134_rename_activators_to_promotions.rb +0 -5
- data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +0 -5
- data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +0 -5
- data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +0 -16
- data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +0 -8
- data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +0 -15
- data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +0 -19
- data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +0 -5
- data/db/migrate/20130909115621_change_states_required_for_countries.rb +0 -9
- data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +0 -5
- data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +0 -5
- data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +0 -7
- data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +0 -16
- data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +0 -5
- data/db/migrate/20131107132123_add_tax_category_to_variants.rb +0 -6
- data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +0 -5
- data/db/migrate/20131118043959_add_included_to_adjustments.rb +0 -5
- data/db/migrate/20131118050234_rename_tax_total_fields.rb +0 -11
- data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -21
- data/db/migrate/20131120234456_add_updated_at_to_variants.rb +0 -5
- data/db/migrate/20131127001002_add_position_to_classifications.rb +0 -5
- data/db/migrate/20131211112807_create_spree_orders_promotions.rb +0 -8
- data/db/migrate/20131211192741_unique_shipping_method_categories.rb +0 -24
- data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +0 -5
- data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +0 -8
- data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +0 -5
- data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +0 -5
- data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +0 -6
- data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +0 -5
- data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +0 -6
- data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +0 -5
- data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +0 -5
- data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +0 -12
- data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +0 -5
- data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +0 -11
- data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +0 -5
- data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +0 -5
- data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +0 -6
- data/db/migrate/20140213184916_add_more_indexes.rb +0 -13
- data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +0 -5
- data/db/migrate/20140227112348_add_preference_store_to_everything.rb +0 -8
- data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +0 -13
- data/db/migrate/20140309023735_migrate_old_preferences.rb +0 -27
- data/db/migrate/20140309024355_create_spree_stores.rb +0 -25
- data/db/migrate/20140309033438_create_store_from_preferences.rb +0 -42
- data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +0 -6
- data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +0 -8
- data/db/migrate/20140331100557_add_additional_store_fields.rb +0 -8
- data/db/migrate/20140410141842_add_many_missing_indexes.rb +0 -18
- data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +0 -66
- data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +0 -5
- data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +0 -8
- data/db/migrate/20140518174634_add_token_to_spree_orders.rb +0 -5
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +0 -29
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +0 -10
- data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +0 -6
- data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +0 -6
- data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +0 -5
- data/db/migrate/20140625214618_create_spree_refunds.rb +0 -12
- data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +0 -12
- data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +0 -5
- data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +0 -10
- data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -55
- data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +0 -7
- data/db/migrate/20140710190048_drop_return_authorization_amount.rb +0 -5
- data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +0 -28
- data/db/migrate/20140713140527_create_spree_refund_reasons.rb +0 -14
- data/db/migrate/20140713142214_rename_return_authorization_reason.rb +0 -5
- data/db/migrate/20140715182625_create_spree_promotion_categories.rb +0 -11
- data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +0 -9
- data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +0 -6
- data/db/migrate/20140717155155_create_default_refund_reason.rb +0 -9
- data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +0 -7
- data/db/migrate/20140718133010_create_spree_customer_returns.rb +0 -9
- data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +0 -6
- data/db/migrate/20140718195325_create_friendly_id_slugs.rb +0 -15
- data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +0 -5
- data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +0 -13
- data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +0 -15
- data/db/migrate/20140725131539_create_spree_reimbursements.rb +0 -21
- data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +0 -5
- data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +0 -7
- data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +0 -5
- data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +0 -20
- data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +0 -10
- data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +0 -5
- data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +0 -9
- data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +0 -10
- data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +0 -7
- data/db/migrate/20140911173301_add_kind_to_zone.rb +0 -11
- data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +0 -5
- data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +0 -6
- data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +0 -5
- data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +0 -6
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +0 -8
- data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +0 -8
- data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
- data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +0 -8
- data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +0 -13
- data/db/migrate/20141105213646_update_classifications_positions.rb +0 -9
- data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +0 -5
- data/db/migrate/20141215232040_remove_token_permissions_table.rb +0 -6
- data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +0 -5
- data/db/migrate/20141217215630_update_product_slug_index.rb +0 -6
- data/db/migrate/20141218025915_rename_identifier_to_number_for_payment.rb +0 -5
- data/db/migrate/20150118210639_create_spree_store_credits.rb +0 -24
- data/db/migrate/20150118211500_create_spree_store_credit_categories.rb +0 -8
- data/db/migrate/20150118212051_create_spree_store_credit_events.rb +0 -17
- data/db/migrate/20150118212101_create_spree_store_credit_types.rb +0 -10
- data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +0 -6
- data/db/migrate/20150122145607_add_resellable_to_return_items.rb +0 -5
- data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +0 -5
- data/db/migrate/20150128032538_remove_environment_from_tracker.rb +0 -8
- data/db/migrate/20150128060325_remove_spree_configurations.rb +0 -16
- data/db/migrate/20150216173445_add_index_to_spree_stock_items_variant_id.rb +0 -13
- data/db/migrate/20150309161154_ensure_payments_have_numbers.rb +0 -13
- data/db/migrate/20150314013438_add_missing_indexes_on_spree_tables.rb +0 -67
- data/db/migrate/20150317174308_remove_duplicated_indexes_from_multi_columns.rb +0 -18
- data/db/migrate/20150324104002_remove_user_index_from_spree_state_changes.rb +0 -14
- data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -70
- data/db/migrate/20150522071831_add_position_to_spree_payment_methods.rb +0 -5
- data/db/migrate/20150522181728_add_deleted_at_to_friendly_id_slugs.rb +0 -6
- data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +0 -16
- data/db/migrate/20150626181949_add_taxable_adjustment_total_to_line_item.rb +0 -19
- data/db/migrate/20150627090949_migrate_payment_methods_display.rb +0 -12
- data/db/migrate/20150707204155_enable_acts_as_paranoid_on_calculators.rb +0 -6
- data/db/migrate/20150714154102_spree_payment_method_store_credits.rb +0 -12
- data/db/migrate/20150726141425_rename_has_and_belongs_to_associations_to_model_names.rb +0 -18
- data/db/migrate/20150727191614_spree_store_credit_types.rb +0 -11
- data/db/migrate/20150819154308_add_discontinued_to_products_and_variants.rb +0 -68
- data/db/migrate/20151220072838_remove_shipping_method_id_from_spree_orders.rb +0 -13
- data/db/migrate/20160207191757_add_id_column_to_earlier_habtm_tables.rb +0 -16
- data/db/migrate/20160219165458_add_indexes.rb +0 -14
- data/db/migrate/20160509064646_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +0 -10
- data/db/migrate/20160608090604_add_zipcode_required_to_spree_countries.rb +0 -7
- data/db/migrate/20161014145148_add_created_at_to_variant.rb +0 -8
- data/db/migrate/20161014152814_add_null_false_to_spree_variants_timestamps.rb +0 -6
- data/db/migrate/20161125065505_add_quantity_to_inventory_units.rb +0 -5
- data/db/migrate/20170119122701_add_original_return_item_id_to_spree_inventory_units.rb +0 -29
- data/db/migrate/20170315152755_add_unique_index_on_number_to_spree_orders.rb +0 -16
- data/db/migrate/20170316154338_add_unique_index_on_number_to_spree_stock_transfer.rb +0 -16
- data/db/migrate/20170316205511_add_unique_index_on_number_to_spree_shipment.rb +0 -16
- data/db/migrate/20170320134043_add_unique_index_on_number_to_spree_payments.rb +0 -17
- data/db/migrate/20170320142750_add_unique_index_on_number_to_spree_return_authorizations.rb +0 -16
- data/db/migrate/20170320145040_add_unique_index_on_number_to_spree_customer_returns.rb +0 -16
- data/db/migrate/20170320145518_add_unique_index_on_number_to_spree_reimbursements.rb +0 -16
- data/db/migrate/20170323151450_add_missing_unique_indexes_for_unique_attributes.rb +0 -37
- data/db/migrate/20170329110859_add_index_on_stock_location_to_spree_customer_returns.rb +0 -5
- data/db/migrate/20170329113917_add_index_on_prototype_to_spree_option_type_prototype.rb +0 -19
- data/db/migrate/20170330082155_add_indexes_to_spree_option_value_variant.rb +0 -19
- data/db/migrate/20170330132215_add_index_on_promotion_id_to_order_promotions.rb +0 -5
- data/db/migrate/20170331101758_add_indexes_for_property_prototype.rb +0 -20
- data/db/migrate/20170331103334_add_index_for_prototype_id_to_prototype_taxons.rb +0 -5
- data/db/migrate/20170331110454_add_indexes_to_refunds.rb +0 -6
- data/db/migrate/20170331111757_add_indexes_to_reimbursement_credits.rb +0 -6
- data/db/migrate/20170331115246_add_indexes_to_return_authorizations.rb +0 -6
- data/db/migrate/20170331120125_add_indexes_to_return_items.rb +0 -11
- data/db/migrate/20170331121725_add_index_to_role_users.rb +0 -18
- data/db/migrate/20170331123625_add_index_to_shipping_method_categories.rb +0 -5
- data/db/migrate/20170331123832_add_index_to_shipping_method_zones.rb +0 -20
- data/db/migrate/20170331124251_add_index_to_spree_shipping_rates.rb +0 -6
- data/db/migrate/20170331124513_add_index_to_spree_stock_items.rb +0 -5
- data/db/migrate/20170331124924_add_index_to_spree_stock_movement.rb +0 -5
- data/db/migrate/20170413211707_change_indexes_on_friendly_id_slugs.rb +0 -10
- data/db/migrate/20170722102643_add_analytics_kind_to_spree_trackers.rb +0 -5
- data/db/migrate/20170727103056_rename_tracker_kind_field.rb +0 -5
- data/db/migrate/20171004223836_remove_icon_from_taxons.rb +0 -8
- data/db/migrate/20180222133746_add_unique_index_on_spree_promotions_code.rb +0 -6
- data/db/migrate/20180613080857_rename_guest_token_to_token_in_orders.rb +0 -5
- data/db/migrate/20180915160001_add_timestamps_to_spree_prices.rb +0 -12
- data/db/migrate/20181024100754_add_deleted_at_to_spree_credit_cards.rb +0 -6
- data/db/migrate/20190305121659_add_iso_and_iso3_validation_on_presence_and_uniqueness.rb +0 -18
- data/db/migrate/20190523092729_add_user_id_and_deleted_at_to_spree_addresses.rb +0 -12
- data/db/migrate/20191005121504_add_store_id_to_payment_methods.rb +0 -7
- data/db/migrate/20191016134113_add_deafult_value_for_store_default_currency.rb +0 -5
- data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +0 -11
- data/db/migrate/20200102141311_add_social_to_spree_stores.rb +0 -10
- data/db/migrate/20200212144523_add_hide_from_nav_to_taxons.rb +0 -5
- data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +0 -7
- data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +0 -7
- data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +0 -7
- data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +0 -9
- data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +0 -8
- data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +0 -5
- data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +0 -7
- data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +0 -7
- data/db/migrate/20200610113542_add_label_to_spree_addresses.rb +0 -5
- data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +0 -5
- data/db/migrate/20201006110150_add_checkout_zone_field_to_store.rb +0 -12
- data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +0 -10
- data/db/migrate/20201013084504_add_seo_robots_to_spree_stores.rb +0 -5
- data/db/migrate/20201023152810_add_filterable_to_spree_properties.rb +0 -8
- data/db/migrate/20201127084048_add_default_country_kind_to_spree_zones.rb +0 -5
- data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +0 -5
- data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +0 -10
- data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +0 -15
- data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +0 -5
- data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +0 -5
- data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +0 -11
- data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +0 -22
- data/db/migrate/20210407200948_create_spree_menus.rb +0 -16
- data/db/migrate/20210408092939_create_spree_menu_items.rb +0 -31
- data/db/migrate/20210504163720_add_filter_param_to_spree_product_properties.rb +0 -8
- data/db/migrate/20210505114659_add_filter_param_to_spree_properties.rb +0 -8
- data/db/migrate/20210512191732_create_spree_cms_pages.rb +0 -24
- data/db/migrate/20210514204251_create_spree_cms_sections.rb +0 -22
- data/db/migrate/20210527094055_create_spree_products_stores.rb +0 -36
- data/db/migrate/20210608045519_ensure_store_default_country_is_set.rb +0 -5
- data/db/migrate/20210702112334_add_missing_timestamp_columns.rb +0 -46
- data/db/migrate/20210713131614_add_unique_index_on_property_id_and_product_id_to_product_properties.rb +0 -29
- data/db/migrate/20210715091956_add_store_id_to_spree_store_credits.rb +0 -10
- data/db/migrate/20210716093151_add_store_id_to_spree_taxonomies.rb +0 -11
- data/db/migrate/20210716104141_add_index_on_name_parent_id_and_taxonomy_id_on_spree_taxons.rb +0 -31
- data/db/migrate/20210721120857_add_index_on_permalink_parent_id_and_taxonomy_id_on_spree_taxons.rb +0 -31
- data/db/migrate/20210721125657_create_spree_promotions_stores.rb +0 -29
- data/db/migrate/20210722090705_add_store_id_to_spree_customer_returns.rb +0 -11
- data/db/migrate/20210726065456_change_integer_id_columns_into_bigint.rb +0 -305
- data/db/migrate/20210730154425_fix_promotion_code_and_path_unique_indexes.rb +0 -9
- data/lib/friendly_id/slug_rails5_patch.rb +0 -11
- /data/lib/spree/{dependencies_helper.rb → core/dependencies_helper.rb} +0 -0
- /data/{app/models/spree → lib/spree/core}/preferences/scoped_store.rb +0 -0
|
@@ -74,7 +74,7 @@ module Spree
|
|
|
74
74
|
handle_action(action, :credit, auth_code)
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
-
def cancel(auth_code)
|
|
77
|
+
def cancel(auth_code, _payment = nil)
|
|
78
78
|
store_credit_event = StoreCreditEvent.find_by(authorization_code: auth_code,
|
|
79
79
|
action: Spree::StoreCredit::CAPTURE_ACTION)
|
|
80
80
|
store_credit = store_credit_event.try(:store_credit)
|
|
@@ -4,6 +4,10 @@ module Spree
|
|
|
4
4
|
acts_as_list
|
|
5
5
|
|
|
6
6
|
include MultiStoreResource
|
|
7
|
+
include Spree::Metadata
|
|
8
|
+
if defined?(Spree::Security::PaymentMethods)
|
|
9
|
+
include Spree::Security::PaymentMethods
|
|
10
|
+
end
|
|
7
11
|
|
|
8
12
|
DISPLAY = [:both, :front_end, :back_end].freeze
|
|
9
13
|
|
|
@@ -14,7 +18,8 @@ module Spree
|
|
|
14
18
|
|
|
15
19
|
validates :name, presence: true
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
has_many :store_payment_methods, class_name: 'Spree::StorePaymentMethod'
|
|
22
|
+
has_many :stores, class_name: 'Spree::Store', through: :store_payment_methods
|
|
18
23
|
|
|
19
24
|
with_options dependent: :restrict_with_error do
|
|
20
25
|
has_many :payments, class_name: 'Spree::Payment', inverse_of: :payment_method
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class PaymentSource < Spree::Base
|
|
3
|
+
include Metadata
|
|
4
|
+
|
|
5
|
+
belongs_to :payment_method, class_name: 'Spree::PaymentMethod'
|
|
6
|
+
belongs_to :user, class_name: 'Spree::User', optional: true
|
|
7
|
+
|
|
8
|
+
validates_uniqueness_of :gateway_payment_profile_id, scope: :type
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
class Spree::Preference < Spree::Base
|
|
2
2
|
serialize :value
|
|
3
3
|
|
|
4
|
-
validates :key, presence: true,
|
|
4
|
+
validates :key, presence: true,
|
|
5
|
+
uniqueness: { case_sensitive: false, allow_blank: true, scope: spree_base_uniqueness_scope }
|
|
6
|
+
|
|
7
|
+
if defined?(Spree::Security::Preferences)
|
|
8
|
+
include Spree::Security::Preferences
|
|
9
|
+
end
|
|
5
10
|
end
|
data/app/models/spree/price.rb
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Price < Spree::Base
|
|
3
3
|
include VatPriceCalculation
|
|
4
|
+
if defined?(Spree::Webhooks)
|
|
5
|
+
include Spree::Webhooks::HasWebhooks
|
|
6
|
+
end
|
|
4
7
|
|
|
5
8
|
acts_as_paranoid
|
|
6
9
|
|
|
@@ -66,7 +69,7 @@ module Spree
|
|
|
66
69
|
private
|
|
67
70
|
|
|
68
71
|
def ensure_currency
|
|
69
|
-
self.currency ||= Spree::
|
|
72
|
+
self.currency ||= Spree::Store.default.default_currency
|
|
70
73
|
end
|
|
71
74
|
end
|
|
72
75
|
end
|
data/app/models/spree/product.rb
CHANGED
|
@@ -24,6 +24,13 @@ module Spree
|
|
|
24
24
|
include ProductScopes
|
|
25
25
|
include MultiStoreResource
|
|
26
26
|
include MemoizedData
|
|
27
|
+
include Metadata
|
|
28
|
+
if defined?(Spree::Webhooks)
|
|
29
|
+
include Spree::Webhooks::HasWebhooks
|
|
30
|
+
end
|
|
31
|
+
if defined?(Spree::VendorConcern)
|
|
32
|
+
include Spree::VendorConcern
|
|
33
|
+
end
|
|
27
34
|
|
|
28
35
|
MEMOIZED_METHODS = %w(total_on_hand taxonomy_ids taxon_and_ancestors category
|
|
29
36
|
default_variant_id tax_category default_variant
|
|
@@ -32,10 +39,11 @@ module Spree
|
|
|
32
39
|
friendly_id :slug_candidates, use: :history
|
|
33
40
|
|
|
34
41
|
acts_as_paranoid
|
|
42
|
+
auto_strip_attributes :name
|
|
35
43
|
|
|
36
44
|
# we need to have this callback before any dependent: :destroy associations
|
|
37
45
|
# https://github.com/rails/rails/issues/3458
|
|
38
|
-
before_destroy :
|
|
46
|
+
before_destroy :ensure_not_in_complete_orders
|
|
39
47
|
|
|
40
48
|
has_many :product_option_types, dependent: :destroy, inverse_of: :product
|
|
41
49
|
has_many :option_types, through: :product_option_types
|
|
@@ -87,6 +95,7 @@ module Spree
|
|
|
87
95
|
|
|
88
96
|
has_many :store_products, class_name: 'Spree::StoreProduct'
|
|
89
97
|
has_many :stores, through: :store_products, class_name: 'Spree::Store'
|
|
98
|
+
has_many :digitals, through: :variants_including_master
|
|
90
99
|
|
|
91
100
|
after_create :add_associations_from_prototype
|
|
92
101
|
after_create :build_variants_from_option_values_hash, if: :option_values_hash
|
|
@@ -115,8 +124,10 @@ module Spree
|
|
|
115
124
|
validates :price, if: :requires_price?
|
|
116
125
|
end
|
|
117
126
|
|
|
118
|
-
validates :slug, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
|
|
119
|
-
validate :
|
|
127
|
+
validates :slug, presence: true, uniqueness: { allow_blank: true, case_sensitive: true, scope: spree_base_uniqueness_scope }
|
|
128
|
+
validate :discontinue_on_must_be_later_than_make_active_at, if: -> { make_active_at && discontinue_on }
|
|
129
|
+
|
|
130
|
+
scope :for_store, ->(store) { joins(:store_products).where(StoreProduct.table_name => { store_id: store.id }) }
|
|
120
131
|
|
|
121
132
|
attr_accessor :option_values_hash
|
|
122
133
|
|
|
@@ -125,11 +136,11 @@ module Spree
|
|
|
125
136
|
alias options product_option_types
|
|
126
137
|
|
|
127
138
|
self.whitelisted_ransackable_associations = %w[taxons stores variants_including_master master variants]
|
|
128
|
-
self.whitelisted_ransackable_attributes = %w[description name slug discontinue_on]
|
|
129
|
-
self.whitelisted_ransackable_scopes = %w[not_discontinued search_by_name]
|
|
139
|
+
self.whitelisted_ransackable_attributes = %w[description name slug discontinue_on status]
|
|
140
|
+
self.whitelisted_ransackable_scopes = %w[not_discontinued search_by_name in_taxon price_between]
|
|
130
141
|
|
|
131
142
|
[
|
|
132
|
-
:sku, :price, :currency, :weight, :height, :width, :depth, :is_master,
|
|
143
|
+
:sku, :barcode, :price, :currency, :weight, :height, :width, :depth, :is_master,
|
|
133
144
|
:cost_currency, :price_in, :amount_in, :cost_price, :compare_at_price, :compare_at_amount_in
|
|
134
145
|
].each do |method_name|
|
|
135
146
|
delegate method_name, :"#{method_name}=", to: :find_or_build_master
|
|
@@ -140,17 +151,34 @@ module Spree
|
|
|
140
151
|
|
|
141
152
|
alias master_images images
|
|
142
153
|
|
|
143
|
-
|
|
154
|
+
state_machine :status, initial: :draft do
|
|
155
|
+
event :activate do
|
|
156
|
+
transition to: :active
|
|
157
|
+
end
|
|
158
|
+
after_transition to: :active, do: :after_activate
|
|
159
|
+
|
|
160
|
+
event :archive do
|
|
161
|
+
transition to: :archived
|
|
162
|
+
end
|
|
163
|
+
after_transition to: :archived, do: :after_archive
|
|
164
|
+
|
|
165
|
+
event :draft do
|
|
166
|
+
transition to: :draft
|
|
167
|
+
end
|
|
168
|
+
after_transition to: :draft, do: :after_draft
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
# Can't use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
|
|
144
172
|
def purchasable?
|
|
145
173
|
default_variant.purchasable? || variants.any?(&:purchasable?)
|
|
146
174
|
end
|
|
147
175
|
|
|
148
|
-
#
|
|
176
|
+
# Can't use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
|
|
149
177
|
def in_stock?
|
|
150
178
|
default_variant.in_stock? || variants.any?(&:in_stock?)
|
|
151
179
|
end
|
|
152
180
|
|
|
153
|
-
#
|
|
181
|
+
# Can't use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
|
|
154
182
|
def backorderable?
|
|
155
183
|
default_variant.backorderable? || variants.any?(&:backorderable?)
|
|
156
184
|
end
|
|
@@ -193,10 +221,7 @@ module Spree
|
|
|
193
221
|
end
|
|
194
222
|
|
|
195
223
|
# Adding properties and option types on creation based on a chosen prototype
|
|
196
|
-
|
|
197
|
-
def prototype_id=(value)
|
|
198
|
-
@prototype_id = value.to_i
|
|
199
|
-
end
|
|
224
|
+
attr_accessor :prototype_id
|
|
200
225
|
|
|
201
226
|
# Ensures option_types and product_option_types exist for keys in option_values_hash
|
|
202
227
|
def ensure_option_types_exist_for_values_hash
|
|
@@ -224,14 +249,16 @@ module Spree
|
|
|
224
249
|
end
|
|
225
250
|
|
|
226
251
|
# determine if product is available.
|
|
227
|
-
# deleted products and products with
|
|
252
|
+
# deleted products and products with status different than active
|
|
228
253
|
# are not available
|
|
229
254
|
def available?
|
|
230
|
-
|
|
255
|
+
active? && !deleted?
|
|
231
256
|
end
|
|
232
257
|
|
|
233
258
|
def discontinue!
|
|
234
|
-
|
|
259
|
+
self.discontinue_on = Time.current
|
|
260
|
+
self.status = 'archived'
|
|
261
|
+
save(validate: false)
|
|
235
262
|
end
|
|
236
263
|
|
|
237
264
|
def discontinued?
|
|
@@ -263,14 +290,6 @@ module Spree
|
|
|
263
290
|
where conditions.inject(:or)
|
|
264
291
|
end
|
|
265
292
|
|
|
266
|
-
def self.search_by_name(query)
|
|
267
|
-
if defined?(SpreeGlobalize)
|
|
268
|
-
joins(:translations).order(:name).where("LOWER(#{Product::Translation.table_name}.name) LIKE LOWER(:query)", query: "%#{query}%").distinct
|
|
269
|
-
else
|
|
270
|
-
where("LOWER(#{Product.table_name}.name) LIKE LOWER(:query)", query: "%#{query}%")
|
|
271
|
-
end
|
|
272
|
-
end
|
|
273
|
-
|
|
274
293
|
# Suitable for displaying only variants that has at least one option value.
|
|
275
294
|
# There may be scenarios where an option type is removed and along with it
|
|
276
295
|
# all option values. At that point all variants associated with only those
|
|
@@ -303,7 +322,7 @@ module Spree
|
|
|
303
322
|
def total_on_hand
|
|
304
323
|
@total_on_hand ||= Rails.cache.fetch(['product-total-on-hand', cache_key_with_version]) do
|
|
305
324
|
if any_variants_not_track_inventory?
|
|
306
|
-
|
|
325
|
+
BigDecimal::INFINITY
|
|
307
326
|
else
|
|
308
327
|
stock_items.sum(:count_on_hand)
|
|
309
328
|
end
|
|
@@ -331,12 +350,24 @@ module Spree
|
|
|
331
350
|
end
|
|
332
351
|
end
|
|
333
352
|
|
|
353
|
+
def any_variant_in_stock_or_backorderable?
|
|
354
|
+
if variants.any?
|
|
355
|
+
variants_including_master.in_stock_or_backorderable.exists?
|
|
356
|
+
else
|
|
357
|
+
master.in_stock_or_backorderable?
|
|
358
|
+
end
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
def digital?
|
|
362
|
+
shipping_category&.name == I18n.t('spree.seed.shipping.categories.digital')
|
|
363
|
+
end
|
|
364
|
+
|
|
334
365
|
private
|
|
335
366
|
|
|
336
367
|
def add_associations_from_prototype
|
|
337
368
|
if prototype_id && prototype = Spree::Prototype.find_by(id: prototype_id)
|
|
338
369
|
prototype.properties.each do |property|
|
|
339
|
-
product_properties.create(property: property)
|
|
370
|
+
product_properties.create(property: property, value: 'Placeholder')
|
|
340
371
|
end
|
|
341
372
|
self.option_types = prototype.option_types
|
|
342
373
|
self.taxons = prototype.taxons
|
|
@@ -472,8 +503,8 @@ module Spree
|
|
|
472
503
|
Spree::Taxonomy.where(id: taxonomy_ids).update_all(updated_at: Time.current)
|
|
473
504
|
end
|
|
474
505
|
|
|
475
|
-
def
|
|
476
|
-
if
|
|
506
|
+
def ensure_not_in_complete_orders
|
|
507
|
+
if orders.complete.any?
|
|
477
508
|
errors.add(:base, :cannot_destroy_if_attached_to_line_items)
|
|
478
509
|
throw(:abort)
|
|
479
510
|
end
|
|
@@ -484,8 +515,8 @@ module Spree
|
|
|
484
515
|
removed_classifications.each &:remove_from_list
|
|
485
516
|
end
|
|
486
517
|
|
|
487
|
-
def
|
|
488
|
-
if discontinue_on <
|
|
518
|
+
def discontinue_on_must_be_later_than_make_active_at
|
|
519
|
+
if discontinue_on < make_active_at
|
|
489
520
|
errors.add(:discontinue_on, :invalid_date_range)
|
|
490
521
|
end
|
|
491
522
|
end
|
|
@@ -501,5 +532,17 @@ module Spree
|
|
|
501
532
|
def downcase_slug
|
|
502
533
|
slug&.downcase!
|
|
503
534
|
end
|
|
535
|
+
|
|
536
|
+
def after_activate
|
|
537
|
+
# this method is prepended in api/ to queue Webhooks requests
|
|
538
|
+
end
|
|
539
|
+
|
|
540
|
+
def after_archive
|
|
541
|
+
# this method is prepended in api/ to queue Webhooks requests
|
|
542
|
+
end
|
|
543
|
+
|
|
544
|
+
def after_draft
|
|
545
|
+
# this method is prepended in api/ to queue Webhooks requests
|
|
546
|
+
end
|
|
504
547
|
end
|
|
505
548
|
end
|
|
@@ -4,9 +4,9 @@ module Spree
|
|
|
4
4
|
module OptionValueWithNumerificationSupport
|
|
5
5
|
def preferred_eligible_values
|
|
6
6
|
values = super || {}
|
|
7
|
-
Hash[values.keys.
|
|
7
|
+
Hash[values.keys.zip(
|
|
8
8
|
values.values.map do |v|
|
|
9
|
-
(v.is_a?(Array) ? v : v.split(','))
|
|
9
|
+
(v.is_a?(Array) ? v : v.split(','))
|
|
10
10
|
end
|
|
11
11
|
)]
|
|
12
12
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# A rule to limit a promotion based on products in the order.
|
|
2
2
|
# Can require all or any of the products to be present.
|
|
3
|
-
# Valid products either come from assigned product group or are
|
|
3
|
+
# Valid products either come from assigned product group or are assigned directly to the rule.
|
|
4
4
|
module Spree
|
|
5
5
|
class Promotion
|
|
6
6
|
module Rules
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Promotion < Spree::Base
|
|
3
3
|
include MultiStoreResource
|
|
4
|
+
include Metadata
|
|
5
|
+
if defined?(Spree::Webhooks)
|
|
6
|
+
include Spree::Webhooks::HasWebhooks
|
|
7
|
+
end
|
|
8
|
+
if defined?(Spree::Security::Promotions)
|
|
9
|
+
include Spree::Security::Promotions
|
|
10
|
+
end
|
|
4
11
|
|
|
5
12
|
MATCH_POLICIES = %w(all any)
|
|
6
13
|
UNACTIVATABLE_ORDER_STATES = ['complete', 'awaiting_return', 'returned']
|
|
@@ -18,7 +25,8 @@ module Spree
|
|
|
18
25
|
has_many :order_promotions, class_name: 'Spree::OrderPromotion'
|
|
19
26
|
has_many :orders, through: :order_promotions, class_name: 'Spree::Order'
|
|
20
27
|
|
|
21
|
-
|
|
28
|
+
has_many :store_promotions, class_name: 'Spree::StorePromotion'
|
|
29
|
+
has_many :stores, class_name: 'Spree::Store', through: :store_promotions
|
|
22
30
|
|
|
23
31
|
accepts_nested_attributes_for :promotion_actions, :promotion_rules
|
|
24
32
|
|
|
@@ -8,7 +8,7 @@ module Spree
|
|
|
8
8
|
|
|
9
9
|
scope :of_type, ->(t) { where(type: t) }
|
|
10
10
|
|
|
11
|
-
# This method should be
|
|
11
|
+
# This method should be overridden in subclass
|
|
12
12
|
# Updates the state of the order or performs some other action depending on the subclass
|
|
13
13
|
# options will contain the payload from the event that activated the promotion. This will include
|
|
14
14
|
# the key :user which allows user based actions to be performed in addition to actions on the order
|
|
@@ -35,7 +35,7 @@ module Spree
|
|
|
35
35
|
|
|
36
36
|
def unique_per_promotion
|
|
37
37
|
if Spree::PromotionRule.exists?(promotion_id: promotion_id, type: self.class.name)
|
|
38
|
-
errors
|
|
38
|
+
errors.add(:base, 'Promotion already contains this rule type')
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
41
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class PromotionRuleUser < Spree::Base
|
|
3
3
|
belongs_to :promotion_rule, class_name: 'Spree::PromotionRule'
|
|
4
|
-
belongs_to :user, class_name: Spree.user_class
|
|
4
|
+
belongs_to :user, class_name: "::#{Spree.user_class}"
|
|
5
5
|
|
|
6
6
|
validates :user, :promotion_rule, presence: true
|
|
7
7
|
validates :user_id, uniqueness: { scope: :promotion_rule_id }, allow_nil: true
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Prototype < Spree::Base
|
|
3
|
+
include Metadata
|
|
4
|
+
if defined?(Spree::Webhooks)
|
|
5
|
+
include Spree::Webhooks::HasWebhooks
|
|
6
|
+
end
|
|
7
|
+
|
|
3
8
|
has_many :property_prototypes, class_name: 'Spree::PropertyPrototype'
|
|
4
9
|
has_many :properties, through: :property_prototypes, class_name: 'Spree::Property'
|
|
5
10
|
|
data/app/models/spree/refund.rb
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Refund < Spree::Base
|
|
3
|
+
include Metadata
|
|
4
|
+
if defined?(Spree::Webhooks)
|
|
5
|
+
include Spree::Webhooks::HasWebhooks
|
|
6
|
+
end
|
|
7
|
+
if defined?(Spree::Security::Refunds)
|
|
8
|
+
include Spree::Security::Refunds
|
|
9
|
+
end
|
|
10
|
+
|
|
3
11
|
with_options inverse_of: :refunds do
|
|
4
12
|
belongs_to :payment
|
|
5
13
|
belongs_to :reimbursement, optional: true
|
|
@@ -21,6 +29,8 @@ module Spree
|
|
|
21
29
|
|
|
22
30
|
scope :non_reimbursement, -> { where(reimbursement_id: nil) }
|
|
23
31
|
|
|
32
|
+
attr_reader :response
|
|
33
|
+
|
|
24
34
|
def money
|
|
25
35
|
Spree::Money.new(amount, currency: payment.currency)
|
|
26
36
|
end
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Reimbursement < Spree::Base
|
|
3
3
|
include Spree::Core::NumberGenerator.new(prefix: 'RI', length: 9)
|
|
4
|
+
include NumberIdentifier
|
|
5
|
+
if defined?(Spree::Webhooks)
|
|
6
|
+
include Spree::Webhooks::HasWebhooks
|
|
7
|
+
end
|
|
4
8
|
|
|
5
9
|
class IncompleteReimbursementError < StandardError; end
|
|
6
10
|
|
|
@@ -15,7 +19,6 @@ module Spree
|
|
|
15
19
|
has_many :return_items
|
|
16
20
|
end
|
|
17
21
|
|
|
18
|
-
validates :number, uniqueness: true
|
|
19
22
|
validates :order, presence: true
|
|
20
23
|
validate :validate_return_items_belong_to_same_order
|
|
21
24
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class ReturnAuthorization < Spree::Base
|
|
3
3
|
include Spree::Core::NumberGenerator.new(prefix: 'RA', length: 9)
|
|
4
|
+
include NumberIdentifier
|
|
5
|
+
if defined?(Spree::Webhooks)
|
|
6
|
+
include Spree::Webhooks::HasWebhooks
|
|
7
|
+
end
|
|
4
8
|
|
|
5
9
|
belongs_to :order, class_name: 'Spree::Order', inverse_of: :return_authorizations
|
|
6
10
|
|
|
@@ -17,7 +21,6 @@ module Spree
|
|
|
17
21
|
|
|
18
22
|
accepts_nested_attributes_for :return_items, allow_destroy: true
|
|
19
23
|
|
|
20
|
-
validates :number, uniqueness: true
|
|
21
24
|
validates :order, :reason, :stock_location, presence: true
|
|
22
25
|
validate :must_have_shipped_units, on: :create
|
|
23
26
|
|
|
@@ -38,13 +41,15 @@ module Spree
|
|
|
38
41
|
money_methods :pre_tax_total
|
|
39
42
|
|
|
40
43
|
self.whitelisted_ransackable_attributes = ['memo', 'number', 'state']
|
|
44
|
+
self.whitelisted_ransackable_associations = ['order']
|
|
41
45
|
|
|
42
46
|
def pre_tax_total
|
|
43
47
|
return_items.sum(:pre_tax_amount)
|
|
44
48
|
end
|
|
45
49
|
|
|
46
50
|
def currency
|
|
47
|
-
|
|
51
|
+
# FIXME: we should associate ReturnAuthorization with Store
|
|
52
|
+
order.nil? ? Spree::Store.default.default_currency : order.currency
|
|
48
53
|
end
|
|
49
54
|
|
|
50
55
|
def refundable_amount
|
|
@@ -2,6 +2,10 @@ module Spree
|
|
|
2
2
|
class ReturnItem < Spree::Base
|
|
3
3
|
COMPLETED_RECEPTION_STATUSES = %w(received given_to_customer)
|
|
4
4
|
|
|
5
|
+
if defined?(Spree::Webhooks)
|
|
6
|
+
include Spree::Webhooks::HasWebhooks
|
|
7
|
+
end
|
|
8
|
+
|
|
5
9
|
class_attribute :return_eligibility_validator
|
|
6
10
|
self.return_eligibility_validator = ReturnItem::EligibilityValidator::Default
|
|
7
11
|
|
|
@@ -165,7 +169,7 @@ module Spree
|
|
|
165
169
|
end
|
|
166
170
|
|
|
167
171
|
def currency
|
|
168
|
-
return_authorization.try(:currency) || Spree::
|
|
172
|
+
return_authorization.try(:currency) || Spree::Store.default.default_currency
|
|
169
173
|
end
|
|
170
174
|
|
|
171
175
|
private
|
data/app/models/spree/role.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Role < Spree::Base
|
|
3
|
-
|
|
4
|
-
has_many :users, through: :role_users, class_name: Spree.user_class.to_s
|
|
3
|
+
include UniqueName
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
has_many :role_users, class_name: 'Spree::RoleUser', dependent: :destroy
|
|
6
|
+
has_many :users, through: :role_users, class_name: "::#{Spree.user_class}"
|
|
7
7
|
end
|
|
8
8
|
end
|
|
@@ -3,8 +3,15 @@ require 'ostruct'
|
|
|
3
3
|
module Spree
|
|
4
4
|
class Shipment < Spree::Base
|
|
5
5
|
include Spree::Core::NumberGenerator.new(prefix: 'H', length: 11)
|
|
6
|
-
|
|
6
|
+
include NumberIdentifier
|
|
7
7
|
include NumberAsParam
|
|
8
|
+
include Metadata
|
|
9
|
+
if defined?(Spree::Webhooks)
|
|
10
|
+
include Spree::Webhooks::HasWebhooks
|
|
11
|
+
end
|
|
12
|
+
if defined?(Spree::Security::Shipments)
|
|
13
|
+
include Spree::Security::Shipments
|
|
14
|
+
end
|
|
8
15
|
|
|
9
16
|
with_options inverse_of: :shipments do
|
|
10
17
|
belongs_to :address, class_name: 'Spree::Address'
|
|
@@ -26,7 +33,6 @@ module Spree
|
|
|
26
33
|
before_validation :set_cost_zero_when_nil
|
|
27
34
|
|
|
28
35
|
validates :stock_location, presence: true
|
|
29
|
-
validates :number, uniqueness: { case_sensitive: true }
|
|
30
36
|
|
|
31
37
|
attr_accessor :special_instructions
|
|
32
38
|
|
|
@@ -216,7 +222,7 @@ module Spree
|
|
|
216
222
|
return shipping_rates if shipped?
|
|
217
223
|
return [] unless can_get_rates?
|
|
218
224
|
|
|
219
|
-
# StockEstimator.new
|
|
225
|
+
# StockEstimator.new assignment below will replace the current shipping_method
|
|
220
226
|
original_shipping_method_id = shipping_method.try(:id)
|
|
221
227
|
|
|
222
228
|
self.shipping_rates = Stock::Estimator.new(order).
|
|
@@ -244,6 +250,7 @@ module Spree
|
|
|
244
250
|
|
|
245
251
|
def selected_shipping_rate_id=(id)
|
|
246
252
|
shipping_rates.update_all(selected: false)
|
|
253
|
+
shipping_rates.touch_all # Bust cache dependent on "updated_at" timestamp
|
|
247
254
|
shipping_rates.update(id, selected: true)
|
|
248
255
|
save!
|
|
249
256
|
end
|
|
@@ -303,34 +310,8 @@ module Spree
|
|
|
303
310
|
end
|
|
304
311
|
end
|
|
305
312
|
|
|
306
|
-
# Update Shipment and make sure Order states follow the shipment changes
|
|
307
313
|
def update_attributes_and_order(params = {})
|
|
308
|
-
|
|
309
|
-
if params.key? :selected_shipping_rate_id
|
|
310
|
-
# Changing the selected Shipping Rate won't update the cost (for now)
|
|
311
|
-
# so we persist the Shipment#cost before calculating order shipment
|
|
312
|
-
# total and updating payment state (given a change in shipment cost
|
|
313
|
-
# might change the Order#payment_state)
|
|
314
|
-
update_amounts
|
|
315
|
-
|
|
316
|
-
order.updater.update_shipment_total
|
|
317
|
-
order.updater.update_payment_state
|
|
318
|
-
|
|
319
|
-
# Update shipment state only after order total is updated because it
|
|
320
|
-
# (via Order#paid?) affects the shipment state (YAY)
|
|
321
|
-
update_columns(
|
|
322
|
-
state: determine_state(order),
|
|
323
|
-
updated_at: Time.current
|
|
324
|
-
)
|
|
325
|
-
|
|
326
|
-
# And then it's time to update shipment states and finally persist
|
|
327
|
-
# order changes
|
|
328
|
-
order.updater.update_shipment_state
|
|
329
|
-
order.updater.persist_totals
|
|
330
|
-
end
|
|
331
|
-
|
|
332
|
-
true
|
|
333
|
-
end
|
|
314
|
+
Shipments::Update.call(shipment: self, shipment_attributes: params).success?
|
|
334
315
|
end
|
|
335
316
|
|
|
336
317
|
# Updates various aspects of the Shipment while bypassing any callbacks. Note that this method takes an explicit reference to the
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class ShippingCategory < Spree::Base
|
|
3
|
-
|
|
3
|
+
include UniqueName
|
|
4
|
+
if defined?(Spree::Webhooks)
|
|
5
|
+
include Spree::Webhooks::HasWebhooks
|
|
6
|
+
end
|
|
4
7
|
|
|
5
8
|
with_options inverse_of: :shipping_category do
|
|
6
9
|
has_many :products
|
|
@@ -2,6 +2,14 @@ module Spree
|
|
|
2
2
|
class ShippingMethod < Spree::Base
|
|
3
3
|
acts_as_paranoid
|
|
4
4
|
include Spree::CalculatedAdjustments
|
|
5
|
+
include Metadata
|
|
6
|
+
if defined?(Spree::Webhooks)
|
|
7
|
+
include Spree::Webhooks::HasWebhooks
|
|
8
|
+
end
|
|
9
|
+
if defined?(Spree::VendorConcern)
|
|
10
|
+
include Spree::VendorConcern
|
|
11
|
+
end
|
|
12
|
+
|
|
5
13
|
DISPLAY = [:both, :front_end, :back_end]
|
|
6
14
|
|
|
7
15
|
# Used for #refresh_rates
|
data/app/models/spree/state.rb
CHANGED
|
@@ -14,7 +14,7 @@ module Spree
|
|
|
14
14
|
validates :country, :name, presence: true
|
|
15
15
|
validates :name, :abbr, uniqueness: { case_sensitive: false, scope: :country_id }, allow_blank: true
|
|
16
16
|
|
|
17
|
-
self.whitelisted_ransackable_attributes = %w(abbr)
|
|
17
|
+
self.whitelisted_ransackable_attributes = %w(abbr country_id name)
|
|
18
18
|
|
|
19
19
|
def self.find_all_by_name_or_abbr(name_or_abbr)
|
|
20
20
|
where('name = ? OR abbr = ?', name_or_abbr, name_or_abbr)
|