solidus_core 4.3.4 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/base_helper.rb +2 -2
  3. data/app/mailers/spree/base_mailer.rb +1 -1
  4. data/app/mailers/spree/carton_mailer.rb +1 -1
  5. data/app/mailers/spree/order_mailer.rb +3 -3
  6. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  7. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
  8. data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
  9. data/app/models/concerns/spree/display_money.rb +1 -1
  10. data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
  11. data/app/models/concerns/spree/user_address_book.rb +4 -4
  12. data/app/models/concerns/spree/user_methods.rb +3 -3
  13. data/app/models/spree/address.rb +6 -6
  14. data/app/models/spree/adjustment.rb +13 -66
  15. data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
  16. data/app/models/spree/carton.rb +2 -2
  17. data/app/models/spree/credit_card.rb +6 -6
  18. data/app/models/spree/deprecated_configurable_class.rb +40 -0
  19. data/app/models/spree/fulfilment_changer.rb +4 -4
  20. data/app/models/spree/inventory_unit.rb +2 -2
  21. data/app/models/spree/line_item.rb +1 -1
  22. data/app/models/spree/null_promotion_adjuster.rb +13 -0
  23. data/app/models/spree/null_promotion_advertiser.rb +9 -0
  24. data/app/models/spree/null_promotion_finder.rb +9 -0
  25. data/app/models/spree/null_promotion_handler.rb +44 -0
  26. data/app/models/spree/order.rb +15 -22
  27. data/app/models/spree/order_cancellations.rb +8 -8
  28. data/app/models/spree/order_mutex.rb +2 -2
  29. data/app/models/spree/order_shipping.rb +9 -9
  30. data/app/models/spree/order_updater.rb +6 -10
  31. data/app/models/spree/payment/processing.rb +2 -2
  32. data/app/models/spree/payment.rb +2 -2
  33. data/app/models/spree/payment_create.rb +1 -1
  34. data/app/models/spree/payment_method/store_credit.rb +1 -1
  35. data/app/models/spree/payment_source.rb +5 -1
  36. data/app/models/spree/permission_set.rb +11 -0
  37. data/app/models/spree/product.rb +7 -28
  38. data/app/models/spree/refund.rb +1 -1
  39. data/app/models/spree/reimbursement.rb +4 -4
  40. data/app/models/spree/reimbursement_performer.rb +3 -3
  41. data/app/models/spree/reimbursement_tax_calculator.rb +2 -2
  42. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  43. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
  44. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  45. data/app/models/spree/return_item.rb +9 -9
  46. data/app/models/spree/role.rb +3 -1
  47. data/app/models/spree/role_permission.rb +8 -0
  48. data/app/models/spree/shipment.rb +7 -7
  49. data/app/models/spree/shipping_category.rb +2 -0
  50. data/app/models/spree/shipping_rate.rb +1 -1
  51. data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +4 -11
  52. data/app/models/spree/stock/estimator.rb +1 -1
  53. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  54. data/app/models/spree/stock/package.rb +2 -2
  55. data/app/models/spree/stock/simple_coordinator.rb +1 -1
  56. data/app/models/spree/stock_location.rb +5 -5
  57. data/app/models/spree/store.rb +1 -1
  58. data/app/models/spree/store_credit.rb +17 -15
  59. data/app/models/spree/store_credit_event.rb +3 -3
  60. data/app/models/spree/tax_calculator/default.rb +2 -2
  61. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -1
  62. data/app/models/spree/tax_category.rb +3 -1
  63. data/app/models/spree/tax_rate.rb +3 -3
  64. data/app/models/spree/taxonomy.rb +2 -2
  65. data/app/models/spree/unit_cancel.rb +1 -2
  66. data/app/models/spree/variant/vat_price_generator.rb +1 -1
  67. data/app/models/spree/variant.rb +7 -2
  68. data/app/models/spree/wallet.rb +2 -2
  69. data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
  70. data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
  71. data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
  72. data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
  73. data/config/locales/en.yml +4 -90
  74. data/db/default/spree/permission_sets.rb +10 -0
  75. data/db/default/spree/return_reasons.rb +3 -1
  76. data/db/default/spree/states.rb +1 -1
  77. data/db/migrate/20160101010000_solidus_one_four.rb +0 -117
  78. data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
  79. data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
  80. data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
  81. data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
  82. data/db/seeds.rb +1 -0
  83. data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
  84. data/lib/generators/solidus/update/update_generator.rb +1 -1
  85. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  86. data/lib/spree/app_configuration.rb +53 -84
  87. data/lib/spree/core/class_constantizer.rb +2 -2
  88. data/lib/spree/core/controller_helpers/payment_parameters.rb +1 -1
  89. data/lib/spree/core/engine.rb +1 -0
  90. data/lib/spree/core/environment/calculators.rb +35 -3
  91. data/lib/spree/core/environment/promotions.rb +25 -4
  92. data/lib/spree/core/environment_extension.rb +16 -2
  93. data/lib/spree/core/importer/order.rb +5 -5
  94. data/lib/spree/core/importer/product.rb +3 -3
  95. data/lib/spree/core/nested_class_set.rb +28 -0
  96. data/lib/spree/core/null_promotion_configuration.rb +84 -0
  97. data/lib/spree/core/product_filters.rb +1 -1
  98. data/lib/spree/core/search/variant.rb +2 -2
  99. data/lib/spree/core/state_machines/order.rb +0 -1
  100. data/lib/spree/core/validators/email.rb +1 -1
  101. data/lib/spree/core/version.rb +2 -2
  102. data/lib/spree/core.rb +2 -6
  103. data/lib/spree/deprecator.rb +9 -0
  104. data/lib/spree/i18n.rb +1 -1
  105. data/lib/spree/mailer_previews/carton_preview.rb +1 -1
  106. data/lib/spree/permission_sets/base.rb +13 -1
  107. data/lib/spree/permission_sets/configuration_display.rb +10 -0
  108. data/lib/spree/permission_sets/configuration_management.rb +10 -0
  109. data/lib/spree/permission_sets/dashboard_display.rb +12 -0
  110. data/lib/spree/permission_sets/default_customer.rb +11 -1
  111. data/lib/spree/permission_sets/order_display.rb +10 -0
  112. data/lib/spree/permission_sets/order_management.rb +10 -0
  113. data/lib/spree/permission_sets/product_display.rb +10 -0
  114. data/lib/spree/permission_sets/product_management.rb +10 -0
  115. data/lib/spree/permission_sets/restricted_stock_display.rb +10 -0
  116. data/lib/spree/permission_sets/restricted_stock_management.rb +10 -0
  117. data/lib/spree/permission_sets/stock_display.rb +10 -0
  118. data/lib/spree/permission_sets/stock_management.rb +10 -0
  119. data/lib/spree/permission_sets/super_user.rb +10 -0
  120. data/lib/spree/permission_sets/user_display.rb +10 -0
  121. data/lib/spree/permission_sets/user_management.rb +10 -0
  122. data/lib/spree/permission_sets.rb +0 -2
  123. data/lib/spree/permitted_attributes.rb +2 -2
  124. data/lib/spree/preferences/store.rb +2 -2
  125. data/lib/spree/testing_support/capybara_ext.rb +1 -1
  126. data/lib/spree/testing_support/dummy_ability.rb +7 -0
  127. data/lib/spree/testing_support/dummy_app/database.yml +2 -2
  128. data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
  129. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +2 -2
  130. data/lib/spree/testing_support/dummy_app.rb +17 -12
  131. data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
  132. data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
  133. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  134. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
  135. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
  136. data/lib/spree/testing_support/factories/order_factory.rb +5 -24
  137. data/lib/spree/testing_support/factories/product_factory.rb +1 -1
  138. data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
  139. data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
  140. data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
  141. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  142. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  143. data/lib/spree/testing_support/order_walkthrough.rb +3 -3
  144. data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
  145. data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
  146. data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
  147. data/lib/tasks/colorado_delivery_fee.rake +2 -2
  148. data/solidus_core.gemspec +6 -6
  149. metadata +60 -91
  150. data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
  151. data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
  152. data/app/models/spree/calculator/distributed_amount.rb +0 -33
  153. data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
  154. data/app/models/spree/calculator/flexi_rate.rb +0 -22
  155. data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
  156. data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
  157. data/app/models/spree/calculator/tiered_percent.rb +0 -62
  158. data/app/models/spree/order_promotion.rb +0 -27
  159. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
  160. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
  161. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
  162. data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
  163. data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
  164. data/app/models/spree/promotion/rules/first_order.rb +0 -38
  165. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
  166. data/app/models/spree/promotion/rules/item_total.rb +0 -86
  167. data/app/models/spree/promotion/rules/minimum_quantity.rb +0 -59
  168. data/app/models/spree/promotion/rules/nth_order.rb +0 -45
  169. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
  170. data/app/models/spree/promotion/rules/option_value.rb +0 -50
  171. data/app/models/spree/promotion/rules/product.rb +0 -86
  172. data/app/models/spree/promotion/rules/store.rb +0 -26
  173. data/app/models/spree/promotion/rules/taxon.rb +0 -91
  174. data/app/models/spree/promotion/rules/user.rb +0 -34
  175. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
  176. data/app/models/spree/promotion/rules/user_role.rb +0 -45
  177. data/app/models/spree/promotion.rb +0 -271
  178. data/app/models/spree/promotion_action.rb +0 -47
  179. data/app/models/spree/promotion_category.rb +0 -8
  180. data/app/models/spree/promotion_chooser.rb +0 -34
  181. data/app/models/spree/promotion_code/batch_builder.rb +0 -64
  182. data/app/models/spree/promotion_code.rb +0 -54
  183. data/app/models/spree/promotion_code_batch.rb +0 -27
  184. data/app/models/spree/promotion_handler/cart.rb +0 -75
  185. data/app/models/spree/promotion_handler/coupon.rb +0 -123
  186. data/app/models/spree/promotion_handler/page.rb +0 -26
  187. data/app/models/spree/promotion_handler/shipping.rb +0 -61
  188. data/app/models/spree/promotion_rule.rb +0 -55
  189. data/app/models/spree/promotion_rule_store.rb +0 -10
  190. data/app/models/spree/promotion_rule_taxon.rb +0 -8
  191. data/app/models/spree/promotion_rule_user.rb +0 -10
  192. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
  193. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
  194. data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
  195. data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
  196. data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
  197. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
  198. data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
  199. data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
  200. data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
  201. data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
  202. data/db/migrate/20231027084517_add_order_promotions_foreign_key.rb +0 -10
  203. data/db/migrate/20231031175215_add_promotion_order_promotion_foreign_key.rb +0 -10
  204. data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
  205. data/lib/spree/permission_sets/promotion_display.rb +0 -25
  206. data/lib/spree/permission_sets/promotion_management.rb +0 -25
  207. data/lib/spree/ransack_4_1_patch.rb +0 -16
  208. data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
  209. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
  210. data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
  211. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -98
@@ -410,6 +410,7 @@ en:
410
410
  analytics_id: Analytics ID
411
411
  spree/user:
412
412
  email: Email
413
+ last_active: Last active
413
414
  lifetime_value: Total spent
414
415
  password: Password
415
416
  password_confirmation: Password Confirmation
@@ -877,27 +878,6 @@ en:
877
878
  new_price: New Price
878
879
  table:
879
880
  variant_pricing: Variant Prices
880
- promotion_status:
881
- active: Active
882
- expired: Expired
883
- inactive: Inactive
884
- not_started: Not started
885
- promotions:
886
- actions:
887
- calculator_label: Calculated by
888
- activations_edit:
889
- auto: All orders will attempt to use this promotion
890
- multiple_codes_html: This promotion uses %{count} promotion codes
891
- single_code_html: 'This promotion uses the promotion code: <code>%{code}</code>'
892
- activations_new:
893
- auto: Apply to all orders
894
- multiple_codes: Multiple promotion codes
895
- single_code: Single promotion code
896
- form:
897
- activation: Activation
898
- expires_at_placeholder: Never
899
- general: General
900
- starts_at_placeholder: Immediately
901
881
  shipping_methods:
902
882
  form:
903
883
  stock_locations_placeholder: Choose stock locations
@@ -963,8 +943,6 @@ en:
963
943
  overview: Overview
964
944
  payments: Payments
965
945
  products: Products
966
- promotion_categories: Promotion Categories
967
- promotions: Promotions
968
946
  properties: Property Types
969
947
  rma: RMA
970
948
  settings: Settings
@@ -1066,8 +1044,6 @@ en:
1066
1044
  back_to_payment_methods_list: Back To Payment Methods List
1067
1045
  back_to_payments_list: Back To Payments List
1068
1046
  back_to_products_list: Back To Products List
1069
- back_to_promotion_categories_list: Back To Promotions Categories List
1070
- back_to_promotions_list: Back To Promotions List
1071
1047
  back_to_properties_list: Back To Property Types List
1072
1048
  back_to_refund_reason_list: Back To Refund Reason List
1073
1049
  back_to_reimbursement_type_list: Back To Reimbursement Type List
@@ -1093,7 +1069,6 @@ en:
1093
1069
  backordered: Backordered
1094
1070
  backorders_allowed: backorders allowed
1095
1071
  balance_due: Balance Due
1096
- base_amount: Base Amount
1097
1072
  base_percent: Base Percent
1098
1073
  bill_address: Bill Address
1099
1074
  bill_address_required: Valid billing address required
@@ -1143,8 +1118,6 @@ en:
1143
1118
  choose_dashboard_locale: Choose Dashboard Locale
1144
1119
  choose_dashboard_theme: Choose Dashboard Theme
1145
1120
  choose_location: Choose Location
1146
- choose_promotion_action: Choose Action
1147
- choose_promotion_rule: Choose Rule
1148
1121
  choose_reason: Choose Reason
1149
1122
  city: City
1150
1123
  clear_cache: Clear Cache
@@ -1442,7 +1415,6 @@ en:
1442
1415
  create: Create
1443
1416
  create_a_new_account: Create a new account
1444
1417
  create_one: Create One.
1445
- create_promotion_code: Create promotion code
1446
1418
  create_reimbursement: Create reimbursement
1447
1419
  created_at: Created At
1448
1420
  created_by: Created by
@@ -1456,7 +1428,6 @@ en:
1456
1428
  currency: Currency
1457
1429
  currency_settings: Currency Settings
1458
1430
  current: Current
1459
- current_promotion_usage: 'Current Usage: %{count}'
1460
1431
  customer: Customer
1461
1432
  customer_details: Customer Details
1462
1433
  customer_details_updated: Customer Details Updated
@@ -1495,10 +1466,8 @@ en:
1495
1466
  destroy: Destroy
1496
1467
  details: Details
1497
1468
  discount_amount: Discount Amount
1498
- discount_rules: Discount Rules
1499
1469
  dismiss_banner: No. Thanks! I'm not interested, do not display this message again
1500
1470
  display: Display
1501
- download_promotion_codes_list: Download codes list
1502
1471
  edit: Edit
1503
1472
  edit_refund_reason: Edit Refund Reason
1504
1473
  editing_adjustment_reason: Editing Adjustment Reason
@@ -1506,8 +1475,6 @@ en:
1506
1475
  editing_option_type: Editing Option Type
1507
1476
  editing_payment_method: Editing Payment Method
1508
1477
  editing_product: Editing Product
1509
- editing_promotion: Editing Promotion
1510
- editing_promotion_category: Editing Promotion Category
1511
1478
  editing_property: Editing Property Type
1512
1479
  editing_refund: Editing Refund
1513
1480
  editing_refund_reason: Editing Refund Reason
@@ -1610,7 +1577,6 @@ en:
1610
1577
  general: General
1611
1578
  google_analytics: Google Analytics
1612
1579
  google_analytics_id: Analytics ID
1613
- group_size: Group size
1614
1580
  guest_checkout: Guest Checkout
1615
1581
  guest_user_account: Checkout as a Guest
1616
1582
  has_no_shipped_units: has no shipped units
@@ -1623,7 +1589,6 @@ en:
1623
1589
  hide_out_of_stock: Hide out of stock
1624
1590
  hints:
1625
1591
  spree/calculator:
1626
- promotions: This is used to determine the promotional discount to be applied to an order, an item, or shipping charges.
1627
1592
  shipping_methods: This is used to calculate the shipping rates on a per order or per package rate.
1628
1593
  tax_rates: The "Default Tax" calculator is used for both sales tax (United States-style taxes) and value-added tax (VAT). Typically this calculator should be the only tax calculator required by your store. "Flat Fee" can be used for any taxes that require a flat fee be charged to the customer.
1629
1594
  spree/price:
@@ -1636,10 +1601,6 @@ en:
1636
1601
  promotionable: 'This determines whether or not promotions can apply to this product.<br>Default: Checked'
1637
1602
  shipping_category: 'This determines what kind of shipping this product requires.<br> Default: Default'
1638
1603
  tax_category: 'This determines what kind of taxation is applied to this product.<br> Default: %{default_tax_category}'
1639
- spree/promotion:
1640
- expires_at: This determines when the promotion expires. <br> If no value is specified, the promotion will never expire.
1641
- promo_code_will_be_disabled: Selecting this option, promo codes will be disabled for this promotion because all its rules / actions will be applied automatically to all orders.
1642
- starts_at: This determines when the promotion can be applied to orders. <br> If no value is specified, the promotion will be immediately available.
1643
1604
  spree/shipping_method:
1644
1605
  available_to_all: Uncheck to select specific stock locations this shipping method will be available in.
1645
1606
  spree/stock_location:
@@ -1702,8 +1663,6 @@ en:
1702
1663
  intercept_email_instructions: Override email recipient and replace with this address.
1703
1664
  invalid_exchange_variant: Invalid exchange variant.
1704
1665
  invalid_payment_method_type: Invalid payment method type.
1705
- invalid_promotion_action: Invalid promotion action.
1706
- invalid_promotion_rule: Invalid promotion rule.
1707
1666
  invalidate: Invalidate
1708
1667
  inventory: Inventory
1709
1668
  inventory_adjustment: Inventory Adjustment
@@ -1770,7 +1729,6 @@ en:
1770
1729
  look_for_similar_items: Look for similar items
1771
1730
  make_refund: Make refund
1772
1731
  make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
1773
- manage_promotion_categories: Manage Promotion Categories
1774
1732
  manage_stock: Store Stock
1775
1733
  manage_variants: Manage Variants
1776
1734
  manual_intervention_required: Manual intervention required
@@ -1816,9 +1774,6 @@ en:
1816
1774
  new_payment: New Payment
1817
1775
  new_payment_method: New Payment Method
1818
1776
  new_product: New Product
1819
- new_promotion: New Promotion
1820
- new_promotion_category: New Promotion Category
1821
- new_promotion_code_batch: New Promotion Code Batch
1822
1777
  new_property: New Property Type
1823
1778
  new_refund: New Refund
1824
1779
  new_refund_reason: New Refund Reason
@@ -1842,7 +1797,6 @@ en:
1842
1797
  new_variant: New Variant
1843
1798
  new_zone: New Zone
1844
1799
  next: Next
1845
- no_actions_added: No actions added
1846
1800
  no_images_found: No images found
1847
1801
  no_inventory_selected: No inventory selected
1848
1802
  no_option_values_on_product_html: This product has no associated option values. Add some to it through Option Types in the %{link}.
@@ -1851,13 +1805,11 @@ en:
1851
1805
  no_payment_methods_found: No payment methods found
1852
1806
  no_pending_payments: No pending payments
1853
1807
  no_products_found: No products found
1854
- no_promotions_found: No promotions found
1855
1808
  no_resource: No %{resource} found.
1856
1809
  no_resource_found: No %{resource} found
1857
1810
  no_resource_found_html: No %{resource} found, %{add_one_link}!
1858
1811
  no_resource_found_link: Add One
1859
1812
  no_results: No results
1860
- no_rules_added: No rules added
1861
1813
  no_shipping_method_selected: No shipping method selected.
1862
1814
  no_shipping_methods_found: No shipping methods found
1863
1815
  no_stock_locations_found: No stock locations found
@@ -1881,6 +1833,8 @@ en:
1881
1833
  product_not_deleted: Product could not be deleted
1882
1834
  variant_deleted: Variant has been deleted
1883
1835
  variant_not_deleted: Variant could not be deleted
1836
+ null_promotion_handler:
1837
+ coupon_code_applied: Coupon code has been applied.
1884
1838
  num_orders: "# Orders"
1885
1839
  number: Number
1886
1840
  number_of_codes: "%{count} codes"
@@ -1901,6 +1855,7 @@ en:
1901
1855
  order_approved: Order approved
1902
1856
  order_canceled: Order canceled
1903
1857
  order_completed: Order completed
1858
+ order_count: Order Count
1904
1859
  order_details: Order Details
1905
1860
  order_email_resent: Order Email Resent
1906
1861
  order_information: Order Information
@@ -2019,21 +1974,10 @@ en:
2019
1974
  product_has_no_description: This product has no description
2020
1975
  product_not_available_in_this_currency: This product is not available in the selected currency.
2021
1976
  product_properties: Product Properties
2022
- product_rule:
2023
- choose_products: Choose products
2024
- label: Order must contain %{select} of these products
2025
- match_all: all
2026
- match_any: at least one
2027
- match_none: none
2028
- product_source:
2029
- group: From product group
2030
- manual: Manually choose
2031
1977
  product_without_default_price_cta: Please, create a Master Price!
2032
1978
  product_without_default_price_info: This Product has no price in the default currency (%{default_currency}).
2033
1979
  products: Products
2034
1980
  promotion: Promotion
2035
- promotion_action: Promotion Action
2036
- promotion_actions: Actions
2037
1981
  promotion_code_batch_mailer:
2038
1982
  promotion_code_batch_errored:
2039
1983
  message: 'Promotion code batch errored (%{error}) for promotion: '
@@ -2041,20 +1985,7 @@ en:
2041
1985
  promotion_code_batch_finished:
2042
1986
  message: 'All %{number_of_codes} codes have been created for promotion: '
2043
1987
  subject: Promotion code batch finished
2044
- promotion_code_batches:
2045
- errored: 'Errored: %{error}'
2046
- finished: All %{number_of_codes} codes have been created.
2047
- processing: 'Processing: %{number_of_codes_processed} / %{number_of_codes}'
2048
- promotion_form:
2049
- match_policies:
2050
- all: Match all of these rules
2051
- any: Match any of these rules
2052
- promotion_rule: Promotion Rule
2053
- promotion_successfully_created: Promotion has been successfully created!
2054
1988
  promotion_total_changed_before_complete: One or more of the promotions on your order have become ineligible and were removed. Please check the new order amounts and try again.
2055
- promotion_uses: Promotion uses
2056
- promotionable: Promotable
2057
- promotions: Promotions
2058
1989
  propagate_all_variants: Propagate all variants
2059
1990
  properties: Property Types
2060
1991
  property: Property Type
@@ -2155,7 +2086,6 @@ en:
2155
2086
  rma_number: RMA Number
2156
2087
  rma_value: RMA Value
2157
2088
  roles: Roles
2158
- rules: Rules
2159
2089
  sales_total: Sales Total
2160
2090
  sales_total_description: Sales Total For All Orders
2161
2091
  sales_totals: Sales Totals
@@ -2304,8 +2234,6 @@ en:
2304
2234
  user_has_no_store_credits: User does not have any available store credit
2305
2235
  store_credit_category:
2306
2236
  default: Default
2307
- store_rule:
2308
- choose_stores: Choose Stores
2309
2237
  street_address: Street Address
2310
2238
  street_address_2: Street Address (cont'd)
2311
2239
  subtotal: Subtotal
@@ -2328,12 +2256,6 @@ en:
2328
2256
  taxon_attachment_removal_error: There was an error removing the attachment
2329
2257
  taxon_edit: Edit Taxon
2330
2258
  taxon_placeholder: Add a Taxon
2331
- taxon_rule:
2332
- choose_taxons: Choose taxons
2333
- label: Order must contain %{select} of these taxons
2334
- match_all: all
2335
- match_any: at least one
2336
- match_none: none
2337
2259
  taxonomies: Taxonomies
2338
2260
  taxonomy: Taxonomy
2339
2261
  taxonomy_edit: Edit taxonomy
@@ -2398,13 +2320,6 @@ en:
2398
2320
  use_new_cc: Use a new card
2399
2321
  use_new_cc_or_payment_method: Use a new card / payment method
2400
2322
  user: User
2401
- user_role_rule:
2402
- choose_roles: Choose Roles
2403
- label: User must contain %{select} of these roles
2404
- match_all: all
2405
- match_any: at least one
2406
- user_rule:
2407
- choose_users: Choose Users
2408
2323
  users: Users
2409
2324
  validation:
2410
2325
  cannot_be_less_than_shipped_units: cannot be less than the number of shipped units.
@@ -2426,7 +2341,6 @@ en:
2426
2341
  variants: Variants
2427
2342
  version: Version
2428
2343
  view_product: View Product On Store
2429
- view_promotion_codes_list: View codes list
2430
2344
  void: Void
2431
2345
  weight: Weight
2432
2346
  what_is_a_cvv: What is a (CVV) Credit Card Code?
@@ -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,7 +2,7 @@
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
@@ -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
 
@@ -326,16 +322,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
326
322
  t.index ["user_id"], name: "index_spree_orders_on_user_id"
327
323
  end
328
324
 
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
325
  create_table "spree_payment_capture_events", force: :cascade do |t|
340
326
  t.decimal "amount", precision: 10, scale: 2, default: "0.0"
341
327
  t.integer "payment_id"
@@ -411,15 +397,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
411
397
  t.index ["product_id"], name: "index_spree_product_option_types_on_product_id"
412
398
  end
413
399
 
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
400
  create_table "spree_product_properties", force: :cascade do |t|
424
401
  t.string "value"
425
402
  t.integer "product_id"
@@ -463,100 +440,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
463
440
  t.index ["taxon_id"], name: "index_spree_products_taxons_on_taxon_id"
464
441
  end
465
442
 
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
443
  create_table "spree_properties", force: :cascade do |t|
561
444
  t.string "name"
562
445
  t.string "presentation", null: false
@@ -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
data/db/seeds.rb CHANGED
@@ -13,6 +13,7 @@ shell = Thor::Base.shell.new
13
13
  zones
14
14
  refund_reasons
15
15
  roles
16
+ permission_sets
16
17
  shipping_categories
17
18
  ).each do |seed|
18
19
  shell.say_status :seed, seed
@@ -1 +1 @@
1
- apply 'https://github.com/solidusio/solidus_starter_frontend/raw/v4.3/template.rb'
1
+ apply 'https://github.com/solidusio/solidus_starter_frontend/raw/v4.4/template.rb'
@@ -110,7 +110,7 @@ module Solidus
110
110
  end
111
111
 
112
112
  def changes_template_for(klass, from, to)
113
- changes = Spree::Preferences::PreferenceDifferentiator.new(klass).call(from: from, to: to)
113
+ changes = Spree::Preferences::PreferenceDifferentiator.new(klass).call(from:, to:)
114
114
  return '# No changes' if changes.empty?
115
115
 
116
116
  [
@@ -18,7 +18,12 @@ Dummy::Application.configure do
18
18
  config.eager_load = false
19
19
 
20
20
  # Raise exceptions instead of rendering exception templates
21
- config.action_dispatch.show_exceptions = false # Should be :none for Rails 7.1+
21
+ if Rails.gem_version >= Gem::Version.new('7.1')
22
+ config.action_controller.raise_on_missing_callback_actions = true
23
+ config.action_dispatch.show_exceptions = :none
24
+ else
25
+ config.action_dispatch.show_exceptions = false
26
+ end
22
27
 
23
28
  # Disable request forgery protection in test environment
24
29
  config.action_controller.allow_forgery_protection = false