spree_core 4.3.0 → 4.6.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/product_properties/find_available.rb +1 -1
- data/app/finders/spree/products/find.rb +22 -16
- data/app/finders/spree/taxons/find.rb +11 -8
- data/app/helpers/spree/base_helper.rb +14 -15
- 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 +69 -33
- data/app/models/concerns/spree/translatable_resource.rb +25 -0
- data/app/models/concerns/spree/translatable_resource_scopes.rb +24 -0
- data/app/models/concerns/spree/translatable_resource_slug.rb +15 -0
- 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 +15 -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/data_feed/google.rb +15 -0
- data/app/models/spree/data_feed.rb +40 -0
- 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 +12 -4
- data/app/models/spree/option_value.rb +11 -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 +114 -40
- data/app/models/spree/product_property.rb +13 -3
- 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 +11 -1
- 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 +12 -31
- 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 +78 -21
- 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 +39 -6
- 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 +15 -1
- data/app/models/spree/variant.rb +67 -31
- 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/data_feeds/google/optional_attributes.rb +23 -0
- data/app/services/spree/data_feeds/google/optional_sub_attributes.rb +21 -0
- data/app/services/spree/data_feeds/google/products_list.rb +14 -0
- data/app/services/spree/data_feeds/google/required_attributes.rb +67 -0
- data/app/services/spree/data_feeds/google/rss.rb +107 -0
- 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/locales/set_fallback_locale_for_store.rb +16 -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/sorters/spree/products/sort.rb +23 -0
- data/app/validators/spree/url_validator.rb +23 -0
- data/brakeman.ignore +328 -0
- data/config/initializers/active_storage.rb +0 -6
- data/config/initializers/friendly_id.rb +2 -0
- data/config/initializers/mobility.rb +16 -0
- data/config/locales/en.yml +20 -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/migrate/20220706112554_create_product_name_and_description_translations_for_mobility_table_backend.rb +27 -0
- data/db/migrate/20220715083542_create_spree_product_translations_for_mobility.rb +7 -0
- data/db/migrate/20220715120222_change_product_name_null_to_true.rb +5 -0
- data/db/migrate/20220718100743_create_spree_taxon_name_and_description_translations_for_mobility_table_backend.rb +27 -0
- data/db/migrate/20220718100948_change_taxon_name_null_to_true.rb +5 -0
- data/db/migrate/20220802070609_add_locale_to_friendly_id_slugs.rb +11 -0
- data/db/migrate/20220802073225_create_spree_product_slug_translations_for_mobility_table_backend.rb +5 -0
- data/db/migrate/20220804073928_transfer_data_to_translatable_tables.rb +66 -0
- data/db/migrate/20221215151408_add_selected_locale_to_spree_users.rb +8 -0
- data/db/migrate/20221219123957_add_deleted_at_to_product_translations.rb +6 -0
- data/db/migrate/20221220133432_add_uniqueness_constraint_to_product_translations.rb +5 -0
- data/db/migrate/20221229132350_create_spree_data_feed_settings.rb +14 -0
- data/db/migrate/20230103144439_create_option_type_translations.rb +26 -0
- data/db/migrate/20230103151034_create_option_value_translations.rb +26 -0
- data/db/migrate/20230109084253_create_product_property_translations.rb +25 -0
- data/db/migrate/20230109094907_transfer_options_data_to_translatable_tables.rb +58 -0
- data/db/migrate/20230109105943_create_property_translations.rb +26 -0
- data/db/migrate/20230109110840_transfer_property_data_to_translatable_tables.rb +59 -0
- data/db/migrate/20230110142344_backfill_friendly_id_slug_locale.rb +15 -0
- data/db/migrate/20230111121534_add_additional_taxon_translation_fields.rb +8 -0
- data/db/migrate/20230111122511_transfer_product_and_taxon_data_to_translatable_tables.rb +82 -0
- data/db/migrate/20230117115531_create_taxonomy_translations.rb +24 -0
- data/db/migrate/20230117120430_allow_null_taxonomy_name.rb +5 -0
- data/db/migrate/20230117121303_transfer_taxonomy_data_to_translatable_tables.rb +11 -0
- data/db/migrate/20230210142732_create_store_translations.rb +50 -0
- data/db/migrate/20230210142849_transfer_store_data_to_translatable_tables.rb +11 -0
- data/db/migrate/20230210230434_add_deleted_at_to_store_translations.rb +6 -0
- data/db/migrate/20230415155958_rename_data_feed_settings_table.rb +5 -0
- data/db/migrate/20230415160828_rename_data_feed_table_columns.rb +7 -0
- data/db/migrate/20230415161226_add_indexes_to_data_feeds_table.rb +5 -0
- data/db/migrate/20230512094803_rename_data_feeds_column_provider_to_type.rb +5 -0
- data/db/migrate/20230514162157_add_index_on_locale_and_permalink_to_spree_taxons.rb +5 -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/mobility/plugins/store_based_fallbacks.rb +55 -0
- data/lib/spree/core/configuration.rb +91 -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 +41 -8
- 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 +106 -0
- data/lib/spree/core/dependencies_helper.rb +30 -0
- data/lib/spree/core/engine.rb +60 -46
- 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/product_duplicator.rb +1 -1
- data/lib/spree/core/product_filters.rb +7 -4
- data/lib/spree/core/search/base.rb +10 -6
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +43 -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/google_data_feed_factory.rb +8 -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 +12 -1
- data/lib/spree/testing_support/factories/product_property_factory.rb +1 -0
- data/lib/spree/testing_support/factories/product_translation_factory.rb +6 -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 +2 -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 +8 -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/translation_migrations.rb +40 -0
- data/lib/spree_core.rb +3 -1
- data/lib/tasks/core.rake +16 -4
- data/spree_core.gemspec +7 -4
- metadata +245 -361
- 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 +0 -11
- /data/{app/models/spree → lib/spree/core}/preferences/scoped_store.rb +0 -0
data/app/models/spree/product.rb
CHANGED
|
@@ -23,19 +23,37 @@ module Spree
|
|
|
23
23
|
extend FriendlyId
|
|
24
24
|
include ProductScopes
|
|
25
25
|
include MultiStoreResource
|
|
26
|
+
include TranslatableResource
|
|
27
|
+
include TranslatableResourceSlug
|
|
26
28
|
include MemoizedData
|
|
29
|
+
include Metadata
|
|
30
|
+
if defined?(Spree::Webhooks)
|
|
31
|
+
include Spree::Webhooks::HasWebhooks
|
|
32
|
+
end
|
|
33
|
+
if defined?(Spree::VendorConcern)
|
|
34
|
+
include Spree::VendorConcern
|
|
35
|
+
end
|
|
27
36
|
|
|
28
|
-
MEMOIZED_METHODS = %w
|
|
37
|
+
MEMOIZED_METHODS = %w[total_on_hand taxonomy_ids taxon_and_ancestors category
|
|
29
38
|
default_variant_id tax_category default_variant
|
|
30
|
-
purchasable? in_stock? backorderable?
|
|
39
|
+
purchasable? in_stock? backorderable?]
|
|
31
40
|
|
|
32
|
-
|
|
41
|
+
TRANSLATABLE_FIELDS = %i[name description slug meta_description meta_keywords meta_title].freeze
|
|
42
|
+
translates(*TRANSLATABLE_FIELDS)
|
|
43
|
+
|
|
44
|
+
self::Translation.class_eval do
|
|
45
|
+
acts_as_paranoid
|
|
46
|
+
# deleted translation values also need to be accessible for index views listing deleted resources
|
|
47
|
+
default_scope { unscope(where: :deleted_at) }
|
|
48
|
+
end
|
|
33
49
|
|
|
50
|
+
friendly_id :slug_candidates, use: [:history, :mobility]
|
|
34
51
|
acts_as_paranoid
|
|
52
|
+
auto_strip_attributes :name
|
|
35
53
|
|
|
36
54
|
# we need to have this callback before any dependent: :destroy associations
|
|
37
55
|
# https://github.com/rails/rails/issues/3458
|
|
38
|
-
before_destroy :
|
|
56
|
+
before_destroy :ensure_not_in_complete_orders
|
|
39
57
|
|
|
40
58
|
has_many :product_option_types, dependent: :destroy, inverse_of: :product
|
|
41
59
|
has_many :option_types, through: :product_option_types
|
|
@@ -87,6 +105,7 @@ module Spree
|
|
|
87
105
|
|
|
88
106
|
has_many :store_products, class_name: 'Spree::StoreProduct'
|
|
89
107
|
has_many :stores, through: :store_products, class_name: 'Spree::Store'
|
|
108
|
+
has_many :digitals, through: :variants_including_master
|
|
90
109
|
|
|
91
110
|
after_create :add_associations_from_prototype
|
|
92
111
|
after_create :build_variants_from_option_values_hash, if: :option_values_hash
|
|
@@ -115,8 +134,10 @@ module Spree
|
|
|
115
134
|
validates :price, if: :requires_price?
|
|
116
135
|
end
|
|
117
136
|
|
|
118
|
-
validates :slug, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
|
|
119
|
-
validate :
|
|
137
|
+
validates :slug, presence: true, uniqueness: { allow_blank: true, case_sensitive: true, scope: spree_base_uniqueness_scope }
|
|
138
|
+
validate :discontinue_on_must_be_later_than_make_active_at, if: -> { make_active_at && discontinue_on }
|
|
139
|
+
|
|
140
|
+
scope :for_store, ->(store) { joins(:store_products).where(StoreProduct.table_name => { store_id: store.id }) }
|
|
120
141
|
|
|
121
142
|
attr_accessor :option_values_hash
|
|
122
143
|
|
|
@@ -125,11 +146,11 @@ module Spree
|
|
|
125
146
|
alias options product_option_types
|
|
126
147
|
|
|
127
148
|
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]
|
|
149
|
+
self.whitelisted_ransackable_attributes = %w[description name slug discontinue_on status]
|
|
150
|
+
self.whitelisted_ransackable_scopes = %w[not_discontinued search_by_name in_taxon price_between]
|
|
130
151
|
|
|
131
152
|
[
|
|
132
|
-
:sku, :price, :currency, :weight, :height, :width, :depth, :is_master,
|
|
153
|
+
:sku, :barcode, :price, :currency, :weight, :height, :width, :depth, :is_master,
|
|
133
154
|
:cost_currency, :price_in, :amount_in, :cost_price, :compare_at_price, :compare_at_amount_in
|
|
134
155
|
].each do |method_name|
|
|
135
156
|
delegate method_name, :"#{method_name}=", to: :find_or_build_master
|
|
@@ -140,17 +161,34 @@ module Spree
|
|
|
140
161
|
|
|
141
162
|
alias master_images images
|
|
142
163
|
|
|
143
|
-
|
|
164
|
+
state_machine :status, initial: :draft do
|
|
165
|
+
event :activate do
|
|
166
|
+
transition to: :active
|
|
167
|
+
end
|
|
168
|
+
after_transition to: :active, do: :after_activate
|
|
169
|
+
|
|
170
|
+
event :archive do
|
|
171
|
+
transition to: :archived
|
|
172
|
+
end
|
|
173
|
+
after_transition to: :archived, do: :after_archive
|
|
174
|
+
|
|
175
|
+
event :draft do
|
|
176
|
+
transition to: :draft
|
|
177
|
+
end
|
|
178
|
+
after_transition to: :draft, do: :after_draft
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Can't use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
|
|
144
182
|
def purchasable?
|
|
145
183
|
default_variant.purchasable? || variants.any?(&:purchasable?)
|
|
146
184
|
end
|
|
147
185
|
|
|
148
|
-
#
|
|
186
|
+
# Can't use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
|
|
149
187
|
def in_stock?
|
|
150
188
|
default_variant.in_stock? || variants.any?(&:in_stock?)
|
|
151
189
|
end
|
|
152
190
|
|
|
153
|
-
#
|
|
191
|
+
# Can't use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
|
|
154
192
|
def backorderable?
|
|
155
193
|
default_variant.backorderable? || variants.any?(&:backorderable?)
|
|
156
194
|
end
|
|
@@ -193,10 +231,7 @@ module Spree
|
|
|
193
231
|
end
|
|
194
232
|
|
|
195
233
|
# 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
|
|
234
|
+
attr_accessor :prototype_id
|
|
200
235
|
|
|
201
236
|
# Ensures option_types and product_option_types exist for keys in option_values_hash
|
|
202
237
|
def ensure_option_types_exist_for_values_hash
|
|
@@ -224,14 +259,16 @@ module Spree
|
|
|
224
259
|
end
|
|
225
260
|
|
|
226
261
|
# determine if product is available.
|
|
227
|
-
# deleted products and products with
|
|
262
|
+
# deleted products and products with status different than active
|
|
228
263
|
# are not available
|
|
229
264
|
def available?
|
|
230
|
-
|
|
265
|
+
active? && !deleted?
|
|
231
266
|
end
|
|
232
267
|
|
|
233
268
|
def discontinue!
|
|
234
|
-
|
|
269
|
+
self.discontinue_on = Time.current
|
|
270
|
+
self.status = 'archived'
|
|
271
|
+
save(validate: false)
|
|
235
272
|
end
|
|
236
273
|
|
|
237
274
|
def discontinued?
|
|
@@ -263,14 +300,6 @@ module Spree
|
|
|
263
300
|
where conditions.inject(:or)
|
|
264
301
|
end
|
|
265
302
|
|
|
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
303
|
# Suitable for displaying only variants that has at least one option value.
|
|
275
304
|
# There may be scenarios where an option type is removed and along with it
|
|
276
305
|
# all option values. At that point all variants associated with only those
|
|
@@ -287,14 +316,26 @@ module Spree
|
|
|
287
316
|
end
|
|
288
317
|
|
|
289
318
|
def property(property_name)
|
|
290
|
-
product_properties.joins(:property).
|
|
319
|
+
product_properties.joins(:property).
|
|
320
|
+
join_translation_table(Property).
|
|
321
|
+
find_by(Property.translation_table_alias => { name: property_name }).try(:value)
|
|
291
322
|
end
|
|
292
323
|
|
|
293
324
|
def set_property(property_name, property_value, property_presentation = property_name)
|
|
294
325
|
ApplicationRecord.transaction do
|
|
295
|
-
#
|
|
296
|
-
property = Property.
|
|
297
|
-
|
|
326
|
+
# Manual first_or_create to work around Mobility bug
|
|
327
|
+
property = if Property.where(name: property_name).exists?
|
|
328
|
+
Property.where(name: property_name).first
|
|
329
|
+
else
|
|
330
|
+
Property.create(name: property_name, presentation: property_presentation)
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
product_property = if ProductProperty.where(product: self, property: property).exists?
|
|
334
|
+
ProductProperty.where(product: self, property: property).first
|
|
335
|
+
else
|
|
336
|
+
ProductProperty.create(product: self, property: property)
|
|
337
|
+
end
|
|
338
|
+
|
|
298
339
|
product_property.value = property_value
|
|
299
340
|
product_property.save!
|
|
300
341
|
end
|
|
@@ -303,7 +344,7 @@ module Spree
|
|
|
303
344
|
def total_on_hand
|
|
304
345
|
@total_on_hand ||= Rails.cache.fetch(['product-total-on-hand', cache_key_with_version]) do
|
|
305
346
|
if any_variants_not_track_inventory?
|
|
306
|
-
|
|
347
|
+
BigDecimal::INFINITY
|
|
307
348
|
else
|
|
308
349
|
stock_items.sum(:count_on_hand)
|
|
309
350
|
end
|
|
@@ -318,11 +359,16 @@ module Spree
|
|
|
318
359
|
end
|
|
319
360
|
|
|
320
361
|
def brand
|
|
321
|
-
@brand ||= taxons.joins(:taxonomy).
|
|
362
|
+
@brand ||= taxons.joins(:taxonomy).
|
|
363
|
+
join_translation_table(Taxonomy).
|
|
364
|
+
find_by(Taxonomy.translation_table_alias => { name: Spree.t(:taxonomy_brands_name) })
|
|
322
365
|
end
|
|
323
366
|
|
|
324
367
|
def category
|
|
325
|
-
@category ||= taxons.joins(:taxonomy).
|
|
368
|
+
@category ||= taxons.joins(:taxonomy).
|
|
369
|
+
join_translation_table(Taxonomy).
|
|
370
|
+
order(depth: :desc).
|
|
371
|
+
find_by(Taxonomy.translation_table_alias => { name: Spree.t(:taxonomy_categories_name) })
|
|
326
372
|
end
|
|
327
373
|
|
|
328
374
|
def taxons_for_store(store)
|
|
@@ -331,12 +377,24 @@ module Spree
|
|
|
331
377
|
end
|
|
332
378
|
end
|
|
333
379
|
|
|
380
|
+
def any_variant_in_stock_or_backorderable?
|
|
381
|
+
if variants.any?
|
|
382
|
+
variants_including_master.in_stock_or_backorderable.exists?
|
|
383
|
+
else
|
|
384
|
+
master.in_stock_or_backorderable?
|
|
385
|
+
end
|
|
386
|
+
end
|
|
387
|
+
|
|
388
|
+
def digital?
|
|
389
|
+
shipping_category&.name == I18n.t('spree.seed.shipping.categories.digital')
|
|
390
|
+
end
|
|
391
|
+
|
|
334
392
|
private
|
|
335
393
|
|
|
336
394
|
def add_associations_from_prototype
|
|
337
395
|
if prototype_id && prototype = Spree::Prototype.find_by(id: prototype_id)
|
|
338
396
|
prototype.properties.each do |property|
|
|
339
|
-
product_properties.create(property: property)
|
|
397
|
+
product_properties.create(property: property, value: 'Placeholder')
|
|
340
398
|
end
|
|
341
399
|
self.option_types = prototype.option_types
|
|
342
400
|
self.taxons = prototype.taxons
|
|
@@ -384,7 +442,11 @@ module Spree
|
|
|
384
442
|
|
|
385
443
|
def punch_slug
|
|
386
444
|
# punch slug with date prefix to allow reuse of original
|
|
387
|
-
|
|
445
|
+
return if frozen?
|
|
446
|
+
|
|
447
|
+
translations.with_deleted.each do |t|
|
|
448
|
+
t.update_column :slug, "#{Time.current.to_i}_#{t.slug}"[0..254]
|
|
449
|
+
end
|
|
388
450
|
end
|
|
389
451
|
|
|
390
452
|
def update_slug_history
|
|
@@ -472,8 +534,8 @@ module Spree
|
|
|
472
534
|
Spree::Taxonomy.where(id: taxonomy_ids).update_all(updated_at: Time.current)
|
|
473
535
|
end
|
|
474
536
|
|
|
475
|
-
def
|
|
476
|
-
if
|
|
537
|
+
def ensure_not_in_complete_orders
|
|
538
|
+
if orders.complete.any?
|
|
477
539
|
errors.add(:base, :cannot_destroy_if_attached_to_line_items)
|
|
478
540
|
throw(:abort)
|
|
479
541
|
end
|
|
@@ -484,8 +546,8 @@ module Spree
|
|
|
484
546
|
removed_classifications.each &:remove_from_list
|
|
485
547
|
end
|
|
486
548
|
|
|
487
|
-
def
|
|
488
|
-
if discontinue_on <
|
|
549
|
+
def discontinue_on_must_be_later_than_make_active_at
|
|
550
|
+
if discontinue_on < make_active_at
|
|
489
551
|
errors.add(:discontinue_on, :invalid_date_range)
|
|
490
552
|
end
|
|
491
553
|
end
|
|
@@ -501,5 +563,17 @@ module Spree
|
|
|
501
563
|
def downcase_slug
|
|
502
564
|
slug&.downcase!
|
|
503
565
|
end
|
|
566
|
+
|
|
567
|
+
def after_activate
|
|
568
|
+
# this method is prepended in api/ to queue Webhooks requests
|
|
569
|
+
end
|
|
570
|
+
|
|
571
|
+
def after_archive
|
|
572
|
+
# this method is prepended in api/ to queue Webhooks requests
|
|
573
|
+
end
|
|
574
|
+
|
|
575
|
+
def after_draft
|
|
576
|
+
# this method is prepended in api/ to queue Webhooks requests
|
|
577
|
+
end
|
|
504
578
|
end
|
|
505
579
|
end
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class ProductProperty < Spree::Base
|
|
3
3
|
include Spree::FilterParam
|
|
4
|
+
include TranslatableResource
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
TRANSLATABLE_FIELDS = %i[value filter_param].freeze
|
|
7
|
+
translates(*TRANSLATABLE_FIELDS)
|
|
8
|
+
|
|
9
|
+
self::Translation.class_eval do
|
|
10
|
+
auto_strip_attributes :value
|
|
11
|
+
end
|
|
6
12
|
|
|
7
13
|
acts_as_list scope: :product
|
|
8
14
|
|
|
@@ -13,6 +19,7 @@ module Spree
|
|
|
13
19
|
|
|
14
20
|
validates :property, presence: true
|
|
15
21
|
validates :property_id, uniqueness: { scope: :product_id }
|
|
22
|
+
validates :value, presence: true
|
|
16
23
|
|
|
17
24
|
default_scope { order(:position) }
|
|
18
25
|
|
|
@@ -30,8 +37,11 @@ module Spree
|
|
|
30
37
|
`ProductProperty#property_name=` is deprecated and will be removed in Spree 5.0.
|
|
31
38
|
DEPRECATION
|
|
32
39
|
if name.present?
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
self.property = if Property.where(name: name).exists?
|
|
41
|
+
Property.where(name: name).first
|
|
42
|
+
else
|
|
43
|
+
Property.create(name: name, presentation: name)
|
|
44
|
+
end
|
|
35
45
|
end
|
|
36
46
|
end
|
|
37
47
|
|
|
@@ -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,8 +1,18 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Property < Spree::Base
|
|
3
3
|
include Spree::FilterParam
|
|
4
|
+
include Metadata
|
|
5
|
+
include TranslatableResource
|
|
6
|
+
if defined?(Spree::Webhooks)
|
|
7
|
+
include Spree::Webhooks::HasWebhooks
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
TRANSLATABLE_FIELDS = %i[name presentation filter_param].freeze
|
|
11
|
+
translates(*TRANSLATABLE_FIELDS)
|
|
4
12
|
|
|
5
|
-
|
|
13
|
+
self::Translation.class_eval do
|
|
14
|
+
auto_strip_attributes :name, :presentation
|
|
15
|
+
end
|
|
6
16
|
|
|
7
17
|
has_many :property_prototypes, class_name: 'Spree::PropertyPrototype'
|
|
8
18
|
has_many :prototypes, through: :property_prototypes, class_name: 'Spree::Prototype'
|
|
@@ -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).
|
|
@@ -243,7 +249,8 @@ module Spree
|
|
|
243
249
|
end
|
|
244
250
|
|
|
245
251
|
def selected_shipping_rate_id=(id)
|
|
246
|
-
|
|
252
|
+
# Explicitly updates the timestamp in order to bust cache dependent on "updated_at"
|
|
253
|
+
shipping_rates.update_all(selected: false, updated_at: Time.current)
|
|
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
|