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
@@ -25,6 +25,8 @@ module Spree
25
25
  belongs_to :ship_address, class_name: 'Spree::Address', optional: true
26
26
  belongs_to :bill_address, class_name: 'Spree::Address', optional: true
27
27
 
28
+ has_many :wishlists, class_name: 'Spree::Wishlist', foreign_key: :user_id
29
+
28
30
  self.whitelisted_ransackable_associations = %w[bill_address ship_address addresses]
29
31
  self.whitelisted_ransackable_attributes = %w[id email]
30
32
 
@@ -66,6 +68,13 @@ module Spree
66
68
  end
67
69
  end
68
70
 
71
+ def default_wishlist_for_store(current_store)
72
+ wishlists.find_or_create_by(is_default: true, store_id: current_store.id) do |wishlist|
73
+ wishlist.name = Spree.t(:default_wishlist_name)
74
+ wishlist.save
75
+ end
76
+ end
77
+
69
78
  private
70
79
 
71
80
  def check_completed_orders
@@ -41,7 +41,7 @@ module Spree
41
41
  end
42
42
 
43
43
  def completed_orders(store)
44
- orders.for_store(store).complete
44
+ orders.for_store(store).complete.order(currency: :desc)
45
45
  end
46
46
  end
47
47
  end
@@ -6,18 +6,36 @@ module Spree
6
6
  has_many :role_users, class_name: 'Spree::RoleUser', foreign_key: :user_id, dependent: :destroy
7
7
  has_many :spree_roles, through: :role_users, class_name: 'Spree::Role', source: :role
8
8
 
9
- scope :admin, -> { joins(:spree_roles).where(Spree::Role.table_name => { name: 'admin' }) }
9
+ scope :spree_admin, -> { joins(:spree_roles).where(Spree::Role.table_name => { name: 'admin' }) }
10
10
 
11
11
  # has_spree_role? simply needs to return true or false whether a user has a role or not.
12
12
  def has_spree_role?(role_name)
13
13
  spree_roles.exists?(name: role_name)
14
14
  end
15
15
 
16
+ def self.admin
17
+ ActiveSupport::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')
18
+
19
+ spree_admin
20
+ end
21
+
16
22
  def self.admin_created?
17
- admin.exists?
23
+ ActiveSupport::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')
24
+
25
+ spree_admin_created?
18
26
  end
19
27
 
20
28
  def admin?
29
+ ActiveSupport::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')
30
+
31
+ spree_admin?
32
+ end
33
+
34
+ def self.spree_admin_created?
35
+ spree_admin.exists?
36
+ end
37
+
38
+ def spree_admin?
21
39
  has_spree_role?('admin')
22
40
  end
23
41
  end
@@ -1,8 +1,9 @@
1
- # Implementation class for Cancan gem. Instead of overriding this class, consider adding new permissions
1
+ # Implementation class for Cancan gem. Instead of overriding this class, consider adding new permissions
2
2
  # using the special +register_ability+ method which allows extensions to add their own abilities.
3
3
  #
4
- # See http://github.com/ryanb/cancan for more details on cancan.
4
+ # See https://github.com/CanCanCommunity/cancancan for more details.
5
5
  require 'cancan'
6
+
6
7
  module Spree
7
8
  class Ability
8
9
  include CanCan::Ability
@@ -27,7 +28,7 @@ module Spree
27
28
 
28
29
  user ||= Spree.user_class.new
29
30
 
30
- if user.respond_to?(:has_spree_role?) && user.has_spree_role?('admin')
31
+ if user.persisted? && user.try(:spree_admin?)
31
32
  apply_admin_permissions(user)
32
33
  else
33
34
  apply_user_permissions(user)
@@ -85,6 +86,13 @@ module Spree
85
86
  can :read, ::Spree::Taxonomy
86
87
  can :read, ::Spree::Variant
87
88
  can :read, ::Spree::Zone
89
+ can :manage, ::Spree::Wishlist, user_id: user.id
90
+ can :show, ::Spree::Wishlist do |wishlist|
91
+ wishlist.user == user || wishlist.is_private == false
92
+ end
93
+ can [:create, :update, :destroy], ::Spree::WishedItem do |wished_item|
94
+ wished_item.wishlist.user == user
95
+ end
88
96
  end
89
97
 
90
98
  def protect_admin_role
@@ -2,6 +2,14 @@ module Spree
2
2
  class Address < Spree::Base
3
3
  require 'validates_zipcode'
4
4
 
5
+ include Metadata
6
+ if defined?(Spree::Webhooks)
7
+ include Spree::Webhooks::HasWebhooks
8
+ end
9
+ if defined?(Spree::Security::Addresses)
10
+ include Spree::Security::Addresses
11
+ end
12
+
5
13
  if Rails::VERSION::STRING >= '6.1'
6
14
  serialize :preferences, Hash, default: {}
7
15
  end
@@ -23,13 +31,13 @@ module Spree
23
31
  # we're not freezing this on purpose so developers can extend and manage
24
32
  # those attributes depending of the logic of their applications
25
33
  ADDRESS_FIELDS = %w(firstname lastname company address1 address2 city state zipcode country phone)
26
- EXCLUDED_KEYS_FOR_COMPARISION = %w(id updated_at created_at deleted_at label user_id)
34
+ EXCLUDED_KEYS_FOR_COMPARISON = %w(id updated_at created_at deleted_at label user_id)
27
35
 
28
36
  scope :not_deleted, -> { where(deleted_at: nil) }
29
37
 
30
38
  belongs_to :country, class_name: 'Spree::Country'
31
39
  belongs_to :state, class_name: 'Spree::State', optional: true
32
- belongs_to :user, class_name: Spree.user_class.name, optional: true
40
+ belongs_to :user, class_name: "::#{Spree.user_class}", optional: true
33
41
 
34
42
  has_many :shipments, inverse_of: :address
35
43
 
@@ -117,7 +125,7 @@ module Spree
117
125
  end
118
126
 
119
127
  def value_attributes
120
- attributes.except(*EXCLUDED_KEYS_FOR_COMPARISION)
128
+ attributes.except(*EXCLUDED_KEYS_FOR_COMPARISON)
121
129
  end
122
130
 
123
131
  def empty?
@@ -42,6 +42,7 @@ module Spree
42
42
  end
43
43
  end
44
44
 
45
+ # FIXME: we should check if we also need to fire this action after update
45
46
  after_create :update_adjustable_adjustment_total
46
47
  after_destroy :update_adjustable_adjustment_total
47
48
 
@@ -8,7 +8,7 @@ module Spree
8
8
  def url(style)
9
9
  return placeholder(style) unless attachment.attached?
10
10
 
11
- attachment.variant(resize: dimensions_for_style(style))
11
+ attachment.variant(resize_to_limit: dimensions_for_style(style))
12
12
  end
13
13
 
14
14
  def placeholder(style)
@@ -16,7 +16,8 @@ module Spree
16
16
  end
17
17
 
18
18
  def dimensions_for_style(style)
19
- self.class.styles.with_indifferent_access[style] || self.class.styles.with_indifferent_access[default_style]
19
+ dimensions = self.class.styles.with_indifferent_access[style] || self.class.styles.with_indifferent_access[default_style]
20
+ dimensions.split('x').map(&:to_i)
20
21
  end
21
22
  end
22
23
  end
@@ -1,6 +1,10 @@
1
1
  module Spree
2
2
  class Asset < Spree::Base
3
3
  include Support::ActiveStorage
4
+ include Metadata
5
+ if defined?(Spree::Webhooks)
6
+ include Spree::Webhooks::HasWebhooks
7
+ end
4
8
 
5
9
  belongs_to :viewable, polymorphic: true, touch: true
6
10
  acts_as_list scope: [:viewable_id, :viewable_type]
@@ -36,6 +36,10 @@ class Spree::Base < ApplicationRecord
36
36
  where(nil)
37
37
  end
38
38
 
39
+ def self.spree_base_uniqueness_scope
40
+ ApplicationRecord.try(:spree_base_uniqueness_scope) || []
41
+ end
42
+
39
43
  # FIXME: https://github.com/rails/rails/issues/40943
40
44
  def self.has_many_inversing
41
45
  false
@@ -45,6 +49,16 @@ class Spree::Base < ApplicationRecord
45
49
  column_names.reject { |c| c.match(/_id$|id|preferences|(.*)password|(.*)token|(.*)api_key/) }
46
50
  end
47
51
 
52
+ def self.json_api_permitted_attributes
53
+ skipped_attributes = %w[id]
54
+
55
+ if included_modules.include?(CollectiveIdea::Acts::NestedSet::Model)
56
+ skipped_attributes.push('lft', 'rgt', 'depth')
57
+ end
58
+
59
+ column_names.reject { |c| skipped_attributes.include?(c.to_s) }
60
+ end
61
+
48
62
  def self.json_api_type
49
63
  to_s.demodulize.underscore
50
64
  end
@@ -3,7 +3,7 @@ require_dependency 'spree/calculator'
3
3
  module Spree
4
4
  class Calculator::FlatRate < Calculator
5
5
  preference :amount, :decimal, default: 0
6
- preference :currency, :string, default: -> { Spree::Config[:currency] }
6
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
7
7
 
8
8
  def self.description
9
9
  Spree.t(:flat_rate_per_order)
@@ -5,7 +5,7 @@ module Spree
5
5
  preference :first_item, :decimal, default: 0.0
6
6
  preference :additional_item, :decimal, default: 0.0
7
7
  preference :max_items, :integer, default: 0
8
- preference :currency, :string, default: -> { Spree::Config[:currency] }
8
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
9
9
 
10
10
  def self.description
11
11
  Spree.t(:flexible_rate)
@@ -5,7 +5,7 @@ module Spree
5
5
  preference :minimal_amount, :decimal, default: 0
6
6
  preference :normal_amount, :decimal, default: 0
7
7
  preference :discount_amount, :decimal, default: 0
8
- preference :currency, :string, default: -> { Spree::Config[:currency] }
8
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
9
9
 
10
10
  def self.description
11
11
  Spree.t(:price_sack)
@@ -0,0 +1,22 @@
1
+ require_dependency 'spree/shipping_calculator'
2
+
3
+ module Spree
4
+ module Calculator::Shipping
5
+ class DigitalDelivery < ShippingCalculator
6
+ preference :amount, :decimal, default: 0
7
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
8
+
9
+ def self.description
10
+ Spree.t('digital.digital_delivery')
11
+ end
12
+
13
+ def compute_package(_package = nil)
14
+ preferred_amount
15
+ end
16
+
17
+ def available?(package)
18
+ package.contents.all? { |content| content.variant.digital? }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -4,7 +4,7 @@ module Spree
4
4
  module Calculator::Shipping
5
5
  class FlatRate < ShippingCalculator
6
6
  preference :amount, :decimal, default: 0
7
- preference :currency, :string, default: -> { Spree::Config[:currency] }
7
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
8
8
 
9
9
  def self.description
10
10
  Spree.t(:shipping_flat_rate_per_order)
@@ -6,7 +6,7 @@ module Spree
6
6
  preference :first_item, :decimal, default: 0.0
7
7
  preference :additional_item, :decimal, default: 0.0
8
8
  preference :max_items, :integer, default: 0
9
- preference :currency, :string, default: -> { Spree::Config[:currency] }
9
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
10
10
 
11
11
  def self.description
12
12
  Spree.t(:shipping_flexible_rate)
@@ -4,7 +4,7 @@ module Spree
4
4
  module Calculator::Shipping
5
5
  class PerItem < ShippingCalculator
6
6
  preference :amount, :decimal, default: 0
7
- preference :currency, :string, default: -> { Spree::Config[:currency] }
7
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
8
8
 
9
9
  def self.description
10
10
  Spree.t(:shipping_flat_rate_per_item)
@@ -6,7 +6,7 @@ module Spree
6
6
  preference :minimal_amount, :decimal, default: 0
7
7
  preference :normal_amount, :decimal, default: 0
8
8
  preference :discount_amount, :decimal, default: 0
9
- preference :currency, :string, default: -> { Spree::Config[:currency] }
9
+ preference :currency, :string, default: -> { Spree::Store.default.default_currency }
10
10
 
11
11
  def self.description
12
12
  Spree.t(:shipping_price_sack)
@@ -2,9 +2,9 @@ module Spree
2
2
  class Calculator < Spree::Base
3
3
  acts_as_paranoid
4
4
 
5
- belongs_to :calculable, polymorphic: true, optional: true
5
+ belongs_to :calculable, polymorphic: true, optional: true, inverse_of: :calculator
6
6
 
7
- # This method calls a compute_<computable> method. must be overriden in concrete calculator.
7
+ # This method calls a compute_<computable> method. must be overridden in concrete calculator.
8
8
  #
9
9
  # It should return amount computed based on #calculable and the computable parameter
10
10
  def compute(computable)
@@ -3,6 +3,10 @@ module Spree
3
3
  include SingleStoreResource
4
4
  include DisplayLink
5
5
 
6
+ if defined?(Spree::Webhooks)
7
+ include Spree::Webhooks::HasWebhooks
8
+ end
9
+
6
10
  acts_as_paranoid
7
11
 
8
12
  TYPES = ['Spree::Cms::Pages::StandardPage',
@@ -16,7 +20,7 @@ module Spree
16
20
 
17
21
  before_validation :handle_slug
18
22
 
19
- validates :title, :store, :locale, presence: true
23
+ validates :title, :store, :locale, :type, presence: true
20
24
  validates :slug, uniqueness: { scope: :store_id, allow_nil: true, case_sensitive: true }
21
25
  validates :locale, uniqueness: { scope: [:store, :type] }, if: :homepage?
22
26
 
@@ -28,7 +32,7 @@ module Spree
28
32
  scope :standard, -> { where(type: 'Spree::Cms::Pages::StandardPage') }
29
33
  scope :feature, -> { where(type: 'Spree::Cms::Pages::FeaturePage') }
30
34
 
31
- self.whitelisted_ransackable_attributes = %w[title type locale store_id]
35
+ self.whitelisted_ransackable_attributes = %w[title type locale]
32
36
 
33
37
  def seo_title
34
38
  if meta_title.present?
@@ -38,7 +42,7 @@ module Spree
38
42
  end
39
43
  end
40
44
 
41
- # Overide this if your page type uses cms_sections
45
+ # Override this if your page type uses cms_sections
42
46
  def sections?
43
47
  false
44
48
  end
@@ -7,29 +7,29 @@ module Spree
7
7
 
8
8
  validate :reset_link_attributes
9
9
 
10
- IMAGE_COUNT = ['one', 'two', 'three']
11
- IMAGE_TYPES = ['image/png', 'image/jpg', 'image/jpeg', 'image/gif'].freeze
12
- IMAGE_SIZE = ['sm', 'md', 'lg', 'xl']
10
+ has_one :image_one, class_name: 'Spree::CmsSectionImageOne', dependent: :destroy, as: :viewable
11
+ accepts_nested_attributes_for :image_one, reject_if: :all_blank
13
12
 
14
- IMAGE_COUNT.each do |count|
15
- send(:has_one_attached, "image_#{count}".to_sym)
13
+ has_one :image_two, class_name: 'Spree::CmsSectionImageTwo', dependent: :destroy, as: :viewable
14
+ accepts_nested_attributes_for :image_two, reject_if: :all_blank
16
15
 
17
- IMAGE_SIZE.each do |size|
16
+ has_one :image_three, class_name: 'Spree::CmsSectionImageThree', dependent: :destroy, as: :viewable
17
+ accepts_nested_attributes_for :image_three, reject_if: :all_blank
18
+
19
+ Spree::CmsSectionImage::IMAGE_COUNT.each do |count|
20
+ Spree::CmsSectionImage::IMAGE_SIZE.each do |size|
18
21
  define_method("img_#{count}_#{size}") do |dimensions = nil|
19
- return if !send("image_#{count}").attached? || dimensions.nil?
22
+ image = send("image_#{count}")&.attachment
23
+ return if !image&.attached? || dimensions.nil?
20
24
 
21
- send("image_#{count}").variant(resize: dimensions)
25
+ image.variant(resize_to_limit: dimensions.split('x').map(&:to_i))
22
26
  end
23
27
  end
24
28
  end
25
29
 
26
- belongs_to :linked_resource, polymorphic: true
27
-
28
30
  default_scope { order(position: :asc) }
29
31
 
30
- validates :name, :cms_page, presence: true
31
-
32
- validates :image_one, :image_two, :image_three, content_type: IMAGE_TYPES
32
+ validates :name, :cms_page, :type, presence: true
33
33
 
34
34
  LINKED_RESOURCE_TYPE = []
35
35
 
@@ -0,0 +1,15 @@
1
+ module Spree
2
+ class CmsSectionImage < Asset
3
+ if Spree.public_storage_service_name
4
+ has_one_attached :attachment, service: Spree.public_storage_service_name
5
+ else
6
+ has_one_attached :attachment
7
+ end
8
+
9
+ IMAGE_COUNT = ['one', 'two', 'three']
10
+ IMAGE_TYPES = ['image/png', 'image/jpg', 'image/jpeg', 'image/gif'].freeze
11
+ IMAGE_SIZE = ['sm', 'md', 'lg', 'xl']
12
+
13
+ validates :attachment, attached: true, content_type: IMAGE_TYPES
14
+ end
15
+ end
@@ -0,0 +1,4 @@
1
+ module Spree
2
+ class CmsSectionImageOne < CmsSectionImage
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Spree
2
+ class CmsSectionImageThree < CmsSectionImage
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Spree
2
+ class CmsSectionImageTwo < CmsSectionImage
3
+ end
4
+ end
@@ -2,7 +2,7 @@ module Spree
2
2
  class Country < Spree::Base
3
3
  # we need to have this callback before any dependent: :destroy associations
4
4
  # https://github.com/rails/rails/issues/3458
5
- before_destroy :ensure_not_default
5
+ # before_destroy :ensure_not_default
6
6
 
7
7
  has_many :addresses, dependent: :restrict_with_error
8
8
  has_many :states,
@@ -16,7 +16,7 @@ module Spree
16
16
  foreign_key: :zoneable_id
17
17
  has_many :zones, through: :zone_members, class_name: 'Spree::Zone'
18
18
 
19
- validates :name, :iso_name, :iso, :iso3, presence: true, uniqueness: { case_sensitive: false }
19
+ validates :name, :iso_name, :iso, :iso3, presence: true, uniqueness: { case_sensitive: false, scope: spree_base_uniqueness_scope }
20
20
 
21
21
  def self.default(store = nil)
22
22
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
@@ -49,6 +49,8 @@ module Spree
49
49
  private
50
50
 
51
51
  def ensure_not_default
52
+ ActiveSupport::Deprecation.warn('Country#ensure_not_default is deprecated and will be removed in Spree v5')
53
+
52
54
  if id.eql?(Spree::Config[:default_country_id])
53
55
  errors.add(:base, Spree.t(:default_country_cannot_be_deleted))
54
56
  throw(:abort)
@@ -1,11 +1,18 @@
1
1
  module Spree
2
2
  class CreditCard < Spree::Base
3
3
  include ActiveMerchant::Billing::CreditCardMethods
4
+ include Metadata
5
+ if defined?(Spree::Webhooks)
6
+ include Spree::Webhooks::HasWebhooks
7
+ end
8
+ if defined?(Spree::Security::CreditCards)
9
+ include Spree::Security::CreditCards
10
+ end
4
11
 
5
12
  acts_as_paranoid
6
13
 
7
14
  belongs_to :payment_method
8
- belongs_to :user, class_name: Spree.user_class.to_s, foreign_key: 'user_id',
15
+ belongs_to :user, class_name: "::#{Spree.user_class}", foreign_key: 'user_id',
9
16
  optional: true
10
17
  has_many :payments, as: :source
11
18
 
@@ -171,6 +178,15 @@ module Spree
171
178
  )
172
179
  end
173
180
 
181
+ def self.json_api_permitted_attributes
182
+ [
183
+ 'number', 'month', 'year', 'expiry', 'verification_value', 'first_name', 'last_name',
184
+ 'cc_type', 'gateway_customer_profile_id', 'gateway_payment_profile_id', 'last_digits',
185
+ 'name', 'encrypted_data', 'address_id', 'created_at', 'updated_at', 'user_id',
186
+ 'payment_method_id', 'default', 'deleted_at'
187
+ ]
188
+ end
189
+
174
190
  private
175
191
 
176
192
  def require_card_numbers?
@@ -1,6 +1,12 @@
1
1
  module Spree
2
2
  class CustomerReturn < Spree::Base
3
3
  include Spree::Core::NumberGenerator.new(prefix: 'CR', length: 9)
4
+ include NumberIdentifier
5
+ include Metadata
6
+ if defined?(Spree::Webhooks)
7
+ include Spree::Webhooks::HasWebhooks
8
+ end
9
+
4
10
  belongs_to :stock_location
5
11
  belongs_to :store, class_name: 'Spree::Store', inverse_of: :customer_returns
6
12
 
@@ -11,7 +17,6 @@ module Spree
11
17
  after_create :process_return!
12
18
 
13
19
  validates :store, presence: true
14
- validates :number, uniqueness: { case_sensitive: true }
15
20
  validates :return_items, :stock_location, presence: true
16
21
  validate :must_have_return_authorization, on: :create
17
22
  validate :return_items_belong_to_same_order
@@ -0,0 +1,19 @@
1
+ module Spree
2
+ class Digital < Spree::Base
3
+ belongs_to :variant
4
+ has_many :digital_links, dependent: :destroy
5
+
6
+ if defined?(Spree::Webhooks)
7
+ include Spree::Webhooks::HasWebhooks
8
+ end
9
+
10
+ if Spree.private_storage_service_name
11
+ has_one_attached :attachment, service: Spree.private_storage_service_name
12
+ else
13
+ has_one_attached :attachment
14
+ end
15
+
16
+ validates :attachment, attached: true
17
+ validates :variant, presence: true
18
+ end
19
+ end
@@ -0,0 +1,57 @@
1
+ module Spree
2
+ class DigitalLink < Spree::Base
3
+ has_secure_token
4
+
5
+ if defined?(Spree::Webhooks)
6
+ include Spree::Webhooks::HasWebhooks
7
+ end
8
+ if defined?(Spree::Security::DigitalLinks)
9
+ include Spree::Security::DigitalLinks
10
+ end
11
+
12
+ belongs_to :digital
13
+ belongs_to :line_item
14
+
15
+ before_validation :set_defaults, on: :create
16
+ validates :digital, :line_item, presence: true
17
+ validates :access_counter, numericality: { greater_than_or_equal_to: 0 }
18
+
19
+ def authorizable?
20
+ !(expired? || access_limit_exceeded?)
21
+ end
22
+
23
+ def expired?
24
+ if line_item.order.store.limit_digital_download_days
25
+ created_at <= line_item.order.store.digital_asset_authorized_days.day.ago
26
+ else
27
+ false
28
+ end
29
+ end
30
+
31
+ def access_limit_exceeded?
32
+ if line_item.order.store.limit_digital_download_count
33
+ access_counter >= line_item.order.store.digital_asset_authorized_clicks
34
+ else
35
+ false
36
+ end
37
+ end
38
+
39
+ # This method should be called when a download is initiated.
40
+ # It returns +true+ or +false+ depending on whether the authorization is granted.
41
+ def authorize!
42
+ authorizable? && increment!(:access_counter, touch: true) ? true : false
43
+ end
44
+
45
+ def reset!
46
+ self.access_counter = 0
47
+ self.created_at = Time.current
48
+ save!
49
+ end
50
+
51
+ private
52
+
53
+ def set_defaults
54
+ self.access_counter ||= 0
55
+ end
56
+ end
57
+ end
@@ -92,7 +92,7 @@ module Spree
92
92
  end
93
93
 
94
94
  def get_desired_shipment_inventory_unit(state)
95
- desired_shipment.inventory_units.find_or_create_by(state: state) do |unit|
95
+ desired_shipment.inventory_units.find_or_create_by(state: state, variant: variant) do |unit|
96
96
  current_shipment_unit = current_shipment_units.first
97
97
  unit.variant_id = current_shipment_unit.variant_id
98
98
  unit.order_id = current_shipment_unit.order_id
@@ -58,7 +58,7 @@ module Spree
58
58
  ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345')
59
59
  end
60
60
 
61
- def cancel(_response_code)
61
+ def cancel(_response_code, _payment = nil)
62
62
  ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, test: true, authorization: '12345')
63
63
  end
64
64
 
@@ -71,6 +71,10 @@ module Spree
71
71
  true
72
72
  end
73
73
 
74
+ def payment_source_class
75
+ CreditCard
76
+ end
77
+
74
78
  def actions
75
79
  %w(capture void credit)
76
80
  end
@@ -1,6 +1,10 @@
1
1
  module Spree
2
2
  class Icon < Spree::Asset
3
- has_one_attached :attachment
3
+ if Spree.public_storage_service_name
4
+ has_one_attached :attachment, service: Spree.public_storage_service_name
5
+ else
6
+ has_one_attached :attachment
7
+ end
4
8
 
5
9
  ICON_TYPES = %i[png jpg jpeg gif svg]
6
10