solidus_core 3.0.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 (444) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +7 -2
  4. data/app/assets/images/logo/solidus.svg +18 -1
  5. data/app/assets/images/logo/solidus_logo.png +0 -0
  6. data/app/controllers/spree/base_controller.rb +1 -3
  7. data/app/helpers/spree/base_helper.rb +3 -3
  8. data/app/helpers/spree/core/controller_helpers/auth.rb +66 -0
  9. data/app/helpers/spree/core/controller_helpers/common.rb +82 -0
  10. data/app/helpers/spree/core/controller_helpers/order.rb +86 -0
  11. data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +165 -0
  12. data/{lib/spree/core/controller_helpers/current_host.rb → app/helpers/spree/core/controller_helpers/pricing.rb} +6 -4
  13. data/app/helpers/spree/core/controller_helpers/search.rb +16 -0
  14. data/app/helpers/spree/core/controller_helpers/store.rb +19 -0
  15. data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +74 -0
  16. data/app/helpers/spree/products_helper.rb +2 -2
  17. data/app/mailers/spree/base_mailer.rb +1 -1
  18. data/app/mailers/spree/carton_mailer.rb +1 -1
  19. data/app/mailers/spree/order_mailer.rb +3 -3
  20. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  21. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +30 -11
  22. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
  23. data/app/models/concerns/spree/active_storage_adapter.rb +1 -18
  24. data/app/models/concerns/spree/default_price.rb +30 -10
  25. data/app/models/concerns/spree/display_money.rb +1 -1
  26. data/app/models/concerns/spree/metadata.rb +64 -0
  27. data/app/models/concerns/spree/named_type.rb +2 -0
  28. data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
  29. data/app/models/concerns/spree/ransackable_attributes.rb +9 -5
  30. data/app/models/concerns/spree/user_address_book.rb +19 -10
  31. data/app/models/concerns/spree/user_methods.rb +40 -6
  32. data/app/models/spree/address.rb +11 -9
  33. data/app/models/spree/adjustment.rb +15 -76
  34. data/app/models/spree/adjustment_reason.rb +2 -0
  35. data/app/models/spree/calculator/flat_fee.rb +21 -0
  36. data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
  37. data/app/models/spree/carton.rb +3 -3
  38. data/app/models/spree/core/state_machines/inventory_unit.rb +42 -0
  39. data/app/models/spree/core/state_machines/order/class_methods.rb +217 -0
  40. data/app/models/spree/core/state_machines/order.rb +42 -0
  41. data/app/models/spree/core/state_machines/payment.rb +61 -0
  42. data/app/models/spree/core/state_machines/reimbursement.rb +33 -0
  43. data/app/models/spree/core/state_machines/return_authorization.rb +32 -0
  44. data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
  45. data/app/models/spree/core/state_machines/return_item/reception_status.rb +42 -0
  46. data/app/models/spree/core/state_machines/shipment.rb +58 -0
  47. data/app/models/spree/country.rb +1 -1
  48. data/app/models/spree/credit_card.rb +13 -10
  49. data/app/models/spree/customer_return.rb +6 -3
  50. data/app/models/spree/deprecated_configurable_class.rb +40 -0
  51. data/app/models/spree/fulfilment_changer.rb +56 -29
  52. data/app/models/spree/image/active_storage_attachment.rb +2 -7
  53. data/app/models/spree/image/paperclip_attachment.rb +2 -2
  54. data/app/models/spree/inventory_unit.rb +2 -2
  55. data/app/models/spree/item_total.rb +28 -0
  56. data/app/models/spree/legacy_user.rb +1 -0
  57. data/app/models/spree/line_item.rb +26 -8
  58. data/app/models/spree/log_entry.rb +98 -1
  59. data/app/models/spree/money.rb +120 -0
  60. data/app/models/spree/null_promotion_adjuster.rb +13 -0
  61. data/app/models/spree/null_promotion_advertiser.rb +9 -0
  62. data/app/models/spree/null_promotion_finder.rb +9 -0
  63. data/app/models/spree/null_promotion_handler.rb +44 -0
  64. data/app/models/spree/option_type.rb +1 -1
  65. data/app/models/spree/option_value.rb +4 -3
  66. data/app/models/spree/order/number_generator.rb +7 -1
  67. data/app/models/spree/order.rb +143 -96
  68. data/app/models/spree/order_cancellations.rb +8 -8
  69. data/app/models/spree/order_inventory.rb +7 -5
  70. data/app/models/spree/order_merger.rb +5 -7
  71. data/app/models/spree/order_mutex.rb +2 -2
  72. data/app/models/spree/order_shipping.rb +15 -19
  73. data/app/models/spree/order_taxation.rb +7 -4
  74. data/app/models/spree/order_update_attributes.rb +3 -1
  75. data/app/models/spree/order_updater.rb +25 -63
  76. data/app/models/spree/payment/processing.rb +60 -57
  77. data/app/models/spree/payment.rb +14 -27
  78. data/app/models/spree/payment_create.rb +1 -1
  79. data/app/models/spree/payment_method/bogus_credit_card.rb +18 -14
  80. data/app/models/spree/payment_method/credit_card.rb +0 -4
  81. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +18 -4
  82. data/app/models/spree/payment_method/store_credit.rb +1 -1
  83. data/app/models/spree/payment_method.rb +29 -10
  84. data/app/models/spree/payment_source.rb +5 -1
  85. data/app/models/spree/permission_set.rb +11 -0
  86. data/app/models/spree/permission_sets/base.rb +45 -0
  87. data/app/models/spree/permission_sets/configuration_display.rb +53 -0
  88. data/app/models/spree/permission_sets/configuration_management.rb +52 -0
  89. data/app/models/spree/permission_sets/dashboard_display.rb +28 -0
  90. data/app/models/spree/permission_sets/default_customer.rb +83 -0
  91. data/app/models/spree/permission_sets/order_display.rb +50 -0
  92. data/app/models/spree/permission_sets/order_management.rb +50 -0
  93. data/app/models/spree/permission_sets/product_display.rb +43 -0
  94. data/app/models/spree/permission_sets/product_management.rb +47 -0
  95. data/app/models/spree/permission_sets/restricted_stock_display.rb +33 -0
  96. data/app/models/spree/permission_sets/restricted_stock_management.rb +33 -0
  97. data/app/models/spree/permission_sets/stock_display.rb +26 -0
  98. data/app/models/spree/permission_sets/stock_management.rb +26 -0
  99. data/app/models/spree/permission_sets/super_user.rb +26 -0
  100. data/app/models/spree/permission_sets/user_display.rb +27 -0
  101. data/app/models/spree/permission_sets/user_management.rb +44 -0
  102. data/app/models/spree/preference.rb +1 -1
  103. data/app/models/spree/price.rb +3 -3
  104. data/app/models/spree/product/scopes.rb +23 -10
  105. data/app/models/spree/product.rb +30 -23
  106. data/app/models/spree/product_property.rb +1 -1
  107. data/app/models/spree/property.rb +1 -1
  108. data/app/models/spree/refund.rb +13 -3
  109. data/app/models/spree/refund_reason.rb +6 -1
  110. data/app/models/spree/reimbursement.rb +6 -6
  111. data/app/models/spree/reimbursement_performer.rb +3 -3
  112. data/app/models/spree/reimbursement_tax_calculator.rb +3 -3
  113. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  114. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
  115. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  116. data/app/models/spree/reimbursement_type.rb +6 -1
  117. data/app/models/spree/return_authorization.rb +3 -1
  118. data/app/models/spree/return_item.rb +13 -15
  119. data/app/models/spree/return_reason.rb +6 -1
  120. data/app/models/spree/role.rb +3 -1
  121. data/app/models/spree/role_permission.rb +8 -0
  122. data/app/models/spree/shipment.rb +12 -10
  123. data/app/models/spree/shipping_category.rb +2 -0
  124. data/app/models/spree/shipping_rate.rb +2 -3
  125. data/app/models/spree/shipping_rate_tax.rb +1 -1
  126. data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +10 -13
  127. data/app/models/spree/state.rb +1 -1
  128. data/app/models/spree/stock/allocator/on_hand_first.rb +2 -2
  129. data/app/models/spree/stock/availability.rb +11 -3
  130. data/app/models/spree/stock/estimator.rb +1 -1
  131. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  132. data/app/models/spree/stock/package.rb +2 -2
  133. data/app/models/spree/stock/quantifier.rb +12 -8
  134. data/app/models/spree/stock/simple_coordinator.rb +38 -28
  135. data/app/models/spree/stock/splitter/shipping_category.rb +1 -1
  136. data/app/models/spree/stock_item.rb +2 -1
  137. data/app/models/spree/stock_location.rb +7 -7
  138. data/app/models/spree/stock_movement.rb +2 -2
  139. data/app/models/spree/store.rb +3 -1
  140. data/app/models/spree/store_credit.rb +31 -16
  141. data/app/models/spree/store_credit_event.rb +4 -3
  142. data/app/models/spree/store_credit_prioritizer.rb +17 -0
  143. data/app/models/spree/store_credit_reason.rb +6 -1
  144. data/app/models/spree/store_selector/by_server_name.rb +1 -1
  145. data/app/models/spree/tax/item_tax.rb +3 -2
  146. data/app/models/spree/tax/order_tax.rb +3 -1
  147. data/app/models/spree/tax/tax_helpers.rb +14 -3
  148. data/app/models/spree/tax/tax_location.rb +4 -7
  149. data/app/models/spree/tax_calculator/default.rb +32 -1
  150. data/app/models/spree/tax_calculator/shipping_rate.rb +2 -2
  151. data/app/models/spree/tax_category.rb +3 -1
  152. data/app/models/spree/tax_rate.rb +14 -1
  153. data/app/models/spree/taxon/active_storage_attachment.rb +2 -2
  154. data/app/models/spree/taxon/paperclip_attachment.rb +4 -4
  155. data/app/models/spree/taxon.rb +25 -3
  156. data/app/models/spree/taxon_brand_selector.rb +22 -0
  157. data/app/models/spree/taxonomy.rb +4 -3
  158. data/app/models/spree/unauthorized_redirect_handler.rb +24 -0
  159. data/app/models/spree/unit_cancel.rb +1 -2
  160. data/app/models/spree/user_address.rb +9 -3
  161. data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +1 -1
  162. data/app/models/spree/variant/price_selector.rb +25 -8
  163. data/app/models/spree/variant/scopes.rb +4 -0
  164. data/app/models/spree/variant/vat_price_generator.rb +1 -1
  165. data/app/models/spree/variant.rb +64 -37
  166. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +4 -4
  167. data/app/models/spree/wallet.rb +2 -2
  168. data/app/models/spree/zone.rb +1 -1
  169. data/app/subscribers/spree/order_mailer_subscriber.rb +35 -0
  170. data/app/views/layouts/spree/base_mailer.html.erb +2 -2
  171. data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
  172. data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
  173. data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
  174. data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
  175. data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +0 -1
  176. data/config/i18n-tasks.yml +134 -0
  177. data/config/locales/en.yml +439 -338
  178. data/db/default/spree/permission_sets.rb +10 -0
  179. data/db/default/spree/return_reasons.rb +3 -1
  180. data/db/default/spree/states.rb +2 -2
  181. data/db/migrate/20160101010000_solidus_one_four.rb +0 -127
  182. data/db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb +2 -2
  183. data/db/migrate/20201127212108_add_type_before_removal_to_spree_payment_methods.rb +7 -0
  184. data/db/migrate/20210312061050_change_column_null_on_prices.rb +7 -0
  185. data/db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb +16 -0
  186. data/db/migrate/20220419170826_remove_archived_user_addresses.rb +12 -0
  187. data/db/migrate/20220805202442_add_level_to_spree_tax_rates.rb +5 -0
  188. data/db/migrate/20221123152807_add_shipping_category_to_spree_variants.rb +5 -0
  189. data/db/migrate/20230321161854_change_column_null_option_values_option_type_id.rb +5 -0
  190. data/db/migrate/20230425103509_remove_taxon_position.rb +5 -0
  191. data/db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb +11 -0
  192. data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
  193. data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
  194. data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
  195. data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
  196. data/db/migrate/20250129061658_add_metadata_to_spree_resources.rb +28 -0
  197. data/db/migrate/20250201172950_add_gtin_and_condition_to_spree_variant.rb +6 -0
  198. data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +7 -0
  199. data/db/migrate/20250221152004_add_metadata_to_users.rb +13 -0
  200. data/db/seeds.rb +5 -1
  201. data/lib/generators/solidus/install/app_templates/authentication/custom.rb +16 -0
  202. data/lib/generators/solidus/install/app_templates/authentication/devise.rb +16 -0
  203. data/lib/generators/solidus/install/app_templates/authentication/existing.rb +10 -0
  204. data/lib/generators/solidus/install/app_templates/authentication/none.rb +1 -0
  205. data/lib/generators/solidus/install/app_templates/frontend/none.rb +1 -0
  206. data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -0
  207. data/lib/generators/solidus/install/app_templates/payment_method/braintree.rb +5 -0
  208. data/lib/generators/solidus/install/app_templates/payment_method/none.rb +1 -0
  209. data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +5 -0
  210. data/lib/generators/solidus/install/app_templates/payment_method/stripe.rb +5 -0
  211. data/lib/generators/solidus/install/install_generator.rb +210 -156
  212. data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +27 -33
  213. data/lib/generators/solidus/install/templates/vendor/assets/javascripts/spree/backend/all.js +2 -2
  214. data/lib/generators/solidus/update/templates/config/initializers/new_solidus_defaults.rb.tt +30 -0
  215. data/lib/generators/solidus/update/update_generator.rb +124 -0
  216. data/lib/generators/spree/custom_user/custom_user_generator.rb +6 -4
  217. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +2 -6
  218. data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -3
  219. data/lib/generators/spree/dummy/dummy_generator.rb +12 -9
  220. data/lib/generators/spree/dummy/templates/rails/application.rb.tt +1 -2
  221. data/lib/generators/spree/dummy/templates/rails/database.yml +48 -63
  222. data/lib/generators/spree/dummy/templates/rails/manifest.js +3 -0
  223. data/lib/generators/spree/dummy/templates/rails/test.rb +7 -2
  224. data/lib/spree/app_configuration.rb +220 -71
  225. data/lib/spree/bus.rb +11 -0
  226. data/lib/spree/core/class_constantizer.rb +2 -2
  227. data/lib/spree/core/controller_helpers/auth.rb +5 -69
  228. data/lib/spree/core/controller_helpers/common.rb +5 -80
  229. data/lib/spree/core/controller_helpers/order.rb +5 -86
  230. data/lib/spree/core/controller_helpers/payment_parameters.rb +5 -165
  231. data/lib/spree/core/controller_helpers/pricing.rb +5 -17
  232. data/lib/spree/core/controller_helpers/search.rb +5 -14
  233. data/lib/spree/core/controller_helpers/store.rb +5 -17
  234. data/lib/spree/core/controller_helpers/strong_parameters.rb +5 -71
  235. data/lib/spree/core/engine.rb +49 -16
  236. data/lib/spree/core/environment/calculators.rb +35 -3
  237. data/lib/spree/core/environment/promotions.rb +25 -4
  238. data/lib/spree/core/environment_extension.rb +16 -2
  239. data/lib/spree/core/importer/order.rb +6 -6
  240. data/lib/spree/core/importer/product.rb +3 -3
  241. data/lib/spree/core/nested_class_set.rb +28 -0
  242. data/lib/spree/core/null_promotion_configuration.rb +84 -0
  243. data/lib/spree/core/product_duplicator.rb +1 -1
  244. data/lib/spree/core/product_filters.rb +2 -2
  245. data/lib/spree/core/search/base.rb +18 -9
  246. data/lib/spree/core/search/variant.rb +2 -2
  247. data/lib/spree/core/state_machines/inventory_unit.rb +5 -40
  248. data/lib/spree/core/state_machines/order.rb +5 -247
  249. data/lib/spree/core/state_machines/payment.rb +5 -59
  250. data/lib/spree/core/state_machines/reimbursement.rb +5 -31
  251. data/lib/spree/core/state_machines/return_authorization.rb +5 -30
  252. data/lib/spree/core/state_machines/return_item/acceptance_status.rb +5 -49
  253. data/lib/spree/core/state_machines/return_item/reception_status.rb +5 -40
  254. data/lib/spree/core/state_machines/shipment.rb +5 -56
  255. data/lib/spree/core/state_machines.rb +48 -81
  256. data/lib/spree/core/stock_configuration.rb +18 -0
  257. data/lib/spree/core/validators/email.rb +2 -4
  258. data/lib/spree/core/version.rb +5 -1
  259. data/lib/spree/core/versioned_value.rb +75 -0
  260. data/lib/spree/core.rb +40 -16
  261. data/lib/spree/deprecated_instance_variable_proxy.rb +57 -0
  262. data/lib/spree/deprecation.rb +3 -51
  263. data/lib/spree/deprecator.rb +9 -0
  264. data/lib/spree/i18n.rb +1 -1
  265. data/lib/spree/mailer_previews/carton_preview.rb +1 -1
  266. data/lib/spree/migration_helpers.rb +3 -3
  267. data/lib/spree/migrations.rb +13 -11
  268. data/lib/spree/money.rb +5 -118
  269. data/lib/spree/permission_sets/base.rb +5 -30
  270. data/lib/spree/permission_sets/configuration_display.rb +5 -23
  271. data/lib/spree/permission_sets/configuration_management.rb +5 -23
  272. data/lib/spree/permission_sets/dashboard_display.rb +5 -9
  273. data/lib/spree/permission_sets/default_customer.rb +5 -35
  274. data/lib/spree/permission_sets/order_display.rb +5 -19
  275. data/lib/spree/permission_sets/order_management.rb +5 -20
  276. data/lib/spree/permission_sets/product_display.rb +5 -17
  277. data/lib/spree/permission_sets/product_management.rb +5 -19
  278. data/lib/spree/permission_sets/restricted_stock_display.rb +5 -16
  279. data/lib/spree/permission_sets/restricted_stock_management.rb +5 -16
  280. data/lib/spree/permission_sets/stock_display.rb +5 -10
  281. data/lib/spree/permission_sets/stock_management.rb +5 -10
  282. data/lib/spree/permission_sets/super_user.rb +5 -9
  283. data/lib/spree/permission_sets/user_display.rb +5 -11
  284. data/lib/spree/permission_sets/user_management.rb +5 -23
  285. data/lib/spree/permission_sets.rb +5 -18
  286. data/lib/spree/permitted_attributes.rb +35 -14
  287. data/lib/spree/preferences/configuration.rb +88 -0
  288. data/lib/spree/preferences/persistable.rb +7 -1
  289. data/lib/spree/preferences/preferable.rb +13 -0
  290. data/lib/spree/preferences/preferable_class_methods.rb +12 -4
  291. data/lib/spree/preferences/preference_differentiator.rb +29 -0
  292. data/lib/spree/preferences/static_model_preferences.rb +25 -10
  293. data/lib/spree/preferences/store.rb +2 -2
  294. data/lib/spree/testing_support/blacklist_urls.rb +1 -1
  295. data/lib/spree/testing_support/bus_helpers.rb +101 -0
  296. data/lib/spree/testing_support/capybara_ext.rb +11 -1
  297. data/lib/spree/testing_support/common_rake.rb +76 -23
  298. data/lib/spree/testing_support/dummy_ability.rb +7 -0
  299. data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
  300. data/lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css +1 -0
  301. data/lib/spree/testing_support/dummy_app/database.yml +39 -28
  302. data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
  303. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +3 -10
  304. data/lib/spree/testing_support/dummy_app.rb +71 -42
  305. data/lib/spree/testing_support/extension_rake.rb +2 -2
  306. data/lib/spree/testing_support/factories/address_factory.rb +9 -13
  307. data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -13
  308. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +0 -5
  309. data/lib/spree/testing_support/factories/calculator_factory.rb +4 -10
  310. data/lib/spree/testing_support/factories/carton_factory.rb +2 -10
  311. data/lib/spree/testing_support/factories/country_factory.rb +1 -7
  312. data/lib/spree/testing_support/factories/credit_card_factory.rb +0 -5
  313. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -11
  314. data/lib/spree/testing_support/factories/image_factory.rb +0 -5
  315. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +4 -14
  316. data/lib/spree/testing_support/factories/line_item_factory.rb +0 -8
  317. data/lib/spree/testing_support/factories/option_type_factory.rb +0 -8
  318. data/lib/spree/testing_support/factories/option_value_factory.rb +0 -5
  319. data/lib/spree/testing_support/factories/order_factory.rb +19 -38
  320. data/lib/spree/testing_support/factories/payment_factory.rb +0 -10
  321. data/lib/spree/testing_support/factories/payment_method_factory.rb +0 -5
  322. data/lib/spree/testing_support/factories/price_factory.rb +0 -7
  323. data/lib/spree/testing_support/factories/product_factory.rb +5 -13
  324. data/lib/spree/testing_support/factories/product_option_type_factory.rb +0 -8
  325. data/lib/spree/testing_support/factories/product_property_factory.rb +0 -8
  326. data/lib/spree/testing_support/factories/property_factory.rb +0 -5
  327. data/lib/spree/testing_support/factories/refund_factory.rb +0 -8
  328. data/lib/spree/testing_support/factories/refund_reason_factory.rb +0 -5
  329. data/lib/spree/testing_support/factories/reimbursement_factory.rb +0 -7
  330. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +0 -5
  331. data/lib/spree/testing_support/factories/return_authorization_factory.rb +0 -9
  332. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -9
  333. data/lib/spree/testing_support/factories/return_reason_factory.rb +0 -5
  334. data/lib/spree/testing_support/factories/role_factory.rb +0 -5
  335. data/lib/spree/testing_support/factories/shipment_factory.rb +1 -11
  336. data/lib/spree/testing_support/factories/shipping_category_factory.rb +0 -5
  337. data/lib/spree/testing_support/factories/shipping_method_factory.rb +0 -9
  338. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +0 -8
  339. data/lib/spree/testing_support/factories/state_factory.rb +8 -10
  340. data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -9
  341. data/lib/spree/testing_support/factories/stock_location_factory.rb +0 -9
  342. data/lib/spree/testing_support/factories/stock_movement_factory.rb +0 -7
  343. data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -9
  344. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -5
  345. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +0 -8
  346. data/lib/spree/testing_support/factories/store_credit_factory.rb +4 -13
  347. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +0 -5
  348. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -5
  349. data/lib/spree/testing_support/factories/store_factory.rb +0 -5
  350. data/lib/spree/testing_support/factories/tax_category_factory.rb +0 -8
  351. data/lib/spree/testing_support/factories/tax_rate_factory.rb +0 -9
  352. data/lib/spree/testing_support/factories/taxon_factory.rb +5 -10
  353. data/lib/spree/testing_support/factories/taxonomy_factory.rb +3 -6
  354. data/lib/spree/testing_support/factories/user_factory.rb +6 -9
  355. data/lib/spree/testing_support/factories/variant_factory.rb +0 -10
  356. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +0 -8
  357. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +0 -9
  358. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +0 -8
  359. data/lib/spree/testing_support/factories/zone_factory.rb +1 -9
  360. data/lib/spree/testing_support/factory_bot.rb +6 -29
  361. data/lib/spree/testing_support/flaky.rb +22 -0
  362. data/lib/spree/testing_support/order_walkthrough.rb +7 -6
  363. data/lib/spree/testing_support/sequences.rb +0 -5
  364. data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
  365. data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
  366. data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
  367. data/lib/spree/testing_support/silence_deprecations.rb +9 -0
  368. data/lib/spree/user_class_handle.rb +2 -2
  369. data/lib/tasks/colorado_delivery_fee.rake +28 -0
  370. data/lib/tasks/payment_method.rake +29 -0
  371. data/lib/tasks/solidus/delete_prices_with_nil_amount.rake +8 -0
  372. data/solidus_core.gemspec +18 -8
  373. metadata +233 -117
  374. data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
  375. data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
  376. data/app/models/spree/calculator/distributed_amount.rb +0 -33
  377. data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
  378. data/app/models/spree/calculator/flexi_rate.rb +0 -22
  379. data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
  380. data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
  381. data/app/models/spree/calculator/tiered_percent.rb +0 -62
  382. data/app/models/spree/line_item_action.rb +0 -8
  383. data/app/models/spree/order_promotion.rb +0 -27
  384. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -77
  385. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -99
  386. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
  387. data/app/models/spree/promotion/actions/free_shipping.rb +0 -58
  388. data/app/models/spree/promotion/rules/first_order.rb +0 -38
  389. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
  390. data/app/models/spree/promotion/rules/item_total.rb +0 -53
  391. data/app/models/spree/promotion/rules/nth_order.rb +0 -45
  392. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
  393. data/app/models/spree/promotion/rules/option_value.rb +0 -50
  394. data/app/models/spree/promotion/rules/product.rb +0 -74
  395. data/app/models/spree/promotion/rules/store.rb +0 -22
  396. data/app/models/spree/promotion/rules/taxon.rb +0 -87
  397. data/app/models/spree/promotion/rules/user.rb +0 -30
  398. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
  399. data/app/models/spree/promotion/rules/user_role.rb +0 -45
  400. data/app/models/spree/promotion.rb +0 -284
  401. data/app/models/spree/promotion_action.rb +0 -43
  402. data/app/models/spree/promotion_category.rb +0 -8
  403. data/app/models/spree/promotion_chooser.rb +0 -34
  404. data/app/models/spree/promotion_code/batch_builder.rb +0 -64
  405. data/app/models/spree/promotion_code.rb +0 -50
  406. data/app/models/spree/promotion_code_batch.rb +0 -27
  407. data/app/models/spree/promotion_handler/cart.rb +0 -55
  408. data/app/models/spree/promotion_handler/coupon.rb +0 -123
  409. data/app/models/spree/promotion_handler/page.rb +0 -26
  410. data/app/models/spree/promotion_handler/shipping.rb +0 -61
  411. data/app/models/spree/promotion_rule.rb +0 -55
  412. data/app/models/spree/promotion_rule_role.rb +0 -8
  413. data/app/models/spree/promotion_rule_store.rb +0 -10
  414. data/app/models/spree/promotion_rule_taxon.rb +0 -8
  415. data/app/models/spree/promotion_rule_user.rb +0 -10
  416. data/app/models/spree/tax/shipping_rate_taxer.rb +0 -24
  417. data/app/subscribers/spree/mailer_subscriber.rb +0 -25
  418. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
  419. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
  420. data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
  421. data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
  422. data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
  423. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
  424. data/lib/generators/solidus/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -10
  425. data/lib/generators/solidus/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -9
  426. data/lib/generators/spree/dummy/templates/rails/script/rails +0 -6
  427. data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
  428. data/lib/spree/event/adapters/active_support_notifications.rb +0 -67
  429. data/lib/spree/event/configuration.rb +0 -25
  430. data/lib/spree/event/subscriber.rb +0 -86
  431. data/lib/spree/event/subscriber_registry.rb +0 -94
  432. data/lib/spree/event.rb +0 -119
  433. data/lib/spree/permission_sets/promotion_display.rb +0 -15
  434. data/lib/spree/permission_sets/promotion_management.rb +0 -15
  435. data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +0 -10
  436. data/lib/spree/testing_support/dummy_app/assets/stylesheets/spree/frontend/all.css +0 -9
  437. data/lib/spree/testing_support/dummy_app/views/layouts/application.html.erb +0 -1
  438. data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -16
  439. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -12
  440. data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -16
  441. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -92
  442. data/lib/spree/testing_support/factories.rb +0 -11
  443. data/lib/spree/testing_support.rb +0 -31
  444. data/lib/tasks/upgrade.rake +0 -15
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ Spree::PermissionSets::Base.subclasses.each do |permission|
4
+ Spree::PermissionSet.create!(
5
+ name: permission.name.demodulize,
6
+ set: permission.name,
7
+ privilege: permission.privilege,
8
+ category: permission.category
9
+ )
10
+ end
@@ -3,7 +3,9 @@
3
3
  Spree::ReturnReason.find_or_create_by(name: 'Better price available')
4
4
  Spree::ReturnReason.find_or_create_by(name: 'Missed estimated delivery date')
5
5
  Spree::ReturnReason.find_or_create_by(name: 'Missing parts or accessories')
6
- Spree::ReturnReason.find_or_create_by(name: 'Damaged/Defective')
6
+ Spree::ReturnReason.find_or_create_by(name: 'Damaged during transport')
7
+ Spree::ReturnReason.find_or_create_by(name: 'Defective within warranty period')
8
+ Spree::ReturnReason.find_or_create_by(name: 'Other defects or damages')
7
9
  Spree::ReturnReason.find_or_create_by(name: 'Different from what was ordered')
8
10
  Spree::ReturnReason.find_or_create_by(name: 'Different from description')
9
11
  Spree::ReturnReason.find_or_create_by(name: 'No longer needed/wanted')
@@ -2,14 +2,14 @@
2
2
 
3
3
  def create_states(subregions, country)
4
4
  subregions.each do |subregion|
5
- Spree::State.where(abbr: subregion.code, country: country).first_or_create!(
5
+ Spree::State.where(abbr: subregion.code, country:).first_or_create!(
6
6
  name: subregion.name
7
7
  )
8
8
  end
9
9
  end
10
10
 
11
11
  ActiveRecord::Base.transaction do
12
- Spree::Country.all.each do |country|
12
+ Spree::Country.all.find_each do |country|
13
13
  carmen_country = Carmen::Country.coded(country.iso)
14
14
  next unless carmen_country.subregions?
15
15
 
@@ -85,19 +85,15 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
85
85
  t.integer "adjustable_id", null: false
86
86
  t.decimal "amount", precision: 10, scale: 2
87
87
  t.string "label"
88
- t.boolean "eligible", default: true
89
88
  t.datetime "created_at", precision: 6
90
89
  t.datetime "updated_at", precision: 6
91
90
  t.integer "order_id", null: false
92
91
  t.boolean "included", default: false
93
- t.integer "promotion_code_id"
94
92
  t.integer "adjustment_reason_id"
95
93
  t.boolean "finalized", default: false, null: false
96
94
  t.index ["adjustable_id", "adjustable_type"], name: "index_spree_adjustments_on_adjustable_id_and_adjustable_type"
97
95
  t.index ["adjustable_id"], name: "index_adjustments_on_order_id"
98
- t.index ["eligible"], name: "index_spree_adjustments_on_eligible"
99
96
  t.index ["order_id"], name: "index_spree_adjustments_on_order_id"
100
- t.index ["promotion_code_id"], name: "index_spree_adjustments_on_promotion_code_id"
101
97
  t.index ["source_id", "source_type"], name: "index_spree_adjustments_on_source_id_and_source_type"
102
98
  end
103
99
 
@@ -201,16 +197,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
201
197
  t.index ["variant_id"], name: "index_inventory_units_on_variant_id"
202
198
  end
203
199
 
204
- create_table "spree_line_item_actions", force: :cascade do |t|
205
- t.integer "line_item_id", null: false
206
- t.integer "action_id", null: false
207
- t.integer "quantity", default: 0
208
- t.datetime "created_at", precision: 6
209
- t.datetime "updated_at", precision: 6
210
- t.index ["action_id"], name: "index_spree_line_item_actions_on_action_id"
211
- t.index ["line_item_id"], name: "index_spree_line_item_actions_on_line_item_id"
212
- end
213
-
214
200
  create_table "spree_line_items", force: :cascade do |t|
215
201
  t.integer "variant_id"
216
202
  t.integer "order_id"
@@ -326,16 +312,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
326
312
  t.index ["user_id"], name: "index_spree_orders_on_user_id"
327
313
  end
328
314
 
329
- create_table "spree_orders_promotions", force: :cascade do |t|
330
- t.integer "order_id"
331
- t.integer "promotion_id"
332
- t.integer "promotion_code_id"
333
- t.datetime "created_at", precision: 6
334
- t.datetime "updated_at", precision: 6
335
- t.index ["order_id", "promotion_id"], name: "index_spree_orders_promotions_on_order_id_and_promotion_id"
336
- t.index ["promotion_code_id"], name: "index_spree_orders_promotions_on_promotion_code_id"
337
- end
338
-
339
315
  create_table "spree_payment_capture_events", force: :cascade do |t|
340
316
  t.decimal "amount", precision: 10, scale: 2, default: "0.0"
341
317
  t.integer "payment_id"
@@ -411,15 +387,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
411
387
  t.index ["product_id"], name: "index_spree_product_option_types_on_product_id"
412
388
  end
413
389
 
414
- create_table "spree_product_promotion_rules", force: :cascade do |t|
415
- t.integer "product_id"
416
- t.integer "promotion_rule_id"
417
- t.datetime "created_at", precision: 6
418
- t.datetime "updated_at", precision: 6
419
- t.index ["product_id"], name: "index_products_promotion_rules_on_product_id"
420
- t.index ["promotion_rule_id"], name: "index_products_promotion_rules_on_promotion_rule_id"
421
- end
422
-
423
390
  create_table "spree_product_properties", force: :cascade do |t|
424
391
  t.string "value"
425
392
  t.integer "product_id"
@@ -463,100 +430,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
463
430
  t.index ["taxon_id"], name: "index_spree_products_taxons_on_taxon_id"
464
431
  end
465
432
 
466
- create_table "spree_promotion_action_line_items", force: :cascade do |t|
467
- t.integer "promotion_action_id"
468
- t.integer "variant_id"
469
- t.integer "quantity", default: 1
470
- t.datetime "created_at", precision: 6
471
- t.datetime "updated_at", precision: 6
472
- t.index ["promotion_action_id"], name: "index_spree_promotion_action_line_items_on_promotion_action_id"
473
- t.index ["variant_id"], name: "index_spree_promotion_action_line_items_on_variant_id"
474
- end
475
-
476
- create_table "spree_promotion_actions", force: :cascade do |t|
477
- t.integer "promotion_id"
478
- t.integer "position"
479
- t.string "type"
480
- t.datetime "deleted_at"
481
- t.text "preferences"
482
- t.datetime "created_at", precision: 6
483
- t.datetime "updated_at", precision: 6
484
- t.index ["deleted_at"], name: "index_spree_promotion_actions_on_deleted_at"
485
- t.index ["id", "type"], name: "index_spree_promotion_actions_on_id_and_type"
486
- t.index ["promotion_id"], name: "index_spree_promotion_actions_on_promotion_id"
487
- end
488
-
489
- create_table "spree_promotion_categories", force: :cascade do |t|
490
- t.string "name"
491
- t.datetime "created_at", precision: 6
492
- t.datetime "updated_at", precision: 6
493
- t.string "code"
494
- end
495
-
496
- create_table "spree_promotion_codes", force: :cascade do |t|
497
- t.integer "promotion_id", null: false
498
- t.string "value", null: false
499
- t.datetime "created_at", precision: 6
500
- t.datetime "updated_at", precision: 6
501
- t.index ["promotion_id"], name: "index_spree_promotion_codes_on_promotion_id"
502
- t.index ["value"], name: "index_spree_promotion_codes_on_value", unique: true
503
- end
504
-
505
- create_table "spree_promotion_rule_taxons", force: :cascade do |t|
506
- t.integer "taxon_id"
507
- t.integer "promotion_rule_id"
508
- t.datetime "created_at", precision: 6
509
- t.datetime "updated_at", precision: 6
510
- t.index ["promotion_rule_id"], name: "index_spree_promotion_rule_taxons_on_promotion_rule_id"
511
- t.index ["taxon_id"], name: "index_spree_promotion_rule_taxons_on_taxon_id"
512
- end
513
-
514
- create_table "spree_promotion_rules", force: :cascade do |t|
515
- t.integer "promotion_id"
516
- t.integer "product_group_id"
517
- t.string "type"
518
- t.datetime "created_at", precision: 6
519
- t.datetime "updated_at", precision: 6
520
- t.string "code"
521
- t.text "preferences"
522
- t.index ["product_group_id"], name: "index_promotion_rules_on_product_group_id"
523
- t.index ["promotion_id"], name: "index_spree_promotion_rules_on_promotion_id"
524
- end
525
-
526
- create_table "spree_promotion_rules_users", force: :cascade do |t|
527
- t.integer "user_id"
528
- t.integer "promotion_rule_id"
529
- t.datetime "created_at", precision: 6
530
- t.datetime "updated_at", precision: 6
531
- t.index ["promotion_rule_id"], name: "index_promotion_rules_users_on_promotion_rule_id"
532
- t.index ["user_id"], name: "index_promotion_rules_users_on_user_id"
533
- end
534
-
535
- create_table "spree_promotions", force: :cascade do |t|
536
- t.string "description"
537
- t.datetime "expires_at"
538
- t.datetime "starts_at"
539
- t.string "name"
540
- t.string "type"
541
- t.integer "usage_limit"
542
- t.string "match_policy", default: "all"
543
- t.string "code"
544
- t.boolean "advertise", default: false
545
- t.string "path"
546
- t.datetime "created_at", precision: 6
547
- t.datetime "updated_at", precision: 6
548
- t.integer "promotion_category_id"
549
- t.integer "per_code_usage_limit"
550
- t.boolean "apply_automatically", default: false
551
- t.index ["advertise"], name: "index_spree_promotions_on_advertise"
552
- t.index ["apply_automatically"], name: "index_spree_promotions_on_apply_automatically"
553
- t.index ["code"], name: "index_spree_promotions_on_code"
554
- t.index ["expires_at"], name: "index_spree_promotions_on_expires_at"
555
- t.index ["id", "type"], name: "index_spree_promotions_on_id_and_type"
556
- t.index ["promotion_category_id"], name: "index_spree_promotions_on_promotion_category_id"
557
- t.index ["starts_at"], name: "index_spree_promotions_on_starts_at"
558
- end
559
-
560
433
  create_table "spree_properties", force: :cascade do |t|
561
434
  t.string "name"
562
435
  t.string "presentation", null: false
@@ -17,7 +17,7 @@ class CreateSpreeStoreCreditReasonsTable < ActiveRecord::Migration[5.1]
17
17
  t.timestamps
18
18
  end
19
19
 
20
- StoreCreditUpdateReason.all.each do |update_reason|
20
+ StoreCreditUpdateReason.all.find_each do |update_reason|
21
21
  StoreCreditReason.create!(name: update_reason.name)
22
22
  end
23
23
 
@@ -45,7 +45,7 @@ class CreateSpreeStoreCreditReasonsTable < ActiveRecord::Migration[5.1]
45
45
  end
46
46
  end
47
47
 
48
- StoreCreditReason.all.each do |store_credit_reason|
48
+ StoreCreditReason.all.find_each do |store_credit_reason|
49
49
  StoreCreditUpdateReason.create!(name: store_credit_reason.name)
50
50
  end
51
51
 
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddTypeBeforeRemovalToSpreePaymentMethods < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :spree_payment_methods, :type_before_removal, :string
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ChangeColumnNullOnPrices < ActiveRecord::Migration[5.2]
4
+ def change
5
+ change_column_null(:spree_prices, :amount, false)
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddUniqueIndexToOptionValuesVariants < ActiveRecord::Migration[5.2]
4
+ def up
5
+ remove_index :spree_option_values_variants, [:variant_id, :option_value_id]
6
+ add_index :spree_option_values_variants, [:variant_id, :option_value_id],
7
+ name: "index_option_values_variants_on_variant_id_and_option_value_id",
8
+ unique: true
9
+ end
10
+
11
+ def down
12
+ remove_index :spree_option_values_variants, [:variant_id, :option_value_id]
13
+ add_index :spree_option_values_variants, [:variant_id, :option_value_id],
14
+ name: "index_option_values_variants_on_variant_id_and_option_value_id"
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveArchivedUserAddresses < ActiveRecord::Migration[5.2]
4
+ def up
5
+ Spree::UserAddress.where(archived: true).delete_all
6
+ remove_column :spree_user_addresses, :archived, :boolean, default: false
7
+ end
8
+
9
+ def down
10
+ add_column :spree_user_addresses, :archived, :boolean, default: false
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ class AddLevelToSpreeTaxRates < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :spree_tax_rates, :level, :integer, default: 0, null: false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddShippingCategoryToSpreeVariants < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :spree_variants, :shipping_category, index: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class ChangeColumnNullOptionValuesOptionTypeId < ActiveRecord::Migration[5.2]
2
+ def change
3
+ change_column_null(:spree_option_values, :option_type_id, false)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveTaxonPosition < ActiveRecord::Migration[5.2]
2
+ def change
3
+ remove_column :spree_taxons, :position, :integer, default: 0
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class DropDeprecatedAddressIdFromShipments < ActiveRecord::Migration[5.2]
2
+ def up
3
+ remove_index :spree_shipments, column: [:deprecated_address_id], name: :index_spree_shipments_on_deprecated_address_id
4
+ remove_column :spree_shipments, :deprecated_address_id
5
+ end
6
+
7
+ def down
8
+ add_column :spree_shipments, :deprecated_address_id, :integer
9
+ add_index :spree_shipments, :deprecated_address_id, name: :index_spree_shipments_on_deprecated_address_id
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSpreePermissionSetsInCore < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :spree_permission_sets, if_not_exists: true do |t|
4
+ t.string :name
5
+ t.string :set
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSpreeRolesPermissionsInCore < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :spree_role_permissions, if_not_exists: true do |t|
4
+ t.references :role
5
+ t.references :permission_set
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddDescriptionToSpreeRoles < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_roles, :description, :text
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddPrivilegeAndCategoryToSpreePermissionSets < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_permission_sets, :privilege, :string
4
+ add_column :spree_permission_sets, :category, :string
5
+ end
6
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddMetadataToSpreeResources < ActiveRecord::Migration[7.2]
4
+ def change
5
+ # List of Resources to add metadata columns to
6
+ %i[
7
+ spree_orders
8
+ spree_line_items
9
+ spree_shipments
10
+ spree_payments
11
+ spree_refunds
12
+ spree_customer_returns
13
+ spree_store_credit_events
14
+ spree_return_authorizations
15
+ ].each do |table_name|
16
+ change_table table_name do |t|
17
+ # Check if the database supports jsonb for efficient querying
18
+ if t.respond_to?(:jsonb)
19
+ t.jsonb(:customer_metadata, default: {}) unless t.column_exists?(:customer_metadata)
20
+ t.jsonb(:admin_metadata, default: {}) unless t.column_exists?(:admin_metadata)
21
+ else
22
+ t.json(:customer_metadata) unless t.column_exists?(:customer_metadata)
23
+ t.json(:admin_metadata) unless t.column_exists?(:admin_metadata)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,6 @@
1
+ class AddGtinAndConditionToSpreeVariant < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_variants, :gtin, :string
4
+ add_column :spree_variants, :condition, :string
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ class AddPrimaryTaxonToProducts < ActiveRecord::Migration[7.0]
2
+ def change
3
+ change_table :spree_products do |t|
4
+ t.references :primary_taxon, type: :integer, foreign_key: { to_table: :spree_taxons }
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ class AddMetadataToUsers < ActiveRecord::Migration[7.0]
2
+ def change
3
+ change_table Spree.user_class.table_name do |t|
4
+ if t.respond_to?(:jsonb)
5
+ t.jsonb(:customer_metadata, default: {}) unless t.column_exists?(:customer_metadata)
6
+ t.jsonb(:admin_metadata, default: {}) unless t.column_exists?(:admin_metadata)
7
+ else
8
+ t.json(:customer_metadata) unless t.column_exists?(:customer_metadata)
9
+ t.json(:admin_metadata) unless t.column_exists?(:admin_metadata)
10
+ end
11
+ end
12
+ end
13
+ end
data/db/seeds.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'thor'
4
+ shell = Thor::Base.shell.new
5
+
3
6
  %w(
4
7
  stores
5
8
  store_credit
@@ -10,8 +13,9 @@
10
13
  zones
11
14
  refund_reasons
12
15
  roles
16
+ permission_sets
13
17
  shipping_categories
14
18
  ).each do |seed|
15
- puts "Loading seed file: #{seed}"
19
+ shell.say_status :seed, seed
16
20
  require_relative "default/spree/#{seed}"
17
21
  end
@@ -0,0 +1,16 @@
1
+ initializer 'spree_authentication.rb', <<~RUBY
2
+ # Please replace this module with your own implementation of
3
+ # ApplicationController#spree_current_user.
4
+ #
5
+ # The current setup will allow doing guest checkouts.
6
+ ActiveSupport.on_load(:action_controller) do
7
+ def spree_current_user
8
+ # Define here your custom logic for retrieving the current user
9
+ nil
10
+ end
11
+ end
12
+ RUBY
13
+
14
+ create_file 'app/views/spree/admin/shared/_navigation_footer.html.erb', <<~ERB
15
+ <!-- Add here your login/logout links in 'app/views/spree/admin/shared/_navigation_footer.html.erb'. -->
16
+ ERB
@@ -0,0 +1,16 @@
1
+ # Skip if already in the gemfile
2
+ if Bundler.locked_gems.dependencies['solidus_auth_devise']
3
+ say_status :skipping, 'solidus_auth_devise is already in the gemfile'
4
+ else
5
+ bundle_command("add solidus_auth_devise")
6
+ end
7
+
8
+ if options[:auto_accept]
9
+ migrations_flag = options[:migrate] ? '--auto-run-migrations' : '--skip-migrations'
10
+ end
11
+
12
+ generate "solidus:auth:install #{migrations_flag}"
13
+
14
+ append_file "db/seeds.rb", <<~RUBY
15
+ Spree::Auth::Engine.load_seed
16
+ RUBY
@@ -0,0 +1,10 @@
1
+ user_class = options[:user_class] || 'Spree::User'
2
+
3
+ begin
4
+ user_class.classify.constantize
5
+ rescue NameError
6
+ say_status :error, "Can't find an existing user class named #{user_class.classify}, plese set up one before using this authentication option.", :red
7
+ abort
8
+ end
9
+
10
+ generate "spree:custom_user #{user_class.shellescape}"
@@ -0,0 +1 @@
1
+ apply 'https://github.com/solidusio/solidus_starter_frontend/raw/v4.5/template.rb'
@@ -0,0 +1,5 @@
1
+ unless Bundler.locked_gems.dependencies['solidus_braintree']
2
+ bundle_command 'add solidus_braintree --version "~> 3.0"'
3
+ end
4
+
5
+ generate "solidus_braintree:install --migrate=#{options[:migrate]}"
@@ -0,0 +1,5 @@
1
+ unless Bundler.locked_gems.dependencies['solidus_paypal_commerce_platform']
2
+ bundle_command "add solidus_paypal_commerce_platform --version='~> 1.0'"
3
+ end
4
+
5
+ generate "solidus_paypal_commerce_platform:install --migrate=#{options[:migrate]}"
@@ -0,0 +1,5 @@
1
+ unless Bundler.locked_gems.dependencies['solidus_stripe']
2
+ bundle_command "add solidus_stripe --version '~> 5.a'"
3
+ end
4
+
5
+ generate 'solidus_stripe:install'