spree_core 4.2.0.rc2 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js +20 -0
  3. data/app/controllers/spree/base_controller.rb +2 -3
  4. data/app/controllers/spree/errors_controller.rb +11 -0
  5. data/app/finders/spree/addresses/find.rb +1 -12
  6. data/app/finders/spree/base_finder.rb +14 -0
  7. data/app/finders/spree/countries/find.rb +11 -3
  8. data/app/finders/spree/credit_cards/find.rb +2 -2
  9. data/app/finders/spree/orders/find_current.rb +2 -2
  10. data/app/finders/spree/products/find.rb +14 -3
  11. data/app/helpers/spree/base_helper.rb +3 -8
  12. data/app/helpers/spree/currency_helper.rb +34 -0
  13. data/app/helpers/spree/locale_helper.rb +31 -0
  14. data/app/helpers/spree/products_helper.rb +37 -12
  15. data/app/mailers/spree/base_mailer.rb +4 -4
  16. data/app/mailers/spree/order_mailer.rb +3 -3
  17. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  18. data/app/mailers/spree/shipment_mailer.rb +1 -1
  19. data/app/models/concerns/spree/default_price.rb +1 -5
  20. data/app/models/concerns/spree/product_scopes.rb +1 -1
  21. data/app/models/concerns/spree/user_methods.rb +2 -2
  22. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  23. data/app/models/spree/ability.rb +45 -34
  24. data/app/models/spree/address.rb +4 -0
  25. data/app/models/spree/app_configuration.rb +2 -2
  26. data/app/models/spree/app_dependencies.rb +6 -2
  27. data/app/models/spree/base.rb +5 -0
  28. data/app/models/spree/credit_card.rb +4 -0
  29. data/app/models/spree/fulfilment_changer.rb +58 -16
  30. data/app/models/spree/image.rb +14 -14
  31. data/app/models/spree/inventory_unit.rb +2 -7
  32. data/app/models/spree/line_item.rb +7 -15
  33. data/app/models/spree/order.rb +1 -0
  34. data/app/models/spree/payment.rb +18 -4
  35. data/app/models/spree/payment/processing.rb +2 -2
  36. data/app/models/spree/payment_method.rb +3 -3
  37. data/app/models/spree/price.rb +2 -7
  38. data/app/models/spree/product.rb +41 -17
  39. data/app/models/spree/promotion/rules/option_value.rb +1 -1
  40. data/app/models/spree/promotion/rules/product.rb +2 -1
  41. data/app/models/spree/promotion/rules/user.rb +2 -1
  42. data/app/models/spree/refund.rb +2 -2
  43. data/app/models/spree/return_item/eligibility_validator/default.rb +0 -2
  44. data/app/models/spree/return_item/eligibility_validator/{r_m_a_required.rb → rma_required.rb} +0 -0
  45. data/app/models/spree/shipment.rb +1 -1
  46. data/app/models/spree/shipping_method.rb +1 -5
  47. data/app/models/spree/shipping_rate.rb +2 -11
  48. data/app/models/spree/stock/availability_validator.rb +3 -4
  49. data/app/models/spree/stock_item.rb +1 -5
  50. data/app/models/spree/store.rb +55 -2
  51. data/app/models/spree/store_credit.rb +1 -1
  52. data/app/models/spree/variant.rb +9 -16
  53. data/app/models/spree/zone.rb +13 -4
  54. data/app/paginators/spree/shared/paginate.rb +8 -1
  55. data/app/presenters/spree/variant_presenter.rb +2 -5
  56. data/app/services/spree/account/addresses/create.rb +6 -1
  57. data/app/services/spree/account/addresses/{base.rb → helper.rb} +1 -3
  58. data/app/services/spree/account/addresses/update.rb +6 -1
  59. data/app/services/spree/build_localized_redirect_url.rb +101 -0
  60. data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
  61. data/app/services/spree/compare_line_items.rb +4 -2
  62. data/app/sorters/spree/base_sorter.rb +35 -0
  63. data/app/sorters/spree/orders/sort.rb +1 -37
  64. data/app/sorters/spree/products/sort.rb +9 -32
  65. data/app/validators/email_validator.rb +1 -1
  66. data/app/views/spree/errors/forbidden.html.erb +0 -0
  67. data/app/views/spree/errors/unauthorized.html.erb +0 -0
  68. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +13 -2
  69. data/app/views/spree/shared/_purchased_items_table.html.erb +15 -6
  70. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +2 -2
  71. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +2 -2
  72. data/config/initializers/inflections.rb +3 -0
  73. data/config/initializers/rails61_fixes.rb +3 -0
  74. data/config/locales/en.yml +31 -60
  75. data/config/routes.rb +2 -1
  76. data/db/default/spree/stores.rb +1 -0
  77. data/db/default/spree/zones.rb +4 -1
  78. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +1 -1
  79. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +1 -0
  80. data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +6 -2
  81. data/db/migrate/20201127084048_add_default_country_kind_to_spree_zones.rb +5 -0
  82. data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +5 -0
  83. data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +10 -0
  84. data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +15 -0
  85. data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +5 -0
  86. data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +5 -0
  87. data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +11 -0
  88. data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +22 -0
  89. data/lib/generators/spree/install/install_generator.rb +9 -6
  90. data/lib/spree/core.rb +2 -1
  91. data/lib/spree/core/controller_helpers/auth.rb +3 -1
  92. data/lib/spree/core/controller_helpers/common.rb +6 -8
  93. data/lib/spree/core/controller_helpers/currency.rb +54 -0
  94. data/lib/spree/core/controller_helpers/locale.rb +58 -0
  95. data/lib/spree/core/controller_helpers/search.rb +1 -1
  96. data/lib/spree/core/controller_helpers/store.rb +4 -16
  97. data/lib/spree/core/product_filters.rb +3 -3
  98. data/lib/spree/core/version.rb +3 -1
  99. data/lib/spree/i18n.rb +17 -19
  100. data/lib/spree/permitted_attributes.rb +2 -2
  101. data/lib/spree/service_module.rb +8 -4
  102. data/lib/spree/testing_support/capybara_config.rb +1 -1
  103. data/lib/spree/testing_support/common_rake.rb +1 -1
  104. data/lib/spree/testing_support/controller_requests.rb +10 -10
  105. data/lib/spree/testing_support/factories/shipment_factory.rb +7 -9
  106. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
  107. data/lib/spree/testing_support/factories/store_factory.rb +1 -0
  108. data/lib/spree/testing_support/factories/zone_factory.rb +16 -13
  109. data/lib/spree/testing_support/flatpickr_capybara.rb +101 -0
  110. data/lib/spree/testing_support/locale_helpers.rb +78 -0
  111. data/lib/spree/testing_support/next_instance_of.rb +38 -0
  112. data/lib/spree/testing_support/order_walkthrough.rb +8 -3
  113. data/lib/spree/testing_support/rspec_retry_config.rb +10 -0
  114. data/spree_core.gemspec +5 -4
  115. metadata +71 -26
  116. data/lib/generators/spree/install/templates/config/initializers/spree_storefront.rb +0 -1
  117. data/lib/generators/spree/install/templates/config/spree_storefront.yml +0 -67
  118. data/lib/spree/core/controller_helpers/currency_helpers.rb +0 -15
  119. data/lib/spree/i18n/base.rb +0 -17
  120. data/lib/spree/i18n/initializer.rb +0 -1
@@ -1,7 +1,7 @@
1
1
  class EmailValidator < ActiveModel::EachValidator
2
2
  def validate_each(record, attribute, value)
3
3
  unless value =~ /\A[^@\s]+@[^@\s]+\z/
4
- record.errors.add(attribute, :invalid, { value: value }.merge!(options))
4
+ record.errors.add(attribute, :invalid, **{ value: value }.merge!(options))
5
5
  end
6
6
  end
7
7
  end
File without changes
File without changes
@@ -249,11 +249,9 @@
249
249
  color: #51545E;
250
250
  font-size: 15px;
251
251
  line-height: 18px;
252
- width: 62%;
253
252
  }
254
253
 
255
254
  .purchase_image {
256
- width: 18%;
257
255
  padding: 5px;
258
256
  }
259
257
 
@@ -289,10 +287,20 @@
289
287
  color: #333333;
290
288
  }
291
289
 
290
+ .purchase_total--name {
291
+ margin: 0;
292
+ text-align: right;
293
+ color: #333333;
294
+ }
295
+
292
296
  .purchase_total--label {
293
297
  padding: 0 15px 0 0;
294
298
  }
295
299
 
300
+ .purchase_total-col {
301
+ vertical-align: bottom;
302
+ }
303
+
296
304
  body {
297
305
  background-color: #F2F4F6;
298
306
  color: #51545E;
@@ -402,6 +410,9 @@
402
410
  .email-footer {
403
411
  width: 100% !important;
404
412
  }
413
+ .content-cell {
414
+ padding: 40px 15px !important;
415
+ }
405
416
  }
406
417
 
407
418
  @media (prefers-color-scheme: dark) {
@@ -8,10 +8,13 @@
8
8
  <td></td>
9
9
  <td>
10
10
  <p class="f-fallback purchase_total purchase_total--label">
11
- <%= Spree.t(:promotion) %> <%= label %>:
11
+ <%= Spree.t(:promotion) %>:
12
+ </p>
13
+ <p class="f-fallback purchase_total--name purchase_total--label">
14
+ <%= label %>
12
15
  </p>
13
16
  </td>
14
- <td>
17
+ <td class="purchase_total-col">
15
18
  <p class="f-fallback purchase_total">
16
19
  <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
17
20
  </p>
@@ -25,10 +28,13 @@
25
28
  <td></td>
26
29
  <td>
27
30
  <p class="f-fallback purchase_total purchase_total--label">
28
- <%= Spree.t(:shipping) %> <%= name %>:
31
+ <%= Spree.t(:shipping) %>:
32
+ </p>
33
+ <p class="f-fallback purchase_total--name purchase_total--label">
34
+ <%= name %>
29
35
  </p>
30
36
  </td>
31
- <td>
37
+ <td class="purchase_total-col">
32
38
  <p class="f-fallback purchase_total">
33
39
  <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency) %>
34
40
  </p>
@@ -41,10 +47,13 @@
41
47
  <td></td>
42
48
  <td>
43
49
  <p class="f-fallback purchase_total purchase_total--label">
44
- <%= Spree.t(:tax) %> <%= label %>:
50
+ <%= Spree.t(:tax) %>:
51
+ </p>
52
+ <p class="f-fallback purchase_total--name purchase_total--label">
53
+ <%= label %>
45
54
  </p>
46
55
  </td>
47
- <td>
56
+ <td class="purchase_total-col">
48
57
  <p class="f-fallback purchase_total">
49
58
  <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
50
59
  </p>
@@ -5,9 +5,9 @@
5
5
  <%= raw(adjustment.label) %>:
6
6
  </p>
7
7
  </td>
8
- <td>
8
+ <td class="purchase_total-col">
9
9
  <p class="f-fallback purchase_total">
10
10
  <%= Spree::Money.new(adjustment.amount, currency: order.currency) %>
11
11
  </p>
12
12
  </td>
13
- </tr>
13
+ </tr>
@@ -18,9 +18,9 @@
18
18
  </strong>
19
19
  <p class="purchase_item--additional"><%= raw(line_item.variant.options_text) -%></p>
20
20
  </td>
21
- <td class="align-right">
21
+ <td class="align-right" width="30%">
22
22
  <span class="f-fallback purchase_item_price">
23
- <%= line_item.quantity %> x <%= line_item.single_money %>
23
+ <%= line_item.quantity %> x <%= line_item.single_money %><br>
24
24
  <%= line_item.display_amount %>
25
25
  </span>
26
26
  </td>
@@ -0,0 +1,3 @@
1
+ ActiveSupport::Inflector.inflections(:en) do |inflect|
2
+ inflect.acronym 'RMA'
3
+ end
@@ -0,0 +1,3 @@
1
+ if Rails::VERSION::STRING >= '6.1'
2
+ ActiveRecord::Base.has_many_inversing = false
3
+ end
@@ -6,7 +6,7 @@ en:
6
6
  attributes:
7
7
  desired_shipment:
8
8
  can_not_transfer_within_same_shipment: can not be same as current shipment
9
- not_enough_stock_at_desired_location: not enough stock in desired stock location
9
+ has_not_enough_stock_at_desired_location: has not enough stock in desired stock location
10
10
  current_shipment:
11
11
  has_already_been_shipped: has already been shipped
12
12
  can_not_have_backordered_inventory_units: has backordered inventory units
@@ -142,7 +142,8 @@ en:
142
142
  url: Site URL
143
143
  meta_description: Meta Description
144
144
  meta_keywords: Meta Keywords
145
- seo_title: Seo Title
145
+ seo_robots: SEO Robots
146
+ seo_title: SEO Title
146
147
  name: Site Name
147
148
  mail_from_address: Mail From Address
148
149
  spree/store_credit:
@@ -662,7 +663,6 @@ en:
662
663
  jackets_and_coats: JACKET & COASTS
663
664
  new_collection: NEW COLLECTION
664
665
  special_offers: SPECIAL OFFERS
665
- summer_2019: SUMMER 2019
666
666
  channel: Channel
667
667
  charged: Charged
668
668
  checkout: Checkout
@@ -695,7 +695,6 @@ en:
695
695
  confirm: Confirm
696
696
  confirm_delete: Confirm Deletion
697
697
  confirm_password: Password Confirmation
698
- contact_email: Contact email
699
698
  contact_phone: Contact phone
700
699
  contact_us: Contact us
701
700
  continue: Continue
@@ -756,42 +755,14 @@ en:
756
755
  new_order_notifications_email: New Order Notifications Email
757
756
  cut: Cut
758
757
  cvv: CVV
758
+ no_cc_type: N/A
759
759
  cvv_response: CVV Response
760
760
  date: Date
761
761
  date_completed: Date Completed
762
762
  date_picker:
763
- am: 'AM'
764
- first_day: 0
765
- format: ! '%Y/%m/%d'
766
- hourAriaLabel: 'Hour'
767
- js_format: Y/m/d
768
- js_date_time: Y/m/d - H:i
769
- minuteAriaLabel: 'Minute'
770
- pm: 'PM'
771
- rangeSeparator: ' to '
772
- scrollTitle: 'Scroll to increment'
773
- toggleTitle: 'Click to toggle'
774
- weekAbbreviation: 'Wk'
775
- yearAriaLabel: 'Year'
776
- sun: 'Sun'
777
- mon: 'Mon'
778
- tue: 'Tue'
779
- wed: 'Wed'
780
- thu: 'Thu'
781
- fri: 'Fri'
782
- sat: 'Sat'
783
- lh_jan: 'January'
784
- lh_feb: 'February'
785
- lh_mar: 'March'
786
- lh_apr: 'April'
787
- lh_may: 'May'
788
- lh_jun: 'June'
789
- lh_jul: 'July'
790
- lh_aug: 'August'
791
- lh_sep: 'September'
792
- lh_oct: 'October'
793
- lh_nov: 'November'
794
- lh_dec: 'December'
763
+ # FlatPickr human friendly formatting
764
+ fpr_human_friendly_date_format: M j, Y
765
+ fpr_human_friendly_date_time_format: M j, Y at H:i
795
766
  date_range: Date Range
796
767
  default: Default
797
768
  default_country_cannot_be_deleted: Default country cannot be deleted
@@ -850,6 +821,7 @@ en:
850
821
  blank: can't be blank
851
822
  could_not_create_taxon: Could not create taxon
852
823
  no_shipping_methods_available: No shipping methods available for selected location, please change your address and try again.
824
+ cannot_remove_icon: Cannot remove image
853
825
  services:
854
826
  get_shipping_rates:
855
827
  no_shipping_address: To generate Shipping Rates Order needs to have a Shipping Address
@@ -900,7 +872,7 @@ en:
900
872
  flat_rate_per_order: Flat Rate
901
873
  flexible_rate: Flexible Rate
902
874
  follow_us: Follow us
903
- footer_info: Footer info
875
+ footer: Footer
904
876
  forgot_password: Forgot password?
905
877
  free: Free
906
878
  free_shipping: Free Shipping
@@ -925,24 +897,6 @@ en:
925
897
  hide_from_subcategories_nav: Hide from subcategories navigation
926
898
  home: Home
927
899
  home_page: homepage
928
- homepage:
929
- bestsellers: BESTSELLERS
930
- fashion_trends: FASHION TRENDS
931
- fashion_trends_note: Want to rock this season’s hottest trend in style? These are the top fashion from Summer 2020 Fashion Weeks that are coming our way this season.
932
- men: MEN
933
- new: NEW
934
- new_collection: NEW COLLECTION
935
- read_more: READ MORE
936
- shoes: SHOES
937
- shop_now: SHOP NOW
938
- sportswear: SPORTSWEAR
939
- streetstyle: STREETSTYLE
940
- summer_2020: Summer 2020
941
- summer_collection: Summer Collection
942
- summer_sale: SUMMER SALE
943
- trending: TRENDING
944
- up_to_60: UP TO 60%
945
- women: WOMEN
946
900
  help_center: Help Center
947
901
  i18n:
948
902
  available_locales: Available Locales
@@ -958,8 +912,6 @@ en:
958
912
  supported_locales: Supported Locales
959
913
  this_file_language: English (US)
960
914
  translations: Translations
961
- checkout_zone_warning_html: "Selecting a Zone will limit customers on Checkout to Addresses in Countries in that Zone. <br />
962
- Please see documentation: <a href='https://guides.spreecommerce.org/user/configuration/configuring_geography.html#zones' target='_blank' class='alert-link'>https://guides.spreecommerce.org/user/configuration/configuring_geography.html#zones</a>"
963
915
  icon: Icon
964
916
  image: Image
965
917
  images: Images
@@ -1131,6 +1083,7 @@ en:
1131
1083
  no_available_date_set: No available date set
1132
1084
  no_country: No country set
1133
1085
  no_payment_found: No payment found
1086
+ no_payment_provider_settings_message: This payment provider has no custom settings available
1134
1087
  no_pending_payments: No pending payments
1135
1088
  no_product_available:
1136
1089
  for_this_quantity: Sorry, it looks like some products are not available in selected quantity.
@@ -1153,6 +1106,7 @@ en:
1153
1106
  not_found: ! '%{resource} is not found'
1154
1107
  note: Note
1155
1108
  notice_messages:
1109
+ icon_removed: Image has been successfully removed
1156
1110
  prices_saved: Prices successfully saved
1157
1111
  product_cloned: Product has been cloned
1158
1112
  product_deleted: Product has been deleted
@@ -1253,6 +1207,7 @@ en:
1253
1207
  payment_processing_failed: Payment could not be processed, please check the details you entered
1254
1208
  payment_processor_choose_banner_text: If you need help choosing a payment processor, please visit
1255
1209
  payment_processor_choose_link: our payments page
1210
+ payment_provider_settings: Payment Provider Settings
1256
1211
  payment_state: Payment State
1257
1212
  payment_states:
1258
1213
  balance_due: balance due
@@ -1437,6 +1392,7 @@ en:
1437
1392
  rejected: Rejected
1438
1393
  remember_me: Remember me
1439
1394
  remove: Remove
1395
+ remove_image: Remove Image
1440
1396
  rename: Rename
1441
1397
  report: Report
1442
1398
  reports: Reports
@@ -1512,12 +1468,14 @@ en:
1512
1468
  select_a_return_authorization_reason: Select a reason for the return authorization
1513
1469
  select_a_stock_location: Select a stock location
1514
1470
  select_a_store_credit_reason: Select a reason for the store credit
1471
+ select_an_option: Select an option
1515
1472
  select_stock: Select stock
1516
1473
  selected_quantity_not_available: ! 'selected of %{item} is not available.'
1517
- seo: SEO
1518
1474
  send_copy_of_all_mails_to: Send Copy of All Mails To
1519
1475
  send_mails_as: Send Mails As
1520
- seo_title: SEO title
1476
+ seo: SEO
1477
+ seo_robots: SEO Robots
1478
+ seo_title: SEO Title
1521
1479
  server: Server
1522
1480
  server_error: The server returned an error
1523
1481
  settings: Settings
@@ -1577,7 +1535,7 @@ en:
1577
1535
  show_only_considered_risky: Only show risky orders
1578
1536
  show_property: Show Property
1579
1537
  show_rate_in_label: Show rate in label
1580
- show_store_currency_selector:
1538
+ show_store_selector:
1581
1539
  short: Show Store selector
1582
1540
  long: Display the Store selector in the main nav bar of Storefront and allow users to change Store and Currency
1583
1541
  sign_up: Sign Up
@@ -1653,6 +1611,18 @@ en:
1653
1611
  unable_to_create: Unable to create store.
1654
1612
  unable_to_update: Unable to update store.
1655
1613
  unable_to_delete: Unable to delete store.
1614
+ store_form:
1615
+ code_help: "Store unique identifier, which is an abbreviated version of the store’s name (used as the layout directory name, and also helpful for separating templates by store)"
1616
+ checkout_zone_help: "Selecting zone will limit to which Countries or States products are shipped.
1617
+ For more information <a href='https://guides.spreecommerce.org/user/configuration/configuring_geography.html#zones' target='_blank' class='alert-link'>please see documentation</a>"
1618
+ locales_help: "Install <a href='https://github.com/spree-contrib/spree_i18n target='_blank' class='alert-link'>Spree I18n extension</a> to add more locales"
1619
+ social_help: "If you want to link to your social accounts in the footer part of your website please fill below fields"
1620
+ default_country_help: "This is the Country that will be pre-selected on the Checkout Address form"
1621
+ footer_help: "This content is visible in the footer section of your Store"
1622
+ mail_from_address_help: "This is the email which will be the sender of all your Store emails (Order Confirmation, Shipment notification etc)"
1623
+ customer_support_email_help: "This email is visible to your Store visitors in the Footer section"
1624
+ new_order_notifications_email_help: "If you want to receive an email notification every time someone places an Order please provide an email address for that notification to be sent to"
1625
+ seo_robots: "Please check <a href='https://developers.google.com/search/reference/robots_meta_tag' target='_blank'>this page for more help</a>"
1656
1626
  store_set_default_button: Set as default
1657
1627
  stores: Stores
1658
1628
  store_credit_name: Store Credit
@@ -1702,6 +1672,7 @@ en:
1702
1672
  summary: Summary
1703
1673
  supported_currencies: Supported Currencies
1704
1674
  supported_currencies_long: A comma separated list of supported currencies
1675
+ supported_locales: Supported Locales
1705
1676
  tax: Tax
1706
1677
  tax_included: "Tax (incl.)"
1707
1678
  tax_categories: Tax Categories
data/config/routes.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  Spree::Core::Engine.add_routes do
2
- get '/forbidden', to: 'home#forbidden', as: :forbidden
2
+ get '/forbidden', to: 'errors#forbidden', as: :forbidden
3
+ get '/unauthorized', to: 'errors#unauthorized', as: :unauthorized
3
4
  end
4
5
 
5
6
  Spree::Core::Engine.draw_routes
@@ -11,6 +11,7 @@ else
11
11
  s.customer_support_email = 'support@example.com'
12
12
  s.default_currency = 'USD'
13
13
  s.default_country_id = Spree::Config[:default_country_id]
14
+ s.default_locale = I18n.locale
14
15
  s.seo_title = 'Spree Commerce Demo Shop'
15
16
  s.meta_description = 'This is the new Spree UX DEMO | OVERVIEW: http://bit.ly/new-spree-ux | DOCS: http://bit.ly/spree-ux-customization-docs | CONTACT: https://spreecommerce.org/contact/'
16
17
  s.facebook = 'spreecommerce'
@@ -1,13 +1,16 @@
1
1
  eu_vat = Spree::Zone.where(name: 'EU_VAT', description: 'Countries that make up the EU VAT zone.', kind: 'country').first_or_create!
2
+ uk_vat = Spree::Zone.where(name: 'UK_VAT', kind: 'country').first_or_create!
2
3
  north_america = Spree::Zone.where(name: 'North America', description: 'USA + Canada', kind: 'country').first_or_create!
3
4
  south_america = Spree::Zone.where(name: 'South America', description: 'South America', kind: 'country').first_or_create!
4
5
  middle_east = Spree::Zone.where(name: 'Middle East', description: 'Middle East', kind: 'country').first_or_create!
5
6
  asia = Spree::Zone.where(name: 'Asia', description: 'Asia', kind: 'country').first_or_create!
6
7
 
7
- %w(PL FI PT RO DE FR SK HU SI IE AT ES IT BE SE LV BG GB LT CY LU MT DK NL EE HR CZ GR).each do |name|
8
+ %w(PL FI PT RO DE FR SK HU SI IE AT ES IT BE SE LV BG LT CY LU MT DK NL EE HR CZ GR).each do |name|
8
9
  eu_vat.zone_members.where(zoneable: Spree::Country.find_by!(iso: name)).first_or_create!
9
10
  end
10
11
 
12
+ uk_vat.zone_members.where(zoneable: Spree::Country.find_by(iso: 'GB')).first_or_create!
13
+
11
14
  %w(US CA).each do |name|
12
15
  north_america.zone_members.where(zoneable: Spree::Country.find_by!(iso: name)).first_or_create!
13
16
  end
@@ -1,4 +1,4 @@
1
- class AddStockLocationToRma < ActiveRecord::Migration[4.2]
1
+ class AddStockLocationToRMA < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :spree_return_authorizations, :stock_location_id, :integer
4
4
  end
@@ -2,6 +2,7 @@ class AddSupportedCurrenciesToStore < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  unless column_exists?(:spree_stores, :supported_currencies)
4
4
  add_column :spree_stores, :supported_currencies, :string
5
+ Spree::Store.reset_column_information
5
6
  Spree::Store.all.each do |store|
6
7
  store.update_attribute(:supported_currencies, store.default_currency)
7
8
  end
@@ -1,6 +1,10 @@
1
1
  class AddFilterableColumnToSpreeOptionTypes < ActiveRecord::Migration[6.0]
2
2
  def change
3
- add_column :spree_option_types, :filterable, :boolean, default: true, null: false
4
- add_index :spree_option_types, :filterable
3
+ unless column_exists?(:spree_option_types, :filterable)
4
+ add_column :spree_option_types, :filterable, :boolean, default: true, null: false
5
+ end
6
+ unless index_exists?(:spree_option_types, :filterable)
7
+ add_index :spree_option_types, :filterable
8
+ end
5
9
  end
6
10
  end
@@ -0,0 +1,5 @@
1
+ class AddDefaultCountryKindToSpreeZones < ActiveRecord::Migration[6.0]
2
+ def change
3
+ change_column_default(:spree_zones, :kind, :state)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveContactEmailFromSpreeStores < ActiveRecord::Migration[6.0]
2
+ def change
3
+ remove_column :spree_stores, :contact_email
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSpreePaymentMethodsStores < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :spree_payment_methods_stores, id: false do |t|
4
+ t.belongs_to :payment_method
5
+ t.belongs_to :store
6
+ end
7
+
8
+ add_index :spree_payment_methods_stores, [:payment_method_id, :store_id], unique: true, name: 'payment_mentod_id_store_id_unique_index'
9
+ end
10
+ end