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.
Files changed (599) hide show
  1. checksums.yaml +4 -4
  2. data/app/finders/spree/option_values/find_available.rb +9 -1
  3. data/app/finders/spree/products/find.rb +2 -4
  4. data/app/finders/spree/taxons/find.rb +1 -1
  5. data/app/helpers/spree/base_helper.rb +12 -13
  6. data/app/helpers/spree/currency_helper.rb +1 -1
  7. data/app/helpers/spree/locale_helper.rb +6 -2
  8. data/app/helpers/spree/products_helper.rb +10 -19
  9. data/app/jobs/spree/base_job.rb +4 -0
  10. data/app/jobs/spree/stock_locations/stock_items/create_job.rb +13 -0
  11. data/app/jobs/spree/variants/remove_from_incomplete_orders_job.rb +9 -0
  12. data/app/jobs/spree/variants/remove_line_item_job.rb +9 -0
  13. data/app/models/concerns/spree/calculated_adjustments.rb +1 -1
  14. data/app/models/concerns/spree/default_price.rb +1 -1
  15. data/app/models/concerns/spree/display_link.rb +17 -29
  16. data/app/models/concerns/spree/display_money.rb +3 -1
  17. data/app/models/concerns/spree/image_methods.rb +21 -9
  18. data/app/models/concerns/spree/memoized_data.rb +1 -1
  19. data/app/models/concerns/spree/metadata.rb +23 -0
  20. data/app/models/concerns/spree/multi_store_resource.rb +1 -1
  21. data/app/models/concerns/spree/named_type.rb +1 -1
  22. data/app/models/concerns/spree/number_identifier.rb +18 -0
  23. data/app/models/concerns/spree/product_scopes.rb +59 -27
  24. data/app/models/concerns/spree/unique_name.rb +10 -0
  25. data/app/models/concerns/spree/user_methods.rb +9 -0
  26. data/app/models/concerns/spree/user_reporting.rb +1 -1
  27. data/app/models/concerns/spree/user_roles.rb +20 -2
  28. data/app/models/spree/ability.rb +11 -3
  29. data/app/models/spree/address.rb +11 -3
  30. data/app/models/spree/adjustment.rb +1 -0
  31. data/app/models/spree/asset/support/active_storage.rb +3 -2
  32. data/app/models/spree/asset.rb +4 -0
  33. data/app/models/spree/base.rb +14 -0
  34. data/app/models/spree/calculator/flat_rate.rb +1 -1
  35. data/app/models/spree/calculator/flexi_rate.rb +1 -1
  36. data/app/models/spree/calculator/price_sack.rb +1 -1
  37. data/app/models/spree/calculator/shipping/digital_delivery.rb +22 -0
  38. data/app/models/spree/calculator/shipping/flat_rate.rb +1 -1
  39. data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -1
  40. data/app/models/spree/calculator/shipping/per_item.rb +1 -1
  41. data/app/models/spree/calculator/shipping/price_sack.rb +1 -1
  42. data/app/models/spree/calculator.rb +2 -2
  43. data/app/models/spree/cms_page.rb +7 -3
  44. data/app/models/spree/cms_section.rb +13 -13
  45. data/app/models/spree/cms_section_image.rb +15 -0
  46. data/app/models/spree/cms_section_image_one.rb +4 -0
  47. data/app/models/spree/cms_section_image_three.rb +4 -0
  48. data/app/models/spree/cms_section_image_two.rb +4 -0
  49. data/app/models/spree/country.rb +4 -2
  50. data/app/models/spree/credit_card.rb +17 -1
  51. data/app/models/spree/customer_return.rb +6 -1
  52. data/app/models/spree/digital.rb +19 -0
  53. data/app/models/spree/digital_link.rb +57 -0
  54. data/app/models/spree/fulfilment_changer.rb +1 -1
  55. data/app/models/spree/gateway/bogus.rb +5 -1
  56. data/app/models/spree/icon.rb +5 -1
  57. data/app/models/spree/image/configuration/active_storage.rb +6 -19
  58. data/app/models/spree/image.rb +3 -3
  59. data/app/models/spree/inventory_unit.rb +5 -2
  60. data/app/models/spree/legacy_user.rb +2 -2
  61. data/app/models/spree/line_item.rb +15 -4
  62. data/app/models/spree/linkable/homepage.rb +3 -0
  63. data/app/models/spree/linkable/uri.rb +3 -0
  64. data/app/models/spree/log_entry.rb +9 -1
  65. data/app/models/spree/menu.rb +3 -0
  66. data/app/models/spree/menu_item.rb +7 -11
  67. data/app/models/spree/option_type.rb +8 -4
  68. data/app/models/spree/option_value.rb +7 -0
  69. data/app/models/spree/order/address_book.rb +1 -0
  70. data/app/models/spree/order/checkout.rb +7 -1
  71. data/app/models/spree/order/digital.rb +33 -0
  72. data/app/models/spree/order.rb +45 -24
  73. data/app/models/spree/order_inventory.rb +1 -1
  74. data/app/models/spree/order_merger.rb +1 -1
  75. data/app/models/spree/order_promotion.rb +1 -1
  76. data/app/models/spree/payment/processing.rb +2 -1
  77. data/app/models/spree/payment.rb +32 -5
  78. data/app/models/spree/payment_capture_event.rb +4 -0
  79. data/app/models/spree/payment_method/store_credit.rb +1 -1
  80. data/app/models/spree/payment_method.rb +6 -1
  81. data/app/models/spree/payment_source.rb +10 -0
  82. data/app/models/spree/preference.rb +6 -1
  83. data/app/models/spree/price.rb +4 -1
  84. data/app/models/spree/product.rb +73 -30
  85. data/app/models/spree/product_property.rb +1 -0
  86. data/app/models/spree/promotion/rules/option_value.rb +2 -2
  87. data/app/models/spree/promotion/rules/product.rb +1 -1
  88. data/app/models/spree/promotion.rb +9 -1
  89. data/app/models/spree/promotion_action.rb +1 -1
  90. data/app/models/spree/promotion_rule.rb +1 -1
  91. data/app/models/spree/promotion_rule_user.rb +1 -1
  92. data/app/models/spree/property.rb +4 -0
  93. data/app/models/spree/prototype.rb +5 -0
  94. data/app/models/spree/refund.rb +10 -0
  95. data/app/models/spree/reimbursement.rb +4 -1
  96. data/app/models/spree/return_authorization.rb +7 -2
  97. data/app/models/spree/return_item.rb +5 -1
  98. data/app/models/spree/role.rb +3 -3
  99. data/app/models/spree/role_user.rb +1 -1
  100. data/app/models/spree/shipment.rb +11 -30
  101. data/app/models/spree/shipping_category.rb +4 -1
  102. data/app/models/spree/shipping_method.rb +8 -0
  103. data/app/models/spree/state.rb +1 -1
  104. data/app/models/spree/state_change.rb +1 -1
  105. data/app/models/spree/stock/availability_validator.rb +9 -3
  106. data/app/models/spree/stock/content_item.rb +1 -1
  107. data/app/models/spree/stock/quantifier.rb +2 -2
  108. data/app/models/spree/stock/splitter/digital.rb +35 -0
  109. data/app/models/spree/stock_item.rb +7 -2
  110. data/app/models/spree/stock_location.rb +23 -31
  111. data/app/models/spree/stock_movement.rb +7 -0
  112. data/app/models/spree/stock_transfer.rb +6 -6
  113. data/app/models/spree/store.rb +58 -20
  114. data/app/models/spree/store_credit.rb +10 -3
  115. data/app/models/spree/store_credit_category.rb +2 -0
  116. data/app/models/spree/store_credit_event.rb +2 -7
  117. data/app/models/spree/store_credit_type.rb +2 -0
  118. data/app/models/spree/store_favicon_image.rb +17 -0
  119. data/app/models/spree/store_logo.rb +9 -0
  120. data/app/models/spree/store_mailer_logo.rb +13 -0
  121. data/app/models/spree/tax_category.rb +9 -1
  122. data/app/models/spree/tax_rate.rb +9 -2
  123. data/app/models/spree/taxon.rb +14 -0
  124. data/app/models/spree/taxon_image/configuration/active_storage.rb +6 -12
  125. data/app/models/spree/taxon_image.rb +3 -2
  126. data/app/models/spree/taxonomy.rb +11 -1
  127. data/app/models/spree/variant.rb +63 -24
  128. data/app/models/spree/wished_item.rb +33 -0
  129. data/app/models/spree/wishlist.rb +38 -0
  130. data/app/models/spree/zone.rb +11 -6
  131. data/app/services/spree/account/addresses/create.rb +1 -17
  132. data/app/services/spree/account/addresses/update.rb +1 -22
  133. data/app/services/spree/addresses/create.rb +24 -0
  134. data/app/services/spree/addresses/helper.rb +41 -0
  135. data/app/services/spree/addresses/update.rb +32 -0
  136. data/app/services/spree/cart/add_item.rb +4 -2
  137. data/app/services/spree/cart/create.rb +4 -2
  138. data/app/services/spree/cart/remove_line_item.rb +1 -0
  139. data/app/services/spree/cart/update.rb +2 -2
  140. data/app/services/spree/checkout/add_store_credit.rb +4 -1
  141. data/app/services/spree/checkout/select_shipping_method.rb +49 -0
  142. data/app/services/spree/checkout/update.rb +3 -10
  143. data/app/services/spree/line_items/create.rb +20 -0
  144. data/app/services/spree/line_items/destroy.rb +18 -0
  145. data/app/services/spree/line_items/helper.rb +11 -0
  146. data/app/services/spree/line_items/update.rb +17 -0
  147. data/app/services/spree/orders/approve.rb +18 -0
  148. data/app/services/spree/orders/cancel.rb +18 -0
  149. data/app/services/spree/payments/create.rb +66 -0
  150. data/app/services/spree/seeds/all.rb +26 -0
  151. data/app/services/spree/seeds/countries.rb +50 -0
  152. data/app/services/spree/seeds/default_reimbursement_types.rb +12 -0
  153. data/app/services/spree/seeds/roles.rb +11 -0
  154. data/app/services/spree/seeds/shipping_categories.rb +12 -0
  155. data/app/services/spree/seeds/states.rb +72 -0
  156. data/app/services/spree/seeds/stock_locations.rb +18 -0
  157. data/app/services/spree/seeds/store_credit_categories.rb +14 -0
  158. data/app/services/spree/seeds/stores.rb +31 -0
  159. data/app/services/spree/seeds/zones.rb +39 -0
  160. data/app/services/spree/shipments/add_item.rb +32 -0
  161. data/app/services/spree/shipments/change_state.rb +14 -0
  162. data/app/services/spree/shipments/create.rb +48 -0
  163. data/app/services/spree/shipments/helper.rb +23 -0
  164. data/app/services/spree/shipments/remove_item.rb +55 -0
  165. data/app/services/spree/shipments/update.rb +40 -0
  166. data/app/services/spree/stock_locations/stock_items/create.rb +31 -0
  167. data/app/services/spree/variants/remove_line_items.rb +15 -0
  168. data/app/services/spree/wallet/create_payment_source.rb +26 -0
  169. data/app/validators/spree/url_validator.rb +23 -0
  170. data/brakeman.ignore +20 -0
  171. data/config/initializers/active_storage.rb +0 -6
  172. data/config/locales/en.yml +19 -170
  173. data/config/routes.rb +43 -0
  174. data/db/migrate/20210914000000_spree_four_three.rb +1205 -0
  175. data/db/migrate/20210915064321_add_metadata_to_spree_orders.rb +13 -0
  176. data/db/migrate/20210915064322_add_metadata_to_spree_products.rb +13 -0
  177. data/db/migrate/20210915064323_add_metadata_to_spree_variants.rb +13 -0
  178. data/db/migrate/20210915064324_add_metadata_to_spree_line_items.rb +13 -0
  179. data/db/migrate/20210915064325_add_metadata_to_spree_shipments.rb +13 -0
  180. data/db/migrate/20210915064326_add_metadata_to_spree_payments.rb +13 -0
  181. data/db/migrate/20210915064327_add_metadata_to_spree_taxons_and_taxonomies.rb +18 -0
  182. data/db/migrate/20210915064328_add_metadata_to_spree_stock_transfers.rb +13 -0
  183. data/db/migrate/20210915064329_add_metadata_to_spree_multiple_tables.rb +30 -0
  184. data/db/migrate/20210920090344_add_deleted_at_to_spree_stores.rb +8 -0
  185. data/db/migrate/20210921070812_rename_column_access_hash_to_token.rb +8 -0
  186. data/db/migrate/20210921070813_create_spree_wishlists.rb +18 -0
  187. data/db/migrate/20210921070814_create_spree_wished_products.rb +16 -0
  188. data/db/migrate/20210921070815_rename_spree_wished_products_to_spree_wished_items.rb +5 -0
  189. data/db/migrate/20210921090344_add_unique_stock_item_stock_location_variant_deleted_at_index.rb +5 -0
  190. data/db/migrate/20210929090344_create_stock_item_stock_location_id_variant_id_coalesce_deleted_at_unique_index.rb +32 -0
  191. data/db/migrate/20210929091444_create_spree_digital_links.rb +13 -0
  192. data/db/migrate/20210929093238_create_spree_digitals.rb +9 -0
  193. data/db/migrate/20210930143043_rename_secret_to_token_on_spree_digital_links.rb +5 -0
  194. data/db/migrate/20210930155649_add_settings_to_spree_stores.rb +11 -0
  195. data/db/migrate/20211201202851_update_linkable_resource_types.rb +10 -0
  196. data/db/migrate/20211203082008_add_settings_to_payment_methods.rb +11 -0
  197. data/db/migrate/20211229162122_disable_propagate_all_variants_by_default.rb +5 -0
  198. data/db/migrate/20220103082046_add_status_and_make_active_at_to_spree_products.rb +7 -0
  199. data/db/migrate/20220106230929_add_internal_note_to_spree_orders.rb +5 -0
  200. data/db/migrate/20220113052823_create_payment_sources.rb +22 -0
  201. data/db/migrate/20220117100333_add_make_active_at_to_spree_products.rb +17 -0
  202. data/db/migrate/20220120092821_add_metadata_to_spree_tax_rates.rb +13 -0
  203. data/db/migrate/20220201103922_add_first_name_and_last_name_to_spree_users.rb +9 -0
  204. data/db/migrate/20220222083546_add_barcode_to_spree_variants.rb +6 -0
  205. data/db/migrate/20220329113557_fix_cms_pages_unique_indexes.rb +8 -0
  206. data/db/migrate/20220613133029_add_metadata_to_spree_stock_items.rb +13 -0
  207. data/db/seeds.rb +1 -5
  208. data/lib/friendly_id/paranoia.rb +4 -0
  209. data/lib/generators/spree/dummy/dummy_generator.rb +14 -3
  210. data/lib/generators/spree/dummy/templates/package.json +12 -0
  211. data/lib/generators/spree/dummy/templates/rails/database.yml +20 -18
  212. data/lib/generators/spree/dummy/templates/rails/test.rb +2 -0
  213. data/lib/spree/core/configuration.rb +90 -0
  214. data/lib/spree/core/controller_helpers/auth.rb +7 -5
  215. data/lib/spree/core/controller_helpers/common.rb +15 -1
  216. data/lib/spree/core/controller_helpers/currency.rb +8 -6
  217. data/lib/spree/core/controller_helpers/locale.rb +8 -6
  218. data/lib/spree/core/controller_helpers/order.rb +4 -2
  219. data/lib/spree/core/controller_helpers/search.rb +1 -1
  220. data/lib/spree/core/controller_helpers/store.rb +5 -3
  221. data/lib/spree/core/dependencies.rb +130 -0
  222. data/lib/spree/core/engine.rb +54 -45
  223. data/lib/spree/core/importer/product.rb +1 -1
  224. data/lib/spree/core/number_generator.rb +0 -2
  225. data/{app/models/spree → lib/spree/core}/preferences/configuration.rb +5 -2
  226. data/{app/models/spree → lib/spree/core}/preferences/preferable.rb +3 -0
  227. data/{app/models/spree → lib/spree/core}/preferences/preferable_class_methods.rb +2 -0
  228. data/{app/models/spree → lib/spree/core}/preferences/store.rb +1 -1
  229. data/lib/spree/core/search/base.rb +9 -5
  230. data/lib/spree/core/version.rb +1 -1
  231. data/lib/spree/core.rb +41 -13
  232. data/lib/spree/money.rb +2 -2
  233. data/lib/spree/permitted_attributes.rb +36 -16
  234. data/lib/spree/testing_support/authorization_helpers.rb +3 -1
  235. data/lib/spree/testing_support/capybara_config.rb +14 -19
  236. data/lib/spree/testing_support/capybara_ext.rb +1 -6
  237. data/lib/spree/testing_support/common_rake.rb +23 -4
  238. data/lib/spree/testing_support/factories/asset_factory.rb +15 -0
  239. data/lib/spree/testing_support/factories/cms_section_factory.rb +2 -2
  240. data/lib/spree/testing_support/factories/digital_factory.rb +10 -0
  241. data/lib/spree/testing_support/factories/digital_link_factory.rb +6 -0
  242. data/lib/spree/testing_support/factories/favicon_image_factory.rb +9 -0
  243. data/lib/spree/testing_support/factories/icon_factory.rb +3 -1
  244. data/lib/spree/testing_support/factories/image_factory.rb +3 -1
  245. data/lib/spree/testing_support/factories/log_entry_factory.rb +6 -0
  246. data/lib/spree/testing_support/factories/menu_item_factory.rb +1 -1
  247. data/lib/spree/testing_support/factories/order_factory.rb +6 -2
  248. data/lib/spree/testing_support/factories/payment_capture_event_factory.rb +6 -0
  249. data/lib/spree/testing_support/factories/payment_factory.rb +3 -3
  250. data/lib/spree/testing_support/factories/product_factory.rb +6 -1
  251. data/lib/spree/testing_support/factories/product_property_factory.rb +1 -0
  252. data/lib/spree/testing_support/factories/promotion_action_factory.rb +5 -0
  253. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  254. data/lib/spree/testing_support/factories/reimbursement_credit_factory.rb +7 -0
  255. data/lib/spree/testing_support/factories/return_authorization_factory.rb +1 -1
  256. data/lib/spree/testing_support/factories/role_factory.rb +1 -1
  257. data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
  258. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -0
  259. data/lib/spree/testing_support/factories/state_change_factory.rb +8 -0
  260. data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -0
  261. data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -3
  262. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +9 -0
  263. data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
  264. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
  265. data/lib/spree/testing_support/factories/store_factory.rb +1 -1
  266. data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -0
  267. data/lib/spree/testing_support/factories/taxon_image_factory.rb +3 -1
  268. data/lib/spree/testing_support/factories/user_factory.rb +6 -0
  269. data/lib/spree/testing_support/factories/variant_factory.rb +4 -0
  270. data/lib/spree/testing_support/factories/wished_variant_factory.rb +6 -0
  271. data/lib/spree/testing_support/factories/wishlist_factory.rb +18 -0
  272. data/lib/spree/testing_support/jobs.rb +9 -0
  273. data/lib/spree/testing_support/metadata.rb +54 -0
  274. data/lib/spree_core.rb +2 -1
  275. data/lib/tasks/core.rake +16 -4
  276. data/spree_core.gemspec +4 -4
  277. metadata +160 -366
  278. data/app/models/friendly_id/slug_decorator.rb +0 -9
  279. data/app/models/spree/app_configuration.rb +0 -89
  280. data/app/models/spree/app_dependencies.rb +0 -98
  281. data/app/services/spree/account/addresses/helper.rb +0 -43
  282. data/app/services/spree/build_localized_redirect_url.rb +0 -101
  283. data/db/default/spree/countries.rb +0 -24
  284. data/db/default/spree/default_reimbursement_type.rb +0 -1
  285. data/db/default/spree/roles.rb +0 -2
  286. data/db/default/spree/states.rb +0 -49
  287. data/db/default/spree/store_credit_categories.rb +0 -1
  288. data/db/default/spree/stores.rb +0 -21
  289. data/db/default/spree/zones.rb +0 -29
  290. data/db/migrate/20120831092320_spree_one_two.rb +0 -481
  291. data/db/migrate/20120831092359_spree_promo_one_two.rb +0 -45
  292. data/db/migrate/20120905145253_add_tax_rate_label.rb +0 -5
  293. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +0 -5
  294. data/db/migrate/20120929093553_remove_unused_preference_columns.rb +0 -8
  295. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +0 -5
  296. data/db/migrate/20121010142909_add_states_required_to_countries.rb +0 -5
  297. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +0 -6
  298. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +0 -11
  299. data/db/migrate/20121031162139_split_prices_from_variants.rb +0 -31
  300. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +0 -9
  301. data/db/migrate/20121107184631_add_currency_to_line_items.rb +0 -5
  302. data/db/migrate/20121107194006_add_currency_to_orders.rb +0 -5
  303. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +0 -5
  304. data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +0 -5
  305. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +0 -5
  306. data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +0 -5
  307. data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +0 -6
  308. data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +0 -9
  309. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +0 -6
  310. data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +0 -5
  311. data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +0 -9
  312. data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +0 -5
  313. data/db/migrate/20130211190146_create_spree_stock_items.rb +0 -14
  314. data/db/migrate/20130211191120_create_spree_stock_locations.rb +0 -11
  315. data/db/migrate/20130213191427_create_default_stock.rb +0 -33
  316. data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +0 -5
  317. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +0 -5
  318. data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +0 -5
  319. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +0 -6
  320. data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +0 -6
  321. data/db/migrate/20130228210442_create_shipping_method_zone.rb +0 -21
  322. data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +0 -5
  323. data/db/migrate/20130301162924_create_shipping_method_categories.rb +0 -13
  324. data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +0 -5
  325. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +0 -24
  326. data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +0 -7
  327. data/db/migrate/20130305143310_create_stock_movements.rb +0 -12
  328. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +0 -22
  329. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +0 -5
  330. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +0 -5
  331. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +0 -5
  332. data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +0 -8
  333. data/db/migrate/20130319062004_change_orders_total_precision.rb +0 -8
  334. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +0 -7
  335. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +0 -7
  336. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +0 -7
  337. data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +0 -7
  338. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +0 -15
  339. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +0 -9
  340. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +0 -5
  341. data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +0 -15
  342. data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +0 -9
  343. data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +0 -14
  344. data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +0 -5
  345. data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +0 -13
  346. data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +0 -5
  347. data/db/migrate/20130417120035_update_adjustment_states.rb +0 -16
  348. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +0 -15
  349. data/db/migrate/20130418125341_create_spree_stock_transfers.rb +0 -14
  350. data/db/migrate/20130423110707_drop_products_count_on_hand.rb +0 -5
  351. data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +0 -5
  352. data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +0 -23
  353. data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +0 -5
  354. data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +0 -5
  355. data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +0 -5
  356. data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +0 -5
  357. data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +0 -5
  358. data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +0 -9
  359. data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +0 -9
  360. data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +0 -6
  361. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +0 -5
  362. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +0 -7
  363. data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +0 -5
  364. data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +0 -6
  365. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +0 -5
  366. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +0 -6
  367. data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +0 -5
  368. data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +0 -5
  369. data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +0 -5
  370. data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +0 -10
  371. data/db/migrate/20130806022521_drop_spree_mail_methods.rb +0 -12
  372. data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +0 -8
  373. data/db/migrate/20130807024301_upgrade_adjustments.rb +0 -46
  374. data/db/migrate/20130807024302_rename_adjustment_fields.rb +0 -20
  375. data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +0 -5
  376. data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +0 -5
  377. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +0 -5
  378. data/db/migrate/20130813140619_expand_order_number_size.rb +0 -9
  379. data/db/migrate/20130813232134_rename_activators_to_promotions.rb +0 -5
  380. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +0 -5
  381. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +0 -5
  382. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +0 -16
  383. data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +0 -8
  384. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +0 -15
  385. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +0 -19
  386. data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +0 -5
  387. data/db/migrate/20130909115621_change_states_required_for_countries.rb +0 -9
  388. data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +0 -5
  389. data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +0 -5
  390. data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +0 -7
  391. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +0 -16
  392. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +0 -5
  393. data/db/migrate/20131107132123_add_tax_category_to_variants.rb +0 -6
  394. data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +0 -5
  395. data/db/migrate/20131118043959_add_included_to_adjustments.rb +0 -5
  396. data/db/migrate/20131118050234_rename_tax_total_fields.rb +0 -11
  397. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -21
  398. data/db/migrate/20131120234456_add_updated_at_to_variants.rb +0 -5
  399. data/db/migrate/20131127001002_add_position_to_classifications.rb +0 -5
  400. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +0 -8
  401. data/db/migrate/20131211192741_unique_shipping_method_categories.rb +0 -24
  402. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +0 -5
  403. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +0 -8
  404. data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +0 -5
  405. data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +0 -5
  406. data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +0 -6
  407. data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +0 -5
  408. data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +0 -6
  409. data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +0 -5
  410. data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +0 -5
  411. data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +0 -12
  412. data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +0 -5
  413. data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +0 -11
  414. data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +0 -5
  415. data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +0 -5
  416. data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +0 -6
  417. data/db/migrate/20140213184916_add_more_indexes.rb +0 -13
  418. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +0 -5
  419. data/db/migrate/20140227112348_add_preference_store_to_everything.rb +0 -8
  420. data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +0 -13
  421. data/db/migrate/20140309023735_migrate_old_preferences.rb +0 -27
  422. data/db/migrate/20140309024355_create_spree_stores.rb +0 -25
  423. data/db/migrate/20140309033438_create_store_from_preferences.rb +0 -42
  424. data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +0 -6
  425. data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +0 -8
  426. data/db/migrate/20140331100557_add_additional_store_fields.rb +0 -8
  427. data/db/migrate/20140410141842_add_many_missing_indexes.rb +0 -18
  428. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +0 -66
  429. data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +0 -5
  430. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +0 -8
  431. data/db/migrate/20140518174634_add_token_to_spree_orders.rb +0 -5
  432. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +0 -29
  433. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +0 -10
  434. data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +0 -6
  435. data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +0 -6
  436. data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +0 -5
  437. data/db/migrate/20140625214618_create_spree_refunds.rb +0 -12
  438. data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +0 -12
  439. data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +0 -5
  440. data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +0 -10
  441. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -55
  442. data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +0 -7
  443. data/db/migrate/20140710190048_drop_return_authorization_amount.rb +0 -5
  444. data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +0 -28
  445. data/db/migrate/20140713140527_create_spree_refund_reasons.rb +0 -14
  446. data/db/migrate/20140713142214_rename_return_authorization_reason.rb +0 -5
  447. data/db/migrate/20140715182625_create_spree_promotion_categories.rb +0 -11
  448. data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +0 -9
  449. data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +0 -6
  450. data/db/migrate/20140717155155_create_default_refund_reason.rb +0 -9
  451. data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +0 -7
  452. data/db/migrate/20140718133010_create_spree_customer_returns.rb +0 -9
  453. data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +0 -6
  454. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +0 -15
  455. data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +0 -5
  456. data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +0 -13
  457. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +0 -15
  458. data/db/migrate/20140725131539_create_spree_reimbursements.rb +0 -21
  459. data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +0 -5
  460. data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +0 -7
  461. data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +0 -5
  462. data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +0 -20
  463. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +0 -10
  464. data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +0 -5
  465. data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +0 -9
  466. data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +0 -10
  467. data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +0 -7
  468. data/db/migrate/20140911173301_add_kind_to_zone.rb +0 -11
  469. data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +0 -5
  470. data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +0 -6
  471. data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +0 -5
  472. data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +0 -6
  473. data/db/migrate/20141009204607_add_store_id_to_orders.rb +0 -8
  474. data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +0 -8
  475. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
  476. data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +0 -8
  477. data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +0 -13
  478. data/db/migrate/20141105213646_update_classifications_positions.rb +0 -9
  479. data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +0 -5
  480. data/db/migrate/20141215232040_remove_token_permissions_table.rb +0 -6
  481. data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +0 -5
  482. data/db/migrate/20141217215630_update_product_slug_index.rb +0 -6
  483. data/db/migrate/20141218025915_rename_identifier_to_number_for_payment.rb +0 -5
  484. data/db/migrate/20150118210639_create_spree_store_credits.rb +0 -24
  485. data/db/migrate/20150118211500_create_spree_store_credit_categories.rb +0 -8
  486. data/db/migrate/20150118212051_create_spree_store_credit_events.rb +0 -17
  487. data/db/migrate/20150118212101_create_spree_store_credit_types.rb +0 -10
  488. data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +0 -6
  489. data/db/migrate/20150122145607_add_resellable_to_return_items.rb +0 -5
  490. data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +0 -5
  491. data/db/migrate/20150128032538_remove_environment_from_tracker.rb +0 -8
  492. data/db/migrate/20150128060325_remove_spree_configurations.rb +0 -16
  493. data/db/migrate/20150216173445_add_index_to_spree_stock_items_variant_id.rb +0 -13
  494. data/db/migrate/20150309161154_ensure_payments_have_numbers.rb +0 -13
  495. data/db/migrate/20150314013438_add_missing_indexes_on_spree_tables.rb +0 -67
  496. data/db/migrate/20150317174308_remove_duplicated_indexes_from_multi_columns.rb +0 -18
  497. data/db/migrate/20150324104002_remove_user_index_from_spree_state_changes.rb +0 -14
  498. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -70
  499. data/db/migrate/20150522071831_add_position_to_spree_payment_methods.rb +0 -5
  500. data/db/migrate/20150522181728_add_deleted_at_to_friendly_id_slugs.rb +0 -6
  501. data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +0 -16
  502. data/db/migrate/20150626181949_add_taxable_adjustment_total_to_line_item.rb +0 -19
  503. data/db/migrate/20150627090949_migrate_payment_methods_display.rb +0 -12
  504. data/db/migrate/20150707204155_enable_acts_as_paranoid_on_calculators.rb +0 -6
  505. data/db/migrate/20150714154102_spree_payment_method_store_credits.rb +0 -12
  506. data/db/migrate/20150726141425_rename_has_and_belongs_to_associations_to_model_names.rb +0 -18
  507. data/db/migrate/20150727191614_spree_store_credit_types.rb +0 -11
  508. data/db/migrate/20150819154308_add_discontinued_to_products_and_variants.rb +0 -68
  509. data/db/migrate/20151220072838_remove_shipping_method_id_from_spree_orders.rb +0 -13
  510. data/db/migrate/20160207191757_add_id_column_to_earlier_habtm_tables.rb +0 -16
  511. data/db/migrate/20160219165458_add_indexes.rb +0 -14
  512. data/db/migrate/20160509064646_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +0 -10
  513. data/db/migrate/20160608090604_add_zipcode_required_to_spree_countries.rb +0 -7
  514. data/db/migrate/20161014145148_add_created_at_to_variant.rb +0 -8
  515. data/db/migrate/20161014152814_add_null_false_to_spree_variants_timestamps.rb +0 -6
  516. data/db/migrate/20161125065505_add_quantity_to_inventory_units.rb +0 -5
  517. data/db/migrate/20170119122701_add_original_return_item_id_to_spree_inventory_units.rb +0 -29
  518. data/db/migrate/20170315152755_add_unique_index_on_number_to_spree_orders.rb +0 -16
  519. data/db/migrate/20170316154338_add_unique_index_on_number_to_spree_stock_transfer.rb +0 -16
  520. data/db/migrate/20170316205511_add_unique_index_on_number_to_spree_shipment.rb +0 -16
  521. data/db/migrate/20170320134043_add_unique_index_on_number_to_spree_payments.rb +0 -17
  522. data/db/migrate/20170320142750_add_unique_index_on_number_to_spree_return_authorizations.rb +0 -16
  523. data/db/migrate/20170320145040_add_unique_index_on_number_to_spree_customer_returns.rb +0 -16
  524. data/db/migrate/20170320145518_add_unique_index_on_number_to_spree_reimbursements.rb +0 -16
  525. data/db/migrate/20170323151450_add_missing_unique_indexes_for_unique_attributes.rb +0 -37
  526. data/db/migrate/20170329110859_add_index_on_stock_location_to_spree_customer_returns.rb +0 -5
  527. data/db/migrate/20170329113917_add_index_on_prototype_to_spree_option_type_prototype.rb +0 -19
  528. data/db/migrate/20170330082155_add_indexes_to_spree_option_value_variant.rb +0 -19
  529. data/db/migrate/20170330132215_add_index_on_promotion_id_to_order_promotions.rb +0 -5
  530. data/db/migrate/20170331101758_add_indexes_for_property_prototype.rb +0 -20
  531. data/db/migrate/20170331103334_add_index_for_prototype_id_to_prototype_taxons.rb +0 -5
  532. data/db/migrate/20170331110454_add_indexes_to_refunds.rb +0 -6
  533. data/db/migrate/20170331111757_add_indexes_to_reimbursement_credits.rb +0 -6
  534. data/db/migrate/20170331115246_add_indexes_to_return_authorizations.rb +0 -6
  535. data/db/migrate/20170331120125_add_indexes_to_return_items.rb +0 -11
  536. data/db/migrate/20170331121725_add_index_to_role_users.rb +0 -18
  537. data/db/migrate/20170331123625_add_index_to_shipping_method_categories.rb +0 -5
  538. data/db/migrate/20170331123832_add_index_to_shipping_method_zones.rb +0 -20
  539. data/db/migrate/20170331124251_add_index_to_spree_shipping_rates.rb +0 -6
  540. data/db/migrate/20170331124513_add_index_to_spree_stock_items.rb +0 -5
  541. data/db/migrate/20170331124924_add_index_to_spree_stock_movement.rb +0 -5
  542. data/db/migrate/20170413211707_change_indexes_on_friendly_id_slugs.rb +0 -10
  543. data/db/migrate/20170722102643_add_analytics_kind_to_spree_trackers.rb +0 -5
  544. data/db/migrate/20170727103056_rename_tracker_kind_field.rb +0 -5
  545. data/db/migrate/20171004223836_remove_icon_from_taxons.rb +0 -8
  546. data/db/migrate/20180222133746_add_unique_index_on_spree_promotions_code.rb +0 -6
  547. data/db/migrate/20180613080857_rename_guest_token_to_token_in_orders.rb +0 -5
  548. data/db/migrate/20180915160001_add_timestamps_to_spree_prices.rb +0 -12
  549. data/db/migrate/20181024100754_add_deleted_at_to_spree_credit_cards.rb +0 -6
  550. data/db/migrate/20190305121659_add_iso_and_iso3_validation_on_presence_and_uniqueness.rb +0 -18
  551. data/db/migrate/20190523092729_add_user_id_and_deleted_at_to_spree_addresses.rb +0 -12
  552. data/db/migrate/20191005121504_add_store_id_to_payment_methods.rb +0 -7
  553. data/db/migrate/20191016134113_add_deafult_value_for_store_default_currency.rb +0 -5
  554. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +0 -11
  555. data/db/migrate/20200102141311_add_social_to_spree_stores.rb +0 -10
  556. data/db/migrate/20200212144523_add_hide_from_nav_to_taxons.rb +0 -5
  557. data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +0 -7
  558. data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +0 -7
  559. data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +0 -7
  560. data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +0 -9
  561. data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +0 -8
  562. data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +0 -5
  563. data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +0 -7
  564. data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +0 -7
  565. data/db/migrate/20200610113542_add_label_to_spree_addresses.rb +0 -5
  566. data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +0 -5
  567. data/db/migrate/20201006110150_add_checkout_zone_field_to_store.rb +0 -12
  568. data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +0 -10
  569. data/db/migrate/20201013084504_add_seo_robots_to_spree_stores.rb +0 -5
  570. data/db/migrate/20201023152810_add_filterable_to_spree_properties.rb +0 -8
  571. data/db/migrate/20201127084048_add_default_country_kind_to_spree_zones.rb +0 -5
  572. data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +0 -5
  573. data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +0 -10
  574. data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +0 -15
  575. data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +0 -5
  576. data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +0 -5
  577. data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +0 -11
  578. data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +0 -22
  579. data/db/migrate/20210407200948_create_spree_menus.rb +0 -16
  580. data/db/migrate/20210408092939_create_spree_menu_items.rb +0 -31
  581. data/db/migrate/20210504163720_add_filter_param_to_spree_product_properties.rb +0 -8
  582. data/db/migrate/20210505114659_add_filter_param_to_spree_properties.rb +0 -8
  583. data/db/migrate/20210512191732_create_spree_cms_pages.rb +0 -24
  584. data/db/migrate/20210514204251_create_spree_cms_sections.rb +0 -22
  585. data/db/migrate/20210527094055_create_spree_products_stores.rb +0 -36
  586. data/db/migrate/20210608045519_ensure_store_default_country_is_set.rb +0 -5
  587. data/db/migrate/20210702112334_add_missing_timestamp_columns.rb +0 -46
  588. data/db/migrate/20210713131614_add_unique_index_on_property_id_and_product_id_to_product_properties.rb +0 -29
  589. data/db/migrate/20210715091956_add_store_id_to_spree_store_credits.rb +0 -10
  590. data/db/migrate/20210716093151_add_store_id_to_spree_taxonomies.rb +0 -11
  591. data/db/migrate/20210716104141_add_index_on_name_parent_id_and_taxonomy_id_on_spree_taxons.rb +0 -31
  592. data/db/migrate/20210721120857_add_index_on_permalink_parent_id_and_taxonomy_id_on_spree_taxons.rb +0 -31
  593. data/db/migrate/20210721125657_create_spree_promotions_stores.rb +0 -29
  594. data/db/migrate/20210722090705_add_store_id_to_spree_customer_returns.rb +0 -11
  595. data/db/migrate/20210726065456_change_integer_id_columns_into_bigint.rb +0 -305
  596. data/db/migrate/20210730154425_fix_promotion_code_and_path_unique_indexes.rb +0 -9
  597. data/lib/friendly_id/slug_rails5_patch.rb +0 -11
  598. /data/lib/spree/{dependencies_helper.rb → core/dependencies_helper.rb} +0 -0
  599. /data/{app/models/spree → lib/spree/core}/preferences/scoped_store.rb +0 -0
@@ -1,5 +1,9 @@
1
1
  module Spree
2
2
  class PaymentCaptureEvent < Spree::Base
3
+ if defined?(Spree::Webhooks)
4
+ include Spree::Webhooks::HasWebhooks
5
+ end
6
+
3
7
  belongs_to :payment, class_name: 'Spree::Payment'
4
8
 
5
9
  def display_amount
@@ -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
- has_and_belongs_to_many :stores
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, uniqueness: { case_sensitive: false, allow_blank: 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
@@ -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::Config[:currency]
72
+ self.currency ||= Spree::Store.default.default_currency
70
73
  end
71
74
  end
72
75
  end
@@ -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 :ensure_no_line_items
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 :discontinue_on_must_be_later_than_available_on, if: -> { available_on && discontinue_on }
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
- # Cant use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
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
- # Cant use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
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
- # Cant use short form block syntax due to https://github.com/Netflix/fast_jsonapi/issues/259
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
- attr_reader :prototype_id
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 nil or future available_on date
252
+ # deleted products and products with status different than active
228
253
  # are not available
229
254
  def available?
230
- !(available_on.nil? || available_on.future?) && !deleted? && !discontinued?
255
+ active? && !deleted?
231
256
  end
232
257
 
233
258
  def discontinue!
234
- update_attribute(:discontinue_on, Time.current)
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
- Float::INFINITY
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 ensure_no_line_items
476
- if line_items.any?
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 discontinue_on_must_be_later_than_available_on
488
- if discontinue_on < available_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
@@ -13,6 +13,7 @@ module Spree
13
13
 
14
14
  validates :property, presence: true
15
15
  validates :property_id, uniqueness: { scope: :product_id }
16
+ validates :value, presence: true
16
17
 
17
18
  default_scope { order(:position) }
18
19
 
@@ -4,9 +4,9 @@ module Spree
4
4
  module OptionValueWithNumerificationSupport
5
5
  def preferred_eligible_values
6
6
  values = super || {}
7
- Hash[values.keys.map(&:to_i).zip(
7
+ Hash[values.keys.zip(
8
8
  values.values.map do |v|
9
- (v.is_a?(Array) ? v : v.split(',')).map(&:to_i)
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 assingned directly to the rule.
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
- has_and_belongs_to_many :stores, class_name: 'Spree::Store', join_table: 'spree_promotions_stores'
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 overriden in subclass
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[:base] << 'Promotion already contains this rule type'
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.to_s
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,6 +1,10 @@
1
1
  module Spree
2
2
  class Property < Spree::Base
3
3
  include Spree::FilterParam
4
+ include Metadata
5
+ if defined?(Spree::Webhooks)
6
+ include Spree::Webhooks::HasWebhooks
7
+ end
4
8
 
5
9
  auto_strip_attributes :name, :presentation
6
10
 
@@ -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
 
@@ -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
- order.nil? ? Spree::Config[:currency] : order.currency
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::Config[:currency]
172
+ return_authorization.try(:currency) || Spree::Store.default.default_currency
169
173
  end
170
174
 
171
175
  private
@@ -1,8 +1,8 @@
1
1
  module Spree
2
2
  class Role < Spree::Base
3
- has_many :role_users, class_name: 'Spree::RoleUser', dependent: :destroy
4
- has_many :users, through: :role_users, class_name: Spree.user_class.to_s
3
+ include UniqueName
5
4
 
6
- validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
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
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class RoleUser < Spree::Base
3
3
  belongs_to :role, class_name: 'Spree::Role'
4
- belongs_to :user, class_name: Spree.user_class.to_s
4
+ belongs_to :user, class_name: "::#{Spree.user_class}"
5
5
  end
6
6
  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 assigment below will replace the current shipping_method
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
- if update params
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
- validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
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
@@ -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)
@@ -1,6 +1,6 @@
1
1
  module Spree
2
2
  class StateChange < Spree::Base
3
- belongs_to :user, class_name: Spree.user_class.to_s, optional: true
3
+ belongs_to :user, class_name: "::#{Spree.user_class}", optional: true
4
4
  belongs_to :stateful, polymorphic: true
5
5
 
6
6
  def <=>(other)