spree_core 4.2.0.rc1 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree.js +16 -0
- data/app/controllers/spree/base_controller.rb +2 -3
- data/app/controllers/spree/errors_controller.rb +11 -0
- data/app/finders/spree/addresses/find.rb +1 -12
- data/app/finders/spree/base_finder.rb +14 -0
- data/app/finders/spree/countries/find.rb +11 -3
- data/app/finders/spree/credit_cards/find.rb +2 -2
- data/app/finders/spree/orders/find_current.rb +2 -2
- data/app/finders/spree/products/find.rb +14 -3
- data/app/helpers/spree/base_helper.rb +4 -9
- data/app/helpers/spree/currency_helper.rb +24 -0
- data/app/helpers/spree/locale_helper.rb +31 -0
- data/app/helpers/spree/products_helper.rb +37 -12
- data/app/mailers/spree/base_mailer.rb +4 -4
- data/app/mailers/spree/order_mailer.rb +3 -3
- data/app/mailers/spree/reimbursement_mailer.rb +1 -1
- data/app/mailers/spree/shipment_mailer.rb +1 -1
- data/app/models/concerns/spree/default_price.rb +1 -5
- data/app/models/concerns/spree/product_scopes.rb +1 -1
- data/app/models/concerns/spree/user_methods.rb +2 -2
- data/app/models/concerns/spree/user_payment_source.rb +1 -1
- data/app/models/spree/ability.rb +45 -34
- data/app/models/spree/address.rb +4 -0
- data/app/models/spree/adjustment.rb +1 -0
- data/app/models/spree/app_configuration.rb +2 -3
- data/app/models/spree/app_dependencies.rb +6 -2
- data/app/models/spree/base.rb +5 -0
- data/app/models/spree/credit_card.rb +4 -0
- data/app/models/spree/fulfilment_changer.rb +58 -16
- data/app/models/spree/image.rb +14 -14
- data/app/models/spree/inventory_unit.rb +2 -7
- data/app/models/spree/line_item.rb +7 -15
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_type.rb +2 -0
- data/app/models/spree/order.rb +5 -4
- data/app/models/spree/order/address_book.rb +7 -20
- data/app/models/spree/payment.rb +18 -4
- data/app/models/spree/payment/processing.rb +2 -2
- data/app/models/spree/payment_method.rb +3 -3
- data/app/models/spree/price.rb +2 -7
- data/app/models/spree/product.rb +41 -17
- data/app/models/spree/promotion.rb +4 -15
- data/app/models/spree/promotion/rules/option_value.rb +1 -1
- data/app/models/spree/promotion/rules/product.rb +2 -1
- data/app/models/spree/promotion/rules/user.rb +2 -1
- data/app/models/spree/promotion_handler/coupon.rb +1 -2
- data/app/models/spree/refund.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/default.rb +0 -2
- data/app/models/spree/return_item/eligibility_validator/{r_m_a_required.rb → rma_required.rb} +0 -0
- data/app/models/spree/shipment.rb +1 -1
- data/app/models/spree/shipping_method.rb +1 -5
- data/app/models/spree/shipping_rate.rb +2 -11
- data/app/models/spree/stock/availability_validator.rb +3 -4
- data/app/models/spree/stock_item.rb +1 -5
- data/app/models/spree/store.rb +59 -1
- data/app/models/spree/store_credit.rb +1 -1
- data/app/models/spree/variant.rb +9 -16
- data/app/models/spree/zone.rb +17 -4
- data/app/paginators/spree/shared/paginate.rb +8 -1
- data/app/presenters/spree/variant_presenter.rb +2 -5
- data/app/services/spree/account/addresses/create.rb +6 -1
- data/app/services/spree/account/addresses/{base.rb → helper.rb} +1 -3
- data/app/services/spree/account/addresses/update.rb +6 -1
- data/app/services/spree/build_localized_redirect_url.rb +101 -0
- data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
- data/app/services/spree/compare_line_items.rb +4 -2
- data/app/sorters/spree/base_sorter.rb +35 -0
- data/app/sorters/spree/orders/sort.rb +1 -37
- data/app/sorters/spree/products/sort.rb +9 -32
- data/app/validators/email_validator.rb +1 -1
- data/app/views/spree/errors/forbidden.html.erb +0 -0
- data/app/views/spree/errors/unauthorized.html.erb +0 -0
- data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +13 -2
- data/app/views/spree/shared/_purchased_items_table.html.erb +15 -6
- data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +2 -2
- data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +2 -2
- data/config/initializers/inflections.rb +3 -0
- data/config/initializers/rails61_fixes.rb +3 -0
- data/config/locales/en.yml +36 -63
- data/config/routes.rb +2 -1
- data/db/default/spree/stores.rb +1 -0
- data/db/default/spree/zones.rb +4 -1
- data/db/migrate/20130326175857_add_stock_location_to_rma.rb +1 -1
- data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +1 -0
- data/db/migrate/20201006110150_add_checkout_zone_field_to_store.rb +12 -0
- data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +10 -0
- data/db/migrate/20201127084048_add_default_country_kind_to_spree_zones.rb +5 -0
- data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +5 -0
- data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +10 -0
- data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +15 -0
- data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +5 -0
- data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +5 -0
- data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +11 -0
- data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +22 -0
- data/lib/generators/spree/install/install_generator.rb +9 -6
- data/lib/spree/core.rb +2 -1
- data/lib/spree/core/controller_helpers/auth.rb +3 -1
- data/lib/spree/core/controller_helpers/common.rb +6 -8
- data/lib/spree/core/controller_helpers/currency.rb +47 -0
- data/lib/spree/core/controller_helpers/locale.rb +58 -0
- data/lib/spree/core/controller_helpers/search.rb +1 -1
- data/lib/spree/core/controller_helpers/store.rb +4 -16
- data/lib/spree/core/importer/order.rb +9 -9
- data/lib/spree/core/product_filters.rb +3 -3
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/i18n.rb +17 -19
- data/lib/spree/permitted_attributes.rb +2 -2
- data/lib/spree/service_module.rb +8 -4
- data/lib/spree/testing_support/capybara_config.rb +1 -1
- data/lib/spree/testing_support/common_rake.rb +1 -1
- data/lib/spree/testing_support/controller_requests.rb +10 -10
- data/lib/spree/testing_support/factories/promotion_factory.rb +29 -17
- data/lib/spree/testing_support/factories/shipment_factory.rb +7 -9
- data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
- data/lib/spree/testing_support/factories/store_factory.rb +1 -0
- data/lib/spree/testing_support/factories/zone_factory.rb +16 -13
- data/lib/spree/testing_support/flatpickr_capybara.rb +101 -0
- data/lib/spree/testing_support/i18n.rb +1 -1
- data/lib/spree/testing_support/locale_helpers.rb +71 -0
- data/lib/spree/testing_support/next_instance_of.rb +38 -0
- data/lib/spree/testing_support/order_walkthrough.rb +8 -3
- data/lib/spree/testing_support/rspec_retry_config.rb +10 -0
- data/spree_core.gemspec +6 -5
- metadata +74 -27
- data/lib/generators/spree/install/templates/config/initializers/spree_storefront.rb +0 -1
- data/lib/generators/spree/install/templates/config/spree_storefront.yml +0 -67
- data/lib/spree/core/controller_helpers/currency_helpers.rb +0 -15
- data/lib/spree/i18n/base.rb +0 -17
- data/lib/spree/i18n/initializer.rb +0 -1
@@ -1,9 +1,11 @@
|
|
1
1
|
# This class should be refactored
|
2
2
|
module Spree
|
3
3
|
class CompareLineItems
|
4
|
-
prepend Spree::ServiceModule::
|
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,
|
5
|
-
|
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 =
|
12
|
-
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
|
38
|
-
|
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
|
-
|
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
|
|
@@ -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)
|
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)
|
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)
|
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>
|
@@ -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>
|
data/config/locales/en.yml
CHANGED
@@ -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
|
-
|
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
|
@@ -52,6 +52,7 @@ en:
|
|
52
52
|
spree/option_type:
|
53
53
|
name: Name
|
54
54
|
presentation: Presentation
|
55
|
+
filterable: Filterable
|
55
56
|
spree/order:
|
56
57
|
checkout_complete: Checkout Complete
|
57
58
|
completed_at: Completed At
|
@@ -141,7 +142,8 @@ en:
|
|
141
142
|
url: Site URL
|
142
143
|
meta_description: Meta Description
|
143
144
|
meta_keywords: Meta Keywords
|
144
|
-
|
145
|
+
seo_robots: SEO Robots
|
146
|
+
seo_title: SEO Title
|
145
147
|
name: Site Name
|
146
148
|
mail_from_address: Mail From Address
|
147
149
|
spree/store_credit:
|
@@ -574,9 +576,6 @@ en:
|
|
574
576
|
agree_to_privacy_policy: Agree to Privacy Policy
|
575
577
|
agree_to_terms_of_service: Agree to Terms of Service
|
576
578
|
all: All
|
577
|
-
allow_currency_change:
|
578
|
-
short: Allow Currency Change
|
579
|
-
long: Allow users to change their currency via the currency picker.
|
580
579
|
all_adjustments_closed: All adjustments successfully closed!
|
581
580
|
all_adjustments_opened: All adjustments successfully opened!
|
582
581
|
all_departments: All departments
|
@@ -664,7 +663,6 @@ en:
|
|
664
663
|
jackets_and_coats: JACKET & COASTS
|
665
664
|
new_collection: NEW COLLECTION
|
666
665
|
special_offers: SPECIAL OFFERS
|
667
|
-
summer_2019: SUMMER 2019
|
668
666
|
channel: Channel
|
669
667
|
charged: Charged
|
670
668
|
checkout: Checkout
|
@@ -697,7 +695,6 @@ en:
|
|
697
695
|
confirm: Confirm
|
698
696
|
confirm_delete: Confirm Deletion
|
699
697
|
confirm_password: Password Confirmation
|
700
|
-
contact_email: Contact email
|
701
698
|
contact_phone: Contact phone
|
702
699
|
contact_us: Contact us
|
703
700
|
continue: Continue
|
@@ -758,42 +755,14 @@ en:
|
|
758
755
|
new_order_notifications_email: New Order Notifications Email
|
759
756
|
cut: Cut
|
760
757
|
cvv: CVV
|
758
|
+
no_cc_type: N/A
|
761
759
|
cvv_response: CVV Response
|
762
760
|
date: Date
|
763
761
|
date_completed: Date Completed
|
764
762
|
date_picker:
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
hourAriaLabel: 'Hour'
|
769
|
-
js_format: Y/m/d
|
770
|
-
js_date_time: Y/m/d - H:i
|
771
|
-
minuteAriaLabel: 'Minute'
|
772
|
-
pm: 'PM'
|
773
|
-
rangeSeparator: ' to '
|
774
|
-
scrollTitle: 'Scroll to increment'
|
775
|
-
toggleTitle: 'Click to toggle'
|
776
|
-
weekAbbreviation: 'Wk'
|
777
|
-
yearAriaLabel: 'Year'
|
778
|
-
sun: 'Sun'
|
779
|
-
mon: 'Mon'
|
780
|
-
tue: 'Tue'
|
781
|
-
wed: 'Wed'
|
782
|
-
thu: 'Thu'
|
783
|
-
fri: 'Fri'
|
784
|
-
sat: 'Sat'
|
785
|
-
lh_jan: 'January'
|
786
|
-
lh_feb: 'February'
|
787
|
-
lh_mar: 'March'
|
788
|
-
lh_apr: 'April'
|
789
|
-
lh_may: 'May'
|
790
|
-
lh_jun: 'June'
|
791
|
-
lh_jul: 'July'
|
792
|
-
lh_aug: 'August'
|
793
|
-
lh_sep: 'September'
|
794
|
-
lh_oct: 'October'
|
795
|
-
lh_nov: 'November'
|
796
|
-
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
|
797
766
|
date_range: Date Range
|
798
767
|
default: Default
|
799
768
|
default_country_cannot_be_deleted: Default country cannot be deleted
|
@@ -852,6 +821,7 @@ en:
|
|
852
821
|
blank: can't be blank
|
853
822
|
could_not_create_taxon: Could not create taxon
|
854
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
|
855
825
|
services:
|
856
826
|
get_shipping_rates:
|
857
827
|
no_shipping_address: To generate Shipping Rates Order needs to have a Shipping Address
|
@@ -889,6 +859,7 @@ en:
|
|
889
859
|
filename: Filename
|
890
860
|
fill_in_customer_info: Please fill in customer info
|
891
861
|
filter: Filter
|
862
|
+
filterable: Filterable
|
892
863
|
filter_results: Filter Results
|
893
864
|
finalize: Finalize
|
894
865
|
find_a_taxon: Find a Taxon
|
@@ -901,7 +872,7 @@ en:
|
|
901
872
|
flat_rate_per_order: Flat Rate
|
902
873
|
flexible_rate: Flexible Rate
|
903
874
|
follow_us: Follow us
|
904
|
-
|
875
|
+
footer: Footer
|
905
876
|
forgot_password: Forgot password?
|
906
877
|
free: Free
|
907
878
|
free_shipping: Free Shipping
|
@@ -926,24 +897,6 @@ en:
|
|
926
897
|
hide_from_subcategories_nav: Hide from subcategories navigation
|
927
898
|
home: Home
|
928
899
|
home_page: homepage
|
929
|
-
homepage:
|
930
|
-
bestsellers: BESTSELLERS
|
931
|
-
fashion_trends: FASHION TRENDS
|
932
|
-
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.
|
933
|
-
men: MEN
|
934
|
-
new: NEW
|
935
|
-
new_collection: NEW COLLECTION
|
936
|
-
read_more: READ MORE
|
937
|
-
shoes: SHOES
|
938
|
-
shop_now: SHOP NOW
|
939
|
-
sportswear: SPORTSWEAR
|
940
|
-
streetstyle: STREETSTYLE
|
941
|
-
summer_2020: Summer 2020
|
942
|
-
summer_collection: Summer Collection
|
943
|
-
summer_sale: SUMMER SALE
|
944
|
-
trending: TRENDING
|
945
|
-
up_to_60: UP TO 60%
|
946
|
-
women: WOMEN
|
947
900
|
help_center: Help Center
|
948
901
|
i18n:
|
949
902
|
available_locales: Available Locales
|
@@ -1130,6 +1083,7 @@ en:
|
|
1130
1083
|
no_available_date_set: No available date set
|
1131
1084
|
no_country: No country set
|
1132
1085
|
no_payment_found: No payment found
|
1086
|
+
no_payment_provider_settings_message: This payment provider has no custom settings available
|
1133
1087
|
no_pending_payments: No pending payments
|
1134
1088
|
no_product_available:
|
1135
1089
|
for_this_quantity: Sorry, it looks like some products are not available in selected quantity.
|
@@ -1152,6 +1106,7 @@ en:
|
|
1152
1106
|
not_found: ! '%{resource} is not found'
|
1153
1107
|
note: Note
|
1154
1108
|
notice_messages:
|
1109
|
+
icon_removed: Image has been successfully removed
|
1155
1110
|
prices_saved: Prices successfully saved
|
1156
1111
|
product_cloned: Product has been cloned
|
1157
1112
|
product_deleted: Product has been deleted
|
@@ -1252,6 +1207,7 @@ en:
|
|
1252
1207
|
payment_processing_failed: Payment could not be processed, please check the details you entered
|
1253
1208
|
payment_processor_choose_banner_text: If you need help choosing a payment processor, please visit
|
1254
1209
|
payment_processor_choose_link: our payments page
|
1210
|
+
payment_provider_settings: Payment Provider Settings
|
1255
1211
|
payment_state: Payment State
|
1256
1212
|
payment_states:
|
1257
1213
|
balance_due: balance due
|
@@ -1436,6 +1392,7 @@ en:
|
|
1436
1392
|
rejected: Rejected
|
1437
1393
|
remember_me: Remember me
|
1438
1394
|
remove: Remove
|
1395
|
+
remove_image: Remove Image
|
1439
1396
|
rename: Rename
|
1440
1397
|
report: Report
|
1441
1398
|
reports: Reports
|
@@ -1511,12 +1468,14 @@ en:
|
|
1511
1468
|
select_a_return_authorization_reason: Select a reason for the return authorization
|
1512
1469
|
select_a_stock_location: Select a stock location
|
1513
1470
|
select_a_store_credit_reason: Select a reason for the store credit
|
1471
|
+
select_an_option: Select an option
|
1514
1472
|
select_stock: Select stock
|
1515
1473
|
selected_quantity_not_available: ! 'selected of %{item} is not available.'
|
1516
|
-
seo: SEO
|
1517
1474
|
send_copy_of_all_mails_to: Send Copy of All Mails To
|
1518
1475
|
send_mails_as: Send Mails As
|
1519
|
-
|
1476
|
+
seo: SEO
|
1477
|
+
seo_robots: SEO Robots
|
1478
|
+
seo_title: SEO Title
|
1520
1479
|
server: Server
|
1521
1480
|
server_error: The server returned an error
|
1522
1481
|
settings: Settings
|
@@ -1570,15 +1529,15 @@ en:
|
|
1570
1529
|
shopping_cart: Shopping Cart
|
1571
1530
|
show: Show
|
1572
1531
|
show_active: Show Active
|
1573
|
-
show_currency_selector:
|
1574
|
-
short: Show Currency Selector
|
1575
|
-
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.
|
1576
1532
|
show_deleted: Show Deleted
|
1577
1533
|
show_discontinued: Show Discontinued
|
1578
1534
|
show_only_complete_orders: Only show complete orders
|
1579
1535
|
show_only_considered_risky: Only show risky orders
|
1580
1536
|
show_property: Show Property
|
1581
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
|
1582
1541
|
sign_up: Sign Up
|
1583
1542
|
sku: SKU
|
1584
1543
|
skus: SKUs
|
@@ -1652,6 +1611,18 @@ en:
|
|
1652
1611
|
unable_to_create: Unable to create store.
|
1653
1612
|
unable_to_update: Unable to update store.
|
1654
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>"
|
1655
1626
|
store_set_default_button: Set as default
|
1656
1627
|
stores: Stores
|
1657
1628
|
store_credit_name: Store Credit
|
@@ -1701,6 +1672,7 @@ en:
|
|
1701
1672
|
summary: Summary
|
1702
1673
|
supported_currencies: Supported Currencies
|
1703
1674
|
supported_currencies_long: A comma separated list of supported currencies
|
1675
|
+
supported_locales: Supported Locales
|
1704
1676
|
tax: Tax
|
1705
1677
|
tax_included: "Tax (incl.)"
|
1706
1678
|
tax_categories: Tax Categories
|
@@ -1811,3 +1783,4 @@ en:
|
|
1811
1783
|
zipcode_required: Zip Code Required
|
1812
1784
|
zone: Zone
|
1813
1785
|
zones: Zones
|
1786
|
+
no_limits_zone: No Limits
|