spree_core 4.2.0.beta → 4.2.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/base_controller.rb +2 -3
  3. data/app/controllers/spree/errors_controller.rb +11 -0
  4. data/app/finders/spree/addresses/find.rb +6 -0
  5. data/app/finders/spree/base_finder.rb +14 -0
  6. data/app/finders/spree/countries/find.rb +11 -3
  7. data/app/finders/spree/credit_cards/find.rb +2 -2
  8. data/app/finders/spree/orders/find_current.rb +2 -2
  9. data/app/finders/spree/products/find.rb +12 -1
  10. data/app/helpers/spree/base_helper.rb +38 -18
  11. data/app/helpers/spree/locale_helper.rb +19 -0
  12. data/app/helpers/spree/mail_helper.rb +12 -7
  13. data/app/helpers/spree/products_helper.rb +39 -13
  14. data/app/mailers/spree/base_mailer.rb +5 -5
  15. data/app/mailers/spree/order_mailer.rb +3 -3
  16. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  17. data/app/mailers/spree/shipment_mailer.rb +1 -1
  18. data/app/models/concerns/spree/default_price.rb +1 -5
  19. data/app/models/concerns/spree/user_methods.rb +2 -2
  20. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  21. data/app/models/spree/ability.rb +45 -34
  22. data/app/models/spree/address.rb +17 -1
  23. data/app/models/spree/adjustment.rb +1 -0
  24. data/app/models/spree/app_configuration.rb +2 -3
  25. data/app/models/spree/app_dependencies.rb +10 -2
  26. data/app/models/spree/base.rb +5 -0
  27. data/app/models/spree/credit_card.rb +5 -0
  28. data/app/models/spree/fulfilment_changer.rb +58 -16
  29. data/app/models/spree/image.rb +14 -14
  30. data/app/models/spree/inventory_unit.rb +2 -7
  31. data/app/models/spree/line_item.rb +9 -16
  32. data/app/models/spree/log_entry.rb +1 -1
  33. data/app/models/spree/option_type.rb +2 -0
  34. data/app/models/spree/order.rb +12 -6
  35. data/app/models/spree/order/address_book.rb +7 -20
  36. data/app/models/spree/order/payments.rb +10 -2
  37. data/app/models/spree/payment.rb +18 -4
  38. data/app/models/spree/payment/processing.rb +2 -2
  39. data/app/models/spree/payment_method.rb +3 -3
  40. data/app/models/spree/preferences/store.rb +1 -1
  41. data/app/models/spree/price.rb +1 -6
  42. data/app/models/spree/product.rb +24 -17
  43. data/app/models/spree/promotion.rb +10 -15
  44. data/app/models/spree/promotion/rules/option_value.rb +1 -1
  45. data/app/models/spree/promotion/rules/product.rb +2 -1
  46. data/app/models/spree/promotion/rules/user.rb +2 -1
  47. data/app/models/spree/promotion_handler/coupon.rb +1 -2
  48. data/app/models/spree/promotion_handler/promotion_duplicator.rb +9 -3
  49. data/app/models/spree/refund.rb +2 -2
  50. data/app/models/spree/return_item/eligibility_validator/default.rb +0 -2
  51. data/app/models/spree/return_item/eligibility_validator/{r_m_a_required.rb → rma_required.rb} +0 -0
  52. data/app/models/spree/shipment.rb +1 -1
  53. data/app/models/spree/shipping_method.rb +1 -5
  54. data/app/models/spree/shipping_rate.rb +2 -11
  55. data/app/models/spree/stock/availability_validator.rb +3 -4
  56. data/app/models/spree/stock_item.rb +1 -5
  57. data/app/models/spree/store.rb +45 -1
  58. data/app/models/spree/store_credit.rb +1 -1
  59. data/app/models/spree/variant.rb +8 -15
  60. data/app/models/spree/zone.rb +17 -4
  61. data/app/presenters/spree/variant_presenter.rb +4 -6
  62. data/app/services/spree/account/addresses/create.rb +23 -0
  63. data/app/services/spree/account/addresses/helper.rb +37 -0
  64. data/app/services/spree/account/addresses/update.rb +23 -0
  65. data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
  66. data/app/services/spree/checkout/update.rb +13 -2
  67. data/app/services/spree/compare_line_items.rb +4 -2
  68. data/app/sorters/spree/base_sorter.rb +35 -0
  69. data/app/sorters/spree/orders/sort.rb +1 -37
  70. data/app/sorters/spree/products/sort.rb +9 -32
  71. data/app/validators/email_validator.rb +1 -1
  72. data/app/views/spree/errors/forbidden.html.erb +0 -0
  73. data/app/views/spree/errors/unauthorized.html.erb +0 -0
  74. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -2
  75. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +1 -1
  76. data/config/initializers/inflections.rb +3 -0
  77. data/config/initializers/rails61_fixes.rb +3 -0
  78. data/config/locales/en.yml +42 -63
  79. data/config/routes.rb +2 -1
  80. data/db/default/spree/countries.rb +10 -4
  81. data/db/default/spree/states.rb +42 -5
  82. data/db/default/spree/stores.rb +18 -13
  83. data/db/default/spree/zones.rb +5 -2
  84. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +1 -1
  85. data/db/migrate/20200610113542_add_label_to_spree_addresses.rb +5 -0
  86. data/db/migrate/20201006110150_add_checkout_zone_field_to_store.rb +12 -0
  87. data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +6 -0
  88. data/db/migrate/20201013084504_add_seo_robots_to_spree_stores.rb +5 -0
  89. data/db/migrate/20201127084048_add_default_country_kind_to_spree_zones.rb +5 -0
  90. data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +5 -0
  91. data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +10 -0
  92. data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +15 -0
  93. data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +5 -0
  94. data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +5 -0
  95. data/lib/generators/spree/install/templates/config/spree_storefront.yml +9 -9
  96. data/lib/spree/core.rb +3 -1
  97. data/lib/spree/core/controller_helpers/auth.rb +3 -1
  98. data/lib/spree/core/controller_helpers/common.rb +6 -8
  99. data/lib/spree/core/controller_helpers/currency.rb +45 -0
  100. data/lib/spree/core/controller_helpers/locale.rb +57 -0
  101. data/lib/spree/core/controller_helpers/order.rb +9 -4
  102. data/lib/spree/core/controller_helpers/store.rb +4 -16
  103. data/lib/spree/core/importer/order.rb +9 -9
  104. data/lib/spree/core/product_filters.rb +3 -3
  105. data/lib/spree/core/version.rb +1 -1
  106. data/lib/spree/i18n.rb +7 -21
  107. data/lib/spree/permitted_attributes.rb +3 -3
  108. data/lib/spree/service_module.rb +6 -2
  109. data/lib/spree/testing_support/capybara_config.rb +1 -1
  110. data/lib/spree/testing_support/factories/promotion_factory.rb +29 -17
  111. data/lib/spree/testing_support/factories/shipment_factory.rb +7 -9
  112. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
  113. data/lib/spree/testing_support/factories/zone_factory.rb +16 -13
  114. data/lib/spree/testing_support/i18n.rb +1 -1
  115. data/lib/spree/testing_support/order_walkthrough.rb +8 -3
  116. data/lib/spree/testing_support/rspec_retry_config.rb +10 -0
  117. data/spree_core.gemspec +7 -5
  118. metadata +90 -28
  119. data/lib/spree/core/controller_helpers/currency_helpers.rb +0 -15
  120. data/lib/spree/i18n/base.rb +0 -17
  121. data/lib/spree/i18n/initializer.rb +0 -1
@@ -0,0 +1,23 @@
1
+ module Spree
2
+ module Account
3
+ module Addresses
4
+ class Update
5
+ prepend Spree::ServiceModule::Base
6
+ include Spree::Account::Addresses::Helper
7
+
8
+ attr_accessor :country
9
+
10
+ def call(address:, address_params:)
11
+ address_params[:country_id] ||= address.country_id
12
+ fill_country_and_state_ids(address_params)
13
+
14
+ if address.update(address_params)
15
+ success(address)
16
+ else
17
+ failure(address)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -24,7 +24,7 @@ module Spree
24
24
  if country_iso.present?
25
25
  ::Spree::Country.by_iso(country_iso)&.id
26
26
  else
27
- ::Spree::Country.default.id
27
+ Spree::Config[:default_country_id]
28
28
  end
29
29
  end
30
30
 
@@ -4,8 +4,12 @@ module Spree
4
4
  prepend Spree::ServiceModule::Base
5
5
 
6
6
  def call(order:, params:, permitted_attributes:, request_env:)
7
- params = replace_country_iso_with_id(params, 'ship') if address_with_country_iso_present?(params, 'ship')
8
- params = replace_country_iso_with_id(params, 'bill') if address_with_country_iso_present?(params, 'bill')
7
+ ship_changed = address_with_country_iso_present?(params, 'ship')
8
+ bill_changed = address_with_country_iso_present?(params, 'bill')
9
+ params = replace_country_iso_with_id(params, 'ship') if ship_changed
10
+ params = replace_country_iso_with_id(params, 'bill') if bill_changed
11
+ order.state = 'address' if (ship_changed || bill_changed) && order.has_checkout_step?('address')
12
+ order.state = 'delivery' if selected_shipping_rate_present?(params) && order.has_checkout_step?('delivery')
9
13
  return success(order) if order.update_from_params(params, permitted_attributes, request_env)
10
14
 
11
15
  failure(order)
@@ -20,6 +24,13 @@ module Spree
20
24
  true
21
25
  end
22
26
 
27
+ def selected_shipping_rate_present?(params)
28
+ shipments_attributes = params.dig(:order, :shipments_attributes)
29
+ return false unless shipments_attributes
30
+
31
+ shipments_attributes.any? { |s| s.dig(:selected_shipping_rate_id) }
32
+ end
33
+
23
34
  def replace_country_iso_with_id(params, address_kind = 'ship')
24
35
  country_id = Spree::Country.by_iso(params[:order]["#{address_kind}_address_attributes"].fetch(:country_iso))&.id
25
36
 
@@ -1,9 +1,11 @@
1
1
  # This class should be refactored
2
2
  module Spree
3
3
  class CompareLineItems
4
- prepend Spree::ServiceModule:: Base
4
+ prepend Spree::ServiceModule::Base
5
+
6
+ def call(order:, line_item:, options: {}, comparison_hooks: nil)
7
+ comparison_hooks ||= Rails.application.config.spree.line_item_comparison_hooks
5
8
 
6
- def call(order:, line_item:, options: {}, comparison_hooks: Rails.application.config.spree.line_item_comparison_hooks)
7
9
  legacy_part = comparison_hooks.all? do |hook|
8
10
  order.send(hook, line_item, options)
9
11
  end
@@ -0,0 +1,35 @@
1
+ module Spree
2
+ class BaseSorter
3
+ def initialize(scope, params = {}, allowed_sort_attributes = [])
4
+ @scope = scope
5
+ @sort = params[:sort]
6
+ @allowed_sort_attributes = allowed_sort_attributes
7
+ end
8
+
9
+ def call
10
+ by_param_attribute(scope)
11
+ end
12
+
13
+ protected
14
+
15
+ attr_reader :scope, :collection, :sort, :allowed_sort_attributes
16
+
17
+ def by_param_attribute(scope)
18
+ return scope if sort_field.blank? || !allowed_sort_attributes.include?(sort_field.to_sym)
19
+
20
+ scope.order("#{sort_field}": order_direction)
21
+ end
22
+
23
+ def desc_order
24
+ @desc_order ||= String(sort)[0] == '-'
25
+ end
26
+
27
+ def sort_field
28
+ @sort_field ||= desc_order ? sort[1..-1] : sort
29
+ end
30
+
31
+ def order_direction
32
+ desc_order ? :desc : :asc
33
+ end
34
+ end
35
+ end
@@ -1,42 +1,6 @@
1
1
  module Spree
2
2
  module Orders
3
- class Sort
4
- attr_reader :scope, :sort
5
-
6
- def initialize(scope, params)
7
- @scope = scope
8
- @sort = params[:sort]
9
- end
10
-
11
- def call
12
- orders = completed_at(scope)
13
-
14
- orders
15
- end
16
-
17
- private
18
-
19
- def desc_order
20
- @desc_order ||= String(sort)[0] == '-'
21
- end
22
-
23
- def sort_field
24
- @sort_field ||= desc_order ? sort[1..-1] : sort
25
- end
26
-
27
- def order_direction
28
- desc_order ? :asc : :desc
29
- end
30
-
31
- def completed_at?
32
- sort_field.eql?('completed_at')
33
- end
34
-
35
- def completed_at(orders)
36
- return orders unless completed_at?
37
-
38
- orders.order(completed_at: order_direction)
39
- end
3
+ class Sort < ::Spree::BaseSorter
40
4
  end
41
5
  end
42
6
  end
@@ -1,53 +1,30 @@
1
1
  module Spree
2
2
  module Products
3
- class Sort
4
- def initialize(scope, params, current_currency)
5
- @scope = scope
6
- @sort = params[:sort]
3
+ class Sort < ::Spree::BaseSorter
4
+ def initialize(scope, current_currency, params = {}, allowed_sort_attributes = [])
5
+ super(scope, params, allowed_sort_attributes)
7
6
  @currency = params[:currency] || current_currency
8
7
  end
9
8
 
10
9
  def call
11
- products = updated_at(scope)
12
- products = price(products)
10
+ products = by_param_attribute(scope)
11
+ products = by_price(products)
13
12
 
14
13
  products.distinct
15
14
  end
16
15
 
17
16
  private
18
17
 
19
- attr_reader :sort, :scope, :currency
20
-
21
- def desc_order
22
- @desc_order ||= String(sort)[0] == '-'
23
- end
24
-
25
- def sort_field
26
- @sort_field ||= desc_order ? sort[1..-1] : sort
27
- end
28
-
29
- def updated_at?
30
- sort_field == 'updated_at'
31
- end
18
+ attr_reader :sort, :scope, :currency, :allowed_sort_attributes
32
19
 
33
20
  def price?
34
21
  sort_field == 'price'
35
22
  end
36
23
 
37
- def order_direction
38
- desc_order ? :desc : :asc
39
- end
40
-
41
- def updated_at(products)
42
- return products unless updated_at?
43
-
44
- products.order(updated_at: order_direction)
45
- end
46
-
47
- def price(products)
48
- return products unless price?
24
+ def by_price(scope)
25
+ return scope unless price?
49
26
 
50
- products.joins(master: :prices).
27
+ scope.joins(master: :prices).
51
28
  select("#{Spree::Product.table_name}.*, #{Spree::Price.table_name}.amount").
52
29
  distinct.
53
30
  where(spree_prices: { currency: currency }).
@@ -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
 
@@ -20,7 +20,7 @@
20
20
  </td>
21
21
  <td class="align-right">
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,13 +6,14 @@ 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
13
13
  activerecord:
14
14
  attributes:
15
15
  spree/address:
16
+ label: Address name
16
17
  address1: Address
17
18
  address2: Address (contd.)
18
19
  city: City
@@ -51,6 +52,7 @@ en:
51
52
  spree/option_type:
52
53
  name: Name
53
54
  presentation: Presentation
55
+ filterable: Filterable
54
56
  spree/order:
55
57
  checkout_complete: Checkout Complete
56
58
  completed_at: Completed At
@@ -140,7 +142,8 @@ en:
140
142
  url: Site URL
141
143
  meta_description: Meta Description
142
144
  meta_keywords: Meta Keywords
143
- seo_title: Seo Title
145
+ seo_robots: SEO Robots
146
+ seo_title: SEO Title
144
147
  name: Site Name
145
148
  mail_from_address: Mail From Address
146
149
  spree/store_credit:
@@ -502,10 +505,14 @@ en:
502
505
  address_book:
503
506
  other_address: "Other address"
504
507
  add_new_shipping_address: "Add new address"
505
- new_shipping_address: "New Address"
506
- edit_shipping_address: "Edit Address"
508
+ label: Address Name
509
+ address_name_label: Address Name
510
+ address_name_placeholder: Give this address a unique name (Work, Home, etc.)
511
+ new_address: "New Address"
512
+ edit_address: "Edit Address"
513
+ remove_address: Remove Address
507
514
  no_shipping_addresses_on_file: "No addresses on file"
508
- shipping_addresses: "Addresses"
515
+ addresses: "Addresses"
509
516
  successfully_created: "Address has been successfully created."
510
517
  successfully_removed: "Address has been successfully removed."
511
518
  successfully_saved: "Saved successfully"
@@ -569,9 +576,6 @@ en:
569
576
  agree_to_privacy_policy: Agree to Privacy Policy
570
577
  agree_to_terms_of_service: Agree to Terms of Service
571
578
  all: All
572
- allow_currency_change:
573
- short: Allow Currency Change
574
- long: Allow users to change their currency via the currency picker.
575
579
  all_adjustments_closed: All adjustments successfully closed!
576
580
  all_adjustments_opened: All adjustments successfully opened!
577
581
  all_departments: All departments
@@ -659,7 +663,6 @@ en:
659
663
  jackets_and_coats: JACKET & COASTS
660
664
  new_collection: NEW COLLECTION
661
665
  special_offers: SPECIAL OFFERS
662
- summer_2019: SUMMER 2019
663
666
  channel: Channel
664
667
  charged: Charged
665
668
  checkout: Checkout
@@ -692,7 +695,6 @@ en:
692
695
  confirm: Confirm
693
696
  confirm_delete: Confirm Deletion
694
697
  confirm_password: Password Confirmation
695
- contact_email: Contact email
696
698
  contact_phone: Contact phone
697
699
  contact_us: Contact us
698
700
  continue: Continue
@@ -757,38 +759,10 @@ en:
757
759
  date: Date
758
760
  date_completed: Date Completed
759
761
  date_picker:
760
- am: 'AM'
761
762
  first_day: 0
762
763
  format: ! '%Y/%m/%d'
763
- hourAriaLabel: 'Hour'
764
764
  js_format: Y/m/d
765
765
  js_date_time: Y/m/d - H:i
766
- minuteAriaLabel: 'Minute'
767
- pm: 'PM'
768
- rangeSeparator: ' to '
769
- scrollTitle: 'Scroll to increment'
770
- toggleTitle: 'Click to toggle'
771
- weekAbbreviation: 'Wk'
772
- yearAriaLabel: 'Year'
773
- sun: 'Sun'
774
- mon: 'Mon'
775
- tue: 'Tue'
776
- wed: 'Wed'
777
- thu: 'Thu'
778
- fri: 'Fri'
779
- sat: 'Sat'
780
- lh_jan: 'January'
781
- lh_feb: 'February'
782
- lh_mar: 'March'
783
- lh_apr: 'April'
784
- lh_may: 'May'
785
- lh_jun: 'June'
786
- lh_jul: 'July'
787
- lh_aug: 'August'
788
- lh_sep: 'September'
789
- lh_oct: 'October'
790
- lh_nov: 'November'
791
- lh_dec: 'December'
792
766
  date_range: Date Range
793
767
  default: Default
794
768
  default_country_cannot_be_deleted: Default country cannot be deleted
@@ -847,6 +821,7 @@ en:
847
821
  blank: can't be blank
848
822
  could_not_create_taxon: Could not create taxon
849
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
850
825
  services:
851
826
  get_shipping_rates:
852
827
  no_shipping_address: To generate Shipping Rates Order needs to have a Shipping Address
@@ -884,6 +859,7 @@ en:
884
859
  filename: Filename
885
860
  fill_in_customer_info: Please fill in customer info
886
861
  filter: Filter
862
+ filterable: Filterable
887
863
  filter_results: Filter Results
888
864
  finalize: Finalize
889
865
  find_a_taxon: Find a Taxon
@@ -896,7 +872,7 @@ en:
896
872
  flat_rate_per_order: Flat Rate
897
873
  flexible_rate: Flexible Rate
898
874
  follow_us: Follow us
899
- footer_info: Footer info
875
+ footer: Footer
900
876
  forgot_password: Forgot password?
901
877
  free: Free
902
878
  free_shipping: Free Shipping
@@ -921,30 +897,13 @@ en:
921
897
  hide_from_subcategories_nav: Hide from subcategories navigation
922
898
  home: Home
923
899
  home_page: homepage
924
- homepage:
925
- bestsellers: BESTSELLERS
926
- fashion_trends: FASHION TRENDS
927
- 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.
928
- men: MEN
929
- new: NEW
930
- new_collection: NEW COLLECTION
931
- read_more: READ MORE
932
- shoes: SHOES
933
- shop_now: SHOP NOW
934
- sportswear: SPORTSWEAR
935
- streetstyle: STREETSTYLE
936
- summer_2020: Summer 2020
937
- summer_collection: Summer Collection
938
- summer_sale: SUMMER SALE
939
- trending: TRENDING
940
- up_to_60: UP TO 60%
941
- women: WOMEN
942
900
  help_center: Help Center
943
901
  i18n:
944
902
  available_locales: Available Locales
945
903
  fields: Fields
946
904
  language: Language
947
905
  country: Country
906
+ default_country: Default Country
948
907
  localization_settings: Localization Settings
949
908
  only_incomplete: Only incomplete
950
909
  only_complete: Only complete
@@ -1036,6 +995,7 @@ en:
1036
995
  make_refund: Make refund
1037
996
  make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
1038
997
  mail_from_address: Mail from address
998
+ mailer_logo: Mailer logo (JPG or PNG images only)
1039
999
  manage_promotion_categories: Manage Promotion Categories
1040
1000
  manual_intervention_required: Manual intervention required
1041
1001
  manage_variants: Manage Variants
@@ -1123,6 +1083,7 @@ en:
1123
1083
  no_available_date_set: No available date set
1124
1084
  no_country: No country set
1125
1085
  no_payment_found: No payment found
1086
+ no_payment_provider_settings_message: This payment provider has no custom settings available
1126
1087
  no_pending_payments: No pending payments
1127
1088
  no_product_available:
1128
1089
  for_this_quantity: Sorry, it looks like some products are not available in selected quantity.
@@ -1145,6 +1106,7 @@ en:
1145
1106
  not_found: ! '%{resource} is not found'
1146
1107
  note: Note
1147
1108
  notice_messages:
1109
+ icon_removed: Image has been successfully removed
1148
1110
  prices_saved: Prices successfully saved
1149
1111
  product_cloned: Product has been cloned
1150
1112
  product_deleted: Product has been deleted
@@ -1245,6 +1207,7 @@ en:
1245
1207
  payment_processing_failed: Payment could not be processed, please check the details you entered
1246
1208
  payment_processor_choose_banner_text: If you need help choosing a payment processor, please visit
1247
1209
  payment_processor_choose_link: our payments page
1210
+ payment_provider_settings: Payment Provider Settings
1248
1211
  payment_state: Payment State
1249
1212
  payment_states:
1250
1213
  balance_due: balance due
@@ -1429,6 +1392,7 @@ en:
1429
1392
  rejected: Rejected
1430
1393
  remember_me: Remember me
1431
1394
  remove: Remove
1395
+ remove_image: Remove Image
1432
1396
  rename: Rename
1433
1397
  report: Report
1434
1398
  reports: Reports
@@ -1504,12 +1468,14 @@ en:
1504
1468
  select_a_return_authorization_reason: Select a reason for the return authorization
1505
1469
  select_a_stock_location: Select a stock location
1506
1470
  select_a_store_credit_reason: Select a reason for the store credit
1471
+ select_an_option: Select an option
1507
1472
  select_stock: Select stock
1508
1473
  selected_quantity_not_available: ! 'selected of %{item} is not available.'
1509
- seo: SEO
1510
1474
  send_copy_of_all_mails_to: Send Copy of All Mails To
1511
1475
  send_mails_as: Send Mails As
1512
- seo_title: SEO title
1476
+ seo: SEO
1477
+ seo_robots: SEO Robots
1478
+ seo_title: SEO Title
1513
1479
  server: Server
1514
1480
  server_error: The server returned an error
1515
1481
  settings: Settings
@@ -1563,15 +1529,15 @@ en:
1563
1529
  shopping_cart: Shopping Cart
1564
1530
  show: Show
1565
1531
  show_active: Show Active
1566
- show_currency_selector:
1567
- short: Show Currency Selector
1568
- long_html: Display the currency picker in the main nav bar. This will only display if there are multiple supported currencies, and <strong>Allow currency change</strong> option is enabled.
1569
1532
  show_deleted: Show Deleted
1570
1533
  show_discontinued: Show Discontinued
1571
1534
  show_only_complete_orders: Only show complete orders
1572
1535
  show_only_considered_risky: Only show risky orders
1573
1536
  show_property: Show Property
1574
1537
  show_rate_in_label: Show rate in label
1538
+ show_store_selector:
1539
+ short: Show Store selector
1540
+ long: Display the Store selector in the main nav bar of Storefront and allow users to change Store and Currency
1575
1541
  sign_up: Sign Up
1576
1542
  sku: SKU
1577
1543
  skus: SKUs
@@ -1637,7 +1603,7 @@ en:
1637
1603
  stock_transfer:
1638
1604
  errors:
1639
1605
  must_have_variant: You must add at least one variant.
1640
- variants_unavailable: "Some variants are not available on %{stock}"
1606
+ variants_unavailable: "Some variants are not available on %{stock}"
1641
1607
  stock_transfers: Stock Transfers
1642
1608
  stop: Stop
1643
1609
  store: Store
@@ -1645,6 +1611,18 @@ en:
1645
1611
  unable_to_create: Unable to create store.
1646
1612
  unable_to_update: Unable to update store.
1647
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 a Zone will limit customers on Checkout to Addresses in Countries or States in that Zone.
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
+ languages_help: "Install <a href='https://github.com/spree-contrib/spree_i18n target='_blank' class='alert-link'>Spree I18n extension</a> to add more languages"
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>"
1648
1626
  store_set_default_button: Set as default
1649
1627
  stores: Stores
1650
1628
  store_credit_name: Store Credit
@@ -1804,3 +1782,4 @@ en:
1804
1782
  zipcode_required: Zip Code Required
1805
1783
  zone: Zone
1806
1784
  zones: Zones
1785
+ no_limits_zone: No Limits