spree_core 4.1.8 → 4.2.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/finders/spree/addresses/find.rb +17 -0
- data/app/helpers/spree/base_helper.rb +60 -13
- data/app/helpers/spree/mail_helper.rb +29 -0
- data/app/helpers/spree/products_helper.rb +2 -1
- data/app/mailers/spree/base_mailer.rb +17 -3
- data/app/mailers/spree/order_mailer.rb +11 -2
- data/app/mailers/spree/reimbursement_mailer.rb +4 -2
- data/app/mailers/spree/shipment_mailer.rb +4 -2
- data/app/models/concerns/spree/default_price.rb +2 -1
- data/app/models/concerns/spree/user_methods.rb +11 -5
- data/app/models/concerns/spree/user_payment_source.rb +1 -1
- data/app/models/spree/address.rb +13 -1
- data/app/models/spree/app_configuration.rb +5 -0
- data/app/models/spree/app_dependencies.rb +7 -1
- data/app/models/spree/credit_card.rb +5 -0
- data/app/models/spree/line_item.rb +12 -2
- data/app/models/spree/option_type.rb +5 -1
- data/app/models/spree/order.rb +33 -7
- data/app/models/spree/order/payments.rb +10 -2
- data/app/models/spree/preferences/store.rb +1 -1
- data/app/models/spree/price.rb +26 -2
- data/app/models/spree/product.rb +17 -7
- data/app/models/spree/promotion.rb +6 -0
- data/app/models/spree/promotion_handler/coupon.rb +1 -1
- data/app/models/spree/promotion_handler/promotion_duplicator.rb +9 -3
- data/app/models/spree/reimbursement.rb +2 -0
- data/app/models/spree/shipment.rb +2 -5
- data/app/models/spree/stock_location.rb +13 -2
- data/app/models/spree/store.rb +22 -2
- data/app/models/spree/variant.rb +20 -3
- data/app/presenters/spree/variant_presenter.rb +9 -1
- data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
- data/app/services/spree/account/addresses/base.rb +39 -0
- data/app/services/spree/account/addresses/create.rb +18 -0
- data/app/services/spree/account/addresses/update.rb +18 -0
- data/app/services/spree/checkout/update.rb +13 -2
- data/app/views/layouts/spree/base_mailer.html.erb +45 -40
- data/app/views/spree/order_mailer/cancel_email.html.erb +19 -25
- data/app/views/spree/order_mailer/cancel_email.text.erb +24 -2
- data/app/views/spree/order_mailer/confirm_email.html.erb +18 -65
- data/app/views/spree/order_mailer/confirm_email.text.erb +2 -1
- data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +23 -0
- data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +38 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +53 -58
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +3 -1
- data/app/views/spree/shared/_base_mailer_footer.html.erb +6 -14
- data/app/views/spree/shared/_base_mailer_header.html.erb +12 -32
- data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +293 -625
- data/app/views/spree/shared/_purchased_items_table.html.erb +60 -0
- data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +13 -0
- data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +27 -0
- data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +13 -0
- data/app/views/spree/shared/purchased_items_table/_total.html.erb +13 -0
- data/app/views/spree/shipment_mailer/shipped_email.html.erb +31 -36
- data/app/views/spree/shipment_mailer/shipped_email.text.erb +2 -1
- data/config/initializers/assets.rb +1 -0
- data/config/locales/en.yml +123 -16
- data/db/default/spree/countries.rb +10 -4
- data/db/default/spree/states.rb +42 -5
- data/db/default/spree/stores.rb +17 -12
- data/db/default/spree/zones.rb +1 -1
- data/db/migrate/20140309033438_create_store_from_preferences.rb +1 -1
- data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +10 -0
- data/db/migrate/20200102141311_add_social_to_spree_stores.rb +3 -0
- data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +7 -0
- data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +7 -0
- data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +7 -0
- data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +9 -0
- data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +8 -0
- data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +5 -0
- data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +7 -0
- data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +7 -0
- data/db/migrate/20200610113542_add_label_to_spree_addresses.rb +5 -0
- data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +5 -0
- data/db/migrate/20201013084504_add_seo_robots_to_spree_stores.rb +5 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -2
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -2
- data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +23 -0
- data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +13 -0
- data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +5 -0
- data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +5 -0
- data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +11 -0
- data/lib/spree/core.rb +2 -0
- data/lib/spree/core/controller_helpers/common.rb +1 -0
- data/lib/spree/core/controller_helpers/currency_helpers.rb +15 -0
- data/lib/spree/core/controller_helpers/order.rb +9 -4
- data/lib/spree/core/controller_helpers/store.rb +12 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/permitted_attributes.rb +8 -5
- data/lib/spree/testing_support/authorization_helpers.rb +7 -4
- data/lib/spree/testing_support/factories/store_factory.rb +11 -8
- data/spree_core.gemspec +5 -4
- data/vendor/assets/javascripts/cleave.js +1669 -0
- metadata +55 -12
- data/app/views/spree/order_mailer/_adjustment.html.erb +0 -8
- data/app/views/spree/order_mailer/_subtotal.html.erb +0 -8
- data/app/views/spree/order_mailer/_total.html.erb +0 -8
@@ -0,0 +1,60 @@
|
|
1
|
+
<table class="purchase_content">
|
2
|
+
<%= render collection: line_items, partial: 'spree/shared/purchased_items_table/line_item', as: :line_item %>
|
3
|
+
<%= render 'spree/shared/purchased_items_table/subtotal', order: order %>
|
4
|
+
<% if order.line_item_adjustments.exists? %>
|
5
|
+
<% if order.all_adjustments.promotion.eligible.exists? %>
|
6
|
+
<% order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
|
7
|
+
<tr>
|
8
|
+
<td></td>
|
9
|
+
<td>
|
10
|
+
<p class="f-fallback purchase_total purchase_total--label">
|
11
|
+
<%= Spree.t(:promotion) %> <%= label %>:
|
12
|
+
</p>
|
13
|
+
</td>
|
14
|
+
<td>
|
15
|
+
<p class="f-fallback purchase_total">
|
16
|
+
<%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
|
17
|
+
</p>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
<% order.shipments.group_by { |s| s.selected_shipping_rate&.name }.each do |name, shipments| %>
|
24
|
+
<tr>
|
25
|
+
<td></td>
|
26
|
+
<td>
|
27
|
+
<p class="f-fallback purchase_total purchase_total--label">
|
28
|
+
<%= Spree.t(:shipping) %> <%= name %>:
|
29
|
+
</p>
|
30
|
+
</td>
|
31
|
+
<td>
|
32
|
+
<p class="f-fallback purchase_total">
|
33
|
+
<%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency) %>
|
34
|
+
</p>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
<% end %>
|
38
|
+
<% if order.all_adjustments.eligible.tax.exists? %>
|
39
|
+
<% order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
|
40
|
+
<tr>
|
41
|
+
<td></td>
|
42
|
+
<td>
|
43
|
+
<p class="f-fallback purchase_total purchase_total--label">
|
44
|
+
<%= Spree.t(:tax) %> <%= label %>:
|
45
|
+
</p>
|
46
|
+
</td>
|
47
|
+
<td>
|
48
|
+
<p class="f-fallback purchase_total">
|
49
|
+
<%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
|
50
|
+
</p>
|
51
|
+
</td>
|
52
|
+
</tr>
|
53
|
+
<% end %>
|
54
|
+
<% end %>
|
55
|
+
<% order.adjustments.eligible.each do |adjustment| %>
|
56
|
+
<% next if (adjustment.source_type == 'Spree::TaxRate') || (adjustment.amount == 0) %>
|
57
|
+
<%= render 'spree/shared/purchased_items_table/adjustment', adjustment: adjustment, order: order %>
|
58
|
+
<% end %>
|
59
|
+
<%= render 'spree/shared/purchased_items_table/total', order: order %>
|
60
|
+
</table>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<tr>
|
2
|
+
<td></td>
|
3
|
+
<td>
|
4
|
+
<p class="f-fallback purchase_total purchase_total--label">
|
5
|
+
<%= raw(adjustment.label) %>:
|
6
|
+
</p>
|
7
|
+
</td>
|
8
|
+
<td>
|
9
|
+
<p class="f-fallback purchase_total">
|
10
|
+
<%= Spree::Money.new(adjustment.amount, currency: order.currency) %>
|
11
|
+
</p>
|
12
|
+
</td>
|
13
|
+
</tr>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<tr>
|
2
|
+
<td class="purchase_image">
|
3
|
+
<% if frontend_available? %>
|
4
|
+
<%= link_to(image_tag(variant_image_url(line_item.variant)), spree.product_url(line_item.product)) %>
|
5
|
+
<% else %>
|
6
|
+
<%= image_tag(variant_image_url(line_item.variant)) %>
|
7
|
+
<% end %>
|
8
|
+
</td>
|
9
|
+
<td class="purchase_item">
|
10
|
+
<strong>
|
11
|
+
<span class="f-fallback">
|
12
|
+
<% if frontend_available? %>
|
13
|
+
<%= link_to raw(line_item.name), spree.product_url(line_item.product) %>
|
14
|
+
<% else %>
|
15
|
+
<%= raw(line_item.name) %>
|
16
|
+
<% end %>
|
17
|
+
</span>
|
18
|
+
</strong>
|
19
|
+
<p class="purchase_item--additional"><%= raw(line_item.variant.options_text) -%></p>
|
20
|
+
</td>
|
21
|
+
<td class="align-right">
|
22
|
+
<span class="f-fallback purchase_item_price">
|
23
|
+
<%= line_item.quantity %> x <%= line_item.single_money %>
|
24
|
+
<%= line_item.display_amount %>
|
25
|
+
</span>
|
26
|
+
</td>
|
27
|
+
</tr>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<tr>
|
2
|
+
<td class="purchase_footer" valign="middle"></td>
|
3
|
+
<td class="purchase_footer" valign="middle">
|
4
|
+
<p class="f-fallback purchase_total purchase_total--label">
|
5
|
+
<%= Spree.t('order_mailer.subtotal') %>
|
6
|
+
</p>
|
7
|
+
</td>
|
8
|
+
<td class="purchase_footer" valign="middle">
|
9
|
+
<p class="f-fallback purchase_total">
|
10
|
+
<%= order.display_item_total %>
|
11
|
+
</p>
|
12
|
+
</td>
|
13
|
+
</tr>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<tr>
|
2
|
+
<td></td>
|
3
|
+
<td>
|
4
|
+
<p class="f-fallback purchase_total purchase_total--label">
|
5
|
+
<strong><%= Spree.t('order_mailer.total') %></strong>
|
6
|
+
</p>
|
7
|
+
</td>
|
8
|
+
<td>
|
9
|
+
<p class="f-fallback purchase_total">
|
10
|
+
<strong><%= order.display_total %></strong>
|
11
|
+
</p>
|
12
|
+
</td>
|
13
|
+
</tr>
|
@@ -1,41 +1,36 @@
|
|
1
|
-
<
|
1
|
+
<h1>
|
2
|
+
<%= Spree.t('shipment_mailer.shipped_email.dear_customer', name: name_for(@shipment.order)) %>
|
3
|
+
</h1>
|
4
|
+
<p>
|
5
|
+
<%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
|
6
|
+
</p>
|
7
|
+
<table class="purchase" role="presentation">
|
2
8
|
<tr>
|
3
9
|
<td>
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<p>
|
11
|
-
<%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
|
12
|
-
</p>
|
13
|
-
<table class="container">
|
14
|
-
<tr>
|
15
|
-
<td class="wrapper last">
|
16
|
-
<table class="twelve columns">
|
17
|
-
<%= render collection: @shipment.manifest.map(&:line_item), partial: 'spree/shared/mailer_line_item', as: :line_item %>
|
18
|
-
</table>
|
19
|
-
</td>
|
20
|
-
</tr>
|
21
|
-
</table>
|
22
|
-
<p>
|
23
|
-
<%= Spree.t('shipment_mailer.shipped_email.shipping_method', shipping_method: @shipment.shipping_method.name) %>
|
24
|
-
</p>
|
25
|
-
<% if @shipment.tracking %>
|
26
|
-
<p>
|
27
|
-
<%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) %>
|
28
|
-
</p>
|
29
|
-
<% end %>
|
30
|
-
<% if @shipment.tracking_url %>
|
31
|
-
<p>
|
32
|
-
<%= Spree.t('shipment_mailer.shipped_email.track_link', url: link_to(@shipment.tracking_url, @shipment.tracking_url)).html_safe %>
|
33
|
-
</p>
|
34
|
-
<% end %>
|
35
|
-
<p>
|
36
|
-
<%= Spree.t('shipment_mailer.shipped_email.thanks') %>
|
37
|
-
</p>
|
10
|
+
<h3><%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %></h3>
|
11
|
+
</td>
|
12
|
+
</tr>
|
13
|
+
<tr>
|
14
|
+
<td colspan="2">
|
15
|
+
<%= render 'spree/shared/purchased_items_table', line_items: @shipment.manifest.map(&:line_item), order: @shipment.order %>
|
38
16
|
</td>
|
39
|
-
<td class="expander"></td>
|
40
17
|
</tr>
|
41
18
|
</table>
|
19
|
+
<p>
|
20
|
+
<%= Spree.t('shipment_mailer.shipped_email.shipping_method', shipping_method: @shipment.shipping_method.name) %>
|
21
|
+
</p>
|
22
|
+
<% if @shipment.tracking %>
|
23
|
+
<p>
|
24
|
+
<%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) %>
|
25
|
+
</p>
|
26
|
+
<% end %>
|
27
|
+
<% if @shipment.tracking_url %>
|
28
|
+
<p>
|
29
|
+
<%= Spree.t('shipment_mailer.shipped_email.track_link', url: link_to(@shipment.tracking_url, @shipment.tracking_url)).html_safe %>
|
30
|
+
</p>
|
31
|
+
<% end %>
|
32
|
+
<p>
|
33
|
+
<%= Spree.t('shipment_mailer.shipped_email.thanks') %>
|
34
|
+
<br />
|
35
|
+
<%= Spree.t('shipment_mailer.shipped_email.store_team', store_name: current_store.name) %>
|
36
|
+
</p>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= Spree.t('shipment_mailer.shipped_email.dear_customer') %>
|
1
|
+
<%= Spree.t('shipment_mailer.shipped_email.dear_customer', name: name_for(@shipment.order)) %>
|
2
2
|
|
3
3
|
<%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
|
4
4
|
|
@@ -14,3 +14,4 @@
|
|
14
14
|
<%= Spree.t('shipment_mailer.shipped_email.track_link', url: @shipment.tracking_url) if @shipment.tracking_url %>
|
15
15
|
|
16
16
|
<%= Spree.t('shipment_mailer.shipped_email.thanks') %>
|
17
|
+
<%= Spree.t('shipment_mailer.shipped_email.store_team', store_name: current_store.name) %>
|
data/config/locales/en.yml
CHANGED
@@ -13,6 +13,7 @@ en:
|
|
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
|
@@ -453,6 +454,7 @@ en:
|
|
453
454
|
acceptance_errors: Acceptance errors
|
454
455
|
accepted: Accepted
|
455
456
|
account: Account
|
457
|
+
account_info: Account info
|
456
458
|
account_updated: Account updated
|
457
459
|
action: Action
|
458
460
|
actions:
|
@@ -501,10 +503,14 @@ en:
|
|
501
503
|
address_book:
|
502
504
|
other_address: "Other address"
|
503
505
|
add_new_shipping_address: "Add new address"
|
504
|
-
|
505
|
-
|
506
|
+
label: Address Name
|
507
|
+
address_name_label: Address Name
|
508
|
+
address_name_placeholder: Give this address a unique name (Work, Home, etc.)
|
509
|
+
new_address: "New Address"
|
510
|
+
edit_address: "Edit Address"
|
511
|
+
remove_address: Remove Address
|
506
512
|
no_shipping_addresses_on_file: "No addresses on file"
|
507
|
-
|
513
|
+
addresses: "Addresses"
|
508
514
|
successfully_created: "Address has been successfully created."
|
509
515
|
successfully_removed: "Address has been successfully removed."
|
510
516
|
successfully_saved: "Saved successfully"
|
@@ -568,6 +574,9 @@ en:
|
|
568
574
|
agree_to_privacy_policy: Agree to Privacy Policy
|
569
575
|
agree_to_terms_of_service: Agree to Terms of Service
|
570
576
|
all: All
|
577
|
+
allow_currency_change:
|
578
|
+
short: Allow Currency Change
|
579
|
+
long: Allow users to change their currency via the currency picker.
|
571
580
|
all_adjustments_closed: All adjustments successfully closed!
|
572
581
|
all_adjustments_opened: All adjustments successfully opened!
|
573
582
|
all_departments: All departments
|
@@ -607,13 +616,16 @@ en:
|
|
607
616
|
balance_due: Balance Due
|
608
617
|
base_amount: Base Amount
|
609
618
|
base_percent: Base Percent
|
619
|
+
basic_information: Basic Information
|
610
620
|
bill_address: Bill Address
|
611
621
|
billing: Billing
|
612
622
|
billing_address: Billing Address
|
613
623
|
both: Both
|
624
|
+
breadcrumbs: Breadcrumbs
|
614
625
|
calculated_reimbursements: Calculated Reimbursements
|
615
626
|
calculator: Calculator
|
616
627
|
calculator_settings_warning: If you are changing the calculator type, you must save first before you can edit the calculator settings
|
628
|
+
call_us_now: 'Call us now: '
|
617
629
|
cancel: cancel
|
618
630
|
canceled: Canceled
|
619
631
|
canceler: Canceler
|
@@ -627,18 +639,20 @@ en:
|
|
627
639
|
cannot_set_shipping_method_without_address: Cannot set shipping method until customer details are provided.
|
628
640
|
capture: Capture
|
629
641
|
capture_events: Capture events
|
630
|
-
card_code: Card Code
|
642
|
+
card_code: Card Varification Code (CVC)
|
631
643
|
card_number: Card Number
|
632
644
|
card_type: Brand
|
633
645
|
card_type_is: Card type is
|
634
646
|
cart: Cart
|
635
647
|
cart_page:
|
636
648
|
add_promo_code: ADD PROMO CODE
|
649
|
+
change_quantity: Change quantity
|
637
650
|
checkout: checkout
|
638
651
|
empty_info: 'Your cart is empty.'
|
639
652
|
header: Your shopping cart
|
640
653
|
product: product
|
641
654
|
quantity: quantity
|
655
|
+
remove_from_cart: Remove from cart
|
642
656
|
title: Shopping Cart
|
643
657
|
cart_subtotal:
|
644
658
|
one: 'Subtotal (1 item)'
|
@@ -655,6 +669,8 @@ en:
|
|
655
669
|
charged: Charged
|
656
670
|
checkout: Checkout
|
657
671
|
checkout_page:
|
672
|
+
main_navigation: Main navigation
|
673
|
+
checkout_navigation: Checkout navigation
|
658
674
|
back_to_cart: back to the cart
|
659
675
|
delivery_method: delivery method
|
660
676
|
header: Checkout
|
@@ -674,12 +690,15 @@ en:
|
|
674
690
|
close_all_adjustments: Close All Adjustments
|
675
691
|
code: Code
|
676
692
|
company: Company
|
693
|
+
compare_at_price: Compare at price
|
677
694
|
complete: complete
|
678
695
|
configuration: Configuration
|
679
696
|
configurations: Configurations
|
680
697
|
confirm: Confirm
|
681
698
|
confirm_delete: Confirm Deletion
|
682
699
|
confirm_password: Password Confirmation
|
700
|
+
contact_email: Contact email
|
701
|
+
contact_phone: Contact phone
|
683
702
|
contact_us: Contact us
|
684
703
|
continue: Continue
|
685
704
|
continue_as_guest: Continue as a guest
|
@@ -725,24 +744,56 @@ en:
|
|
725
744
|
credited: Credited
|
726
745
|
credits: Credits
|
727
746
|
currency: Currency
|
747
|
+
currencies: Currencies
|
728
748
|
currency_settings: Currency Settings
|
729
749
|
current: Current
|
730
|
-
current_promotion_usage: ! '
|
750
|
+
current_promotion_usage: ! 'current usage: %{count}'
|
731
751
|
customer: Customer
|
732
752
|
customer_details: Customer Details
|
733
753
|
customer_details_updated: Customer Details Updated
|
734
754
|
customer_return: Customer Return
|
735
755
|
customer_returns: Customer Returns
|
736
756
|
customer_search: Customer Search
|
757
|
+
customer_support_email: Customer Support Email
|
758
|
+
new_order_notifications_email: New Order Notifications Email
|
737
759
|
cut: Cut
|
738
760
|
cvv: CVV
|
739
761
|
cvv_response: CVV Response
|
740
762
|
date: Date
|
741
763
|
date_completed: Date Completed
|
742
764
|
date_picker:
|
765
|
+
am: 'AM'
|
743
766
|
first_day: 0
|
744
767
|
format: ! '%Y/%m/%d'
|
745
|
-
|
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'
|
746
797
|
date_range: Date Range
|
747
798
|
default: Default
|
748
799
|
default_country_cannot_be_deleted: Default country cannot be deleted
|
@@ -792,6 +843,8 @@ en:
|
|
792
843
|
empty_cart: Empty Cart
|
793
844
|
enable_mail_delivery: Enable Mail Delivery
|
794
845
|
end: End
|
846
|
+
ends_at: Ends at
|
847
|
+
ending_at: Ending at
|
795
848
|
ending_in: Ending in
|
796
849
|
error: error
|
797
850
|
errors:
|
@@ -831,6 +884,7 @@ en:
|
|
831
884
|
extension: Extension
|
832
885
|
extensions_directory: Extensions Directory
|
833
886
|
existing_shipments: Existing shipments
|
887
|
+
facebook: Facebook
|
834
888
|
failed_payment_attempts: Failed Payment Attempts
|
835
889
|
filename: Filename
|
836
890
|
fill_in_customer_info: Please fill in customer info
|
@@ -841,12 +895,15 @@ en:
|
|
841
895
|
finalized: Finalized
|
842
896
|
first_item: First Item
|
843
897
|
first_name: First Name
|
898
|
+
firstname: First Name
|
844
899
|
first_name_begins_with: First Name Begins With
|
845
900
|
flat_percent: Flat Percent
|
846
901
|
flat_rate_per_order: Flat Rate
|
847
902
|
flexible_rate: Flexible Rate
|
848
903
|
follow_us: Follow us
|
904
|
+
footer_info: Footer info
|
849
905
|
forgot_password: Forgot password?
|
906
|
+
free: Free
|
850
907
|
free_shipping: Free Shipping
|
851
908
|
free_shipping_amount: "-"
|
852
909
|
front_end: Front End
|
@@ -855,6 +912,7 @@ en:
|
|
855
912
|
general: General
|
856
913
|
general_settings: General Settings
|
857
914
|
generate_code: Generate coupon code
|
915
|
+
get_back_to_the: Get back to the
|
858
916
|
go_to_category: Go to category
|
859
917
|
go_to_facebook: Go to facebook
|
860
918
|
go_to_homepage: Go to Home Page
|
@@ -863,13 +921,15 @@ en:
|
|
863
921
|
guest_checkout: Guest Checkout
|
864
922
|
guest_user_account: Checkout as a Guest
|
865
923
|
has_no_shipped_units: has no shipped units
|
924
|
+
header_banner: Header banner
|
866
925
|
height: Height
|
867
926
|
hide_from_subcategories_nav: Hide from subcategories navigation
|
868
927
|
home: Home
|
928
|
+
home_page: homepage
|
869
929
|
homepage:
|
870
930
|
bestsellers: BESTSELLERS
|
871
931
|
fashion_trends: FASHION TRENDS
|
872
|
-
fashion_trends_note:
|
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.
|
873
933
|
men: MEN
|
874
934
|
new: NEW
|
875
935
|
new_collection: NEW COLLECTION
|
@@ -878,7 +938,7 @@ en:
|
|
878
938
|
shop_now: SHOP NOW
|
879
939
|
sportswear: SPORTSWEAR
|
880
940
|
streetstyle: STREETSTYLE
|
881
|
-
|
941
|
+
summer_2020: Summer 2020
|
882
942
|
summer_collection: Summer Collection
|
883
943
|
summer_sale: SUMMER SALE
|
884
944
|
trending: TRENDING
|
@@ -889,6 +949,8 @@ en:
|
|
889
949
|
available_locales: Available Locales
|
890
950
|
fields: Fields
|
891
951
|
language: Language
|
952
|
+
country: Country
|
953
|
+
default_country: Default Country
|
892
954
|
localization_settings: Localization Settings
|
893
955
|
only_incomplete: Only incomplete
|
894
956
|
only_complete: Only complete
|
@@ -912,6 +974,7 @@ en:
|
|
912
974
|
info_number_of_skus_not_shown:
|
913
975
|
one: "and one other"
|
914
976
|
other: "and %{count} others"
|
977
|
+
instagram: Instagram
|
915
978
|
instructions_to_reset_password: Please enter your email on the form below
|
916
979
|
insufficient_stock: Insufficient stock available, only %{on_hand} remaining
|
917
980
|
insufficient_stock_item_quantity: Insufficient stock quantity available
|
@@ -919,6 +982,7 @@ en:
|
|
919
982
|
intercept_email_address: Intercept Email Address
|
920
983
|
intercept_email_instructions: Override email recipient and replace with this address.
|
921
984
|
internal_name: Internal Name
|
985
|
+
internationalization: Internationalization
|
922
986
|
invalid_credit_card: Invalid credit card.
|
923
987
|
invalid_exchange_variant: Invalid exchange variant.
|
924
988
|
invalid_payment_provider: Invalid payment provider.
|
@@ -929,7 +993,9 @@ en:
|
|
929
993
|
inventory_error_flash_for_insufficient_quantity: An item in your cart has become unavailable.
|
930
994
|
inventory_state: Inventory State
|
931
995
|
is_not_available_to_shipment_address: is not available to shipment address
|
932
|
-
|
996
|
+
iso: ISO Alpha-2
|
997
|
+
iso3: ISO Alpha-3
|
998
|
+
iso_name: ISO Name
|
933
999
|
issued_on: Issued On
|
934
1000
|
item: Item
|
935
1001
|
item_description: Item Description
|
@@ -946,9 +1012,11 @@ en:
|
|
946
1012
|
items_reimbursed: Items reimbursed
|
947
1013
|
join_slack: Join Slack
|
948
1014
|
last_name: Last Name
|
1015
|
+
lastname: Last Name
|
949
1016
|
last_name_begins_with: Last Name Begins With
|
950
1017
|
learn_more: Learn More
|
951
1018
|
lifetime_stats: Lifetime Stats
|
1019
|
+
limit_usage_to: Limit usage to
|
952
1020
|
line_item_adjustments: "Line item adjustments"
|
953
1021
|
list: List
|
954
1022
|
loading: Loading
|
@@ -967,15 +1035,18 @@ en:
|
|
967
1035
|
login_as_existing: Login as Existing Customer
|
968
1036
|
login_failed: Login authentication failed.
|
969
1037
|
login_name: Login
|
1038
|
+
logo: Logo
|
970
1039
|
logo_alt: Brand logo
|
971
1040
|
logout: Logout
|
972
1041
|
look_for_similar_items: Look for similar items
|
973
1042
|
make_refund: Make refund
|
974
1043
|
make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
|
975
1044
|
mail_from_address: Mail from address
|
1045
|
+
mailer_logo: Mailer logo (JPG or PNG images only)
|
976
1046
|
manage_promotion_categories: Manage Promotion Categories
|
977
1047
|
manual_intervention_required: Manual intervention required
|
978
1048
|
manage_variants: Manage Variants
|
1049
|
+
master: Master
|
979
1050
|
master_price: Master Price
|
980
1051
|
master_sku: Master SKU
|
981
1052
|
match_choices:
|
@@ -1000,6 +1071,8 @@ en:
|
|
1000
1071
|
name_on_card: Name on card
|
1001
1072
|
name_or_sku: Name or SKU (enter at least first 3 characters of product name)
|
1002
1073
|
nav_bar:
|
1074
|
+
admin_panel: Admin Panel
|
1075
|
+
change_country: Change country
|
1003
1076
|
close_menu: Close menu
|
1004
1077
|
go_to_previous_menu: Go to previous menu
|
1005
1078
|
log_in: LOG IN
|
@@ -1010,6 +1083,8 @@ en:
|
|
1010
1083
|
show_search: Show search
|
1011
1084
|
show_user_menu: Show user menu
|
1012
1085
|
sign_up: SIGN UP
|
1086
|
+
desktop: Desktop navigation
|
1087
|
+
mobile: Mobile navigation
|
1013
1088
|
new: New
|
1014
1089
|
new_adjustment: New Adjustment
|
1015
1090
|
new_customer: Create new account
|
@@ -1053,6 +1128,7 @@ en:
|
|
1053
1128
|
no_actions_added: No actions added
|
1054
1129
|
no_address_given: No address given
|
1055
1130
|
no_available_date_set: No available date set
|
1131
|
+
no_country: No country set
|
1056
1132
|
no_payment_found: No payment found
|
1057
1133
|
no_pending_payments: No pending payments
|
1058
1134
|
no_product_available:
|
@@ -1076,6 +1152,7 @@ en:
|
|
1076
1152
|
not_found: ! '%{resource} is not found'
|
1077
1153
|
note: Note
|
1078
1154
|
notice_messages:
|
1155
|
+
prices_saved: Prices successfully saved
|
1079
1156
|
product_cloned: Product has been cloned
|
1080
1157
|
product_deleted: Product has been deleted
|
1081
1158
|
product_not_cloned: "Product could not be cloned. Reason: %{error}"
|
@@ -1109,17 +1186,25 @@ en:
|
|
1109
1186
|
order_mailer:
|
1110
1187
|
subtotal: ! 'Subtotal:'
|
1111
1188
|
total: ! 'Order Total:'
|
1189
|
+
store_team: '%{store_name} Team'
|
1112
1190
|
cancel_email:
|
1113
|
-
dear_customer: Dear
|
1191
|
+
dear_customer: Dear %{name},
|
1114
1192
|
instructions: Your order has been CANCELED. Please retain this cancellation information for your records.
|
1115
1193
|
order_summary_canceled: Order %{number} Summary [CANCELED]
|
1116
1194
|
subject: Cancellation of Order
|
1195
|
+
thanks: Thank you for your business.
|
1117
1196
|
confirm_email:
|
1118
|
-
dear_customer: Dear
|
1197
|
+
dear_customer: Dear %{name},
|
1119
1198
|
instructions: Please review and retain the following order information for your records.
|
1120
1199
|
order_summary: Order %{number} Summary
|
1121
1200
|
subject: Order Confirmation
|
1122
1201
|
thanks: Thank you for your business.
|
1202
|
+
store_owner_notification_email:
|
1203
|
+
heading: New Order Received
|
1204
|
+
instructions: You have received a new order.
|
1205
|
+
order_summary: Order %{number} Summary
|
1206
|
+
subject: '%{store_name} received a new order'
|
1207
|
+
thanks: Thank you for your business.
|
1123
1208
|
order_not_found: We couldn't find your order. Please try that action again.
|
1124
1209
|
order_number: Order %{number}
|
1125
1210
|
order_processed_successfully: Your order has been processed successfully
|
@@ -1148,6 +1233,7 @@ en:
|
|
1148
1233
|
backordered_confirm_info: Selected item is backordered so expect delays. Are you sure you want to order it?
|
1149
1234
|
overview: Overview
|
1150
1235
|
package_from: package from
|
1236
|
+
page_not_found: Sorry! Page you are looking can’t be found.
|
1151
1237
|
pagination:
|
1152
1238
|
next_page: next page »
|
1153
1239
|
previous_page: ! '« previous page'
|
@@ -1205,7 +1291,6 @@ en:
|
|
1205
1291
|
done: DONE
|
1206
1292
|
default: DEFAULT
|
1207
1293
|
filter_by: FILTER BY
|
1208
|
-
home: Home
|
1209
1294
|
newest_first: NEWEST FIRST
|
1210
1295
|
no_results: No results
|
1211
1296
|
no_results_found: No results found
|
@@ -1230,9 +1315,12 @@ en:
|
|
1230
1315
|
preferred_reimbursement_type: Preferred Reimbursement Type
|
1231
1316
|
presentation: Presentation
|
1232
1317
|
preview_product: Preview Product
|
1318
|
+
preview_taxon: Preview Taxon
|
1233
1319
|
previous: Previous
|
1234
1320
|
previous_state_missing: "n/a"
|
1321
|
+
previously_used_card: Previously Used Cards
|
1235
1322
|
price: Price
|
1323
|
+
prices: Prices
|
1236
1324
|
price_range: Price Range
|
1237
1325
|
price_sack: Price Sack
|
1238
1326
|
process: Process
|
@@ -1378,8 +1466,9 @@ en:
|
|
1378
1466
|
return_items_cannot_be_associated_with_multiple_orders: Return items cannot be associated with multiple orders.
|
1379
1467
|
reimbursement_mailer:
|
1380
1468
|
reimbursement_email:
|
1469
|
+
store_team: '%{store_name} Team'
|
1381
1470
|
days_to_send: ! 'You have %{days} days to send back any items awaiting exchange.'
|
1382
|
-
dear_customer: Dear
|
1471
|
+
dear_customer: Dear %{name},
|
1383
1472
|
exchange_summary: Exchange Summary
|
1384
1473
|
for: for
|
1385
1474
|
instructions: Your reimbursement has been processed.
|
@@ -1417,11 +1506,14 @@ en:
|
|
1417
1506
|
security_settings: Security Settings
|
1418
1507
|
select: Select
|
1419
1508
|
select_from_prototype: Select From Prototype
|
1509
|
+
select_a_date: Select a date
|
1510
|
+
select_a_date_range: Select a date range
|
1420
1511
|
select_a_return_authorization_reason: Select a reason for the return authorization
|
1421
1512
|
select_a_stock_location: Select a stock location
|
1422
1513
|
select_a_store_credit_reason: Select a reason for the store credit
|
1423
1514
|
select_stock: Select stock
|
1424
1515
|
selected_quantity_not_available: ! 'selected of %{item} is not available.'
|
1516
|
+
seo: SEO
|
1425
1517
|
send_copy_of_all_mails_to: Send Copy of All Mails To
|
1426
1518
|
send_mails_as: Send Mails As
|
1427
1519
|
seo_title: SEO title
|
@@ -1429,6 +1521,7 @@ en:
|
|
1429
1521
|
server_error: The server returned an error
|
1430
1522
|
settings: Settings
|
1431
1523
|
ship: Ship
|
1524
|
+
ship_to: "Shipping to:"
|
1432
1525
|
ship_address: Ship Address
|
1433
1526
|
ship_total: Ship Total
|
1434
1527
|
shipment: Shipment
|
@@ -1436,7 +1529,8 @@ en:
|
|
1436
1529
|
shipment_details: "From %{stock_location} via %{shipping_method}"
|
1437
1530
|
shipment_mailer:
|
1438
1531
|
shipped_email:
|
1439
|
-
|
1532
|
+
store_team: '%{store_name} Team'
|
1533
|
+
dear_customer: Dear %{name},
|
1440
1534
|
instructions: Your order %{number} has been shipped
|
1441
1535
|
shipment_summary: Shipment Summary for order
|
1442
1536
|
shipping_method: "Shipping method: %{shipping_method}"
|
@@ -1476,22 +1570,28 @@ en:
|
|
1476
1570
|
shopping_cart: Shopping Cart
|
1477
1571
|
show: Show
|
1478
1572
|
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.
|
1479
1576
|
show_deleted: Show Deleted
|
1480
1577
|
show_discontinued: Show Discontinued
|
1481
1578
|
show_only_complete_orders: Only show complete orders
|
1482
1579
|
show_only_considered_risky: Only show risky orders
|
1580
|
+
show_property: Show Property
|
1483
1581
|
show_rate_in_label: Show rate in label
|
1484
1582
|
sign_up: Sign Up
|
1485
1583
|
sku: SKU
|
1486
1584
|
skus: SKUs
|
1487
1585
|
slug: Slug
|
1488
1586
|
source: Source
|
1587
|
+
social: Social
|
1489
1588
|
special_instructions: Special Instructions
|
1490
1589
|
split: Split
|
1491
1590
|
spree_gateway_error_flash_for_checkout: There was a problem with your payment information. Please check your information and try again.
|
1492
1591
|
ssl:
|
1493
1592
|
change_protocol: "Please switch to using HTTP (rather than HTTPS) and retry this request."
|
1494
1593
|
start: Start
|
1594
|
+
starting_from: Starts at
|
1495
1595
|
state: State
|
1496
1596
|
state_based: State Based
|
1497
1597
|
states: States
|
@@ -1525,6 +1625,7 @@ en:
|
|
1525
1625
|
reimbursed: Reimbursed
|
1526
1626
|
resumed: Resumed
|
1527
1627
|
returned: Returned
|
1628
|
+
shipment: Shipment
|
1528
1629
|
shipped: Shipped
|
1529
1630
|
void: Void
|
1530
1631
|
states_required: States Required
|
@@ -1542,7 +1643,8 @@ en:
|
|
1542
1643
|
stock_transfer_name: Stock Transfer
|
1543
1644
|
stock_transfer:
|
1544
1645
|
errors:
|
1545
|
-
must_have_variant: You must add
|
1646
|
+
must_have_variant: You must add at least one variant.
|
1647
|
+
variants_unavailable: "Some variants are not available on %{stock}"
|
1546
1648
|
stock_transfers: Stock Transfers
|
1547
1649
|
stop: Stop
|
1548
1650
|
store: Store
|
@@ -1597,6 +1699,8 @@ en:
|
|
1597
1699
|
successfully_removed: ! '%{resource} has been successfully removed!'
|
1598
1700
|
successfully_updated: ! '%{resource} has been successfully updated!'
|
1599
1701
|
summary: Summary
|
1702
|
+
supported_currencies: Supported Currencies
|
1703
|
+
supported_currencies_long: A comma separated list of supported currencies
|
1600
1704
|
tax: Tax
|
1601
1705
|
tax_included: "Tax (incl.)"
|
1602
1706
|
tax_categories: Tax Categories
|
@@ -1621,7 +1725,7 @@ en:
|
|
1621
1725
|
taxonomy_categories_name: Categories
|
1622
1726
|
taxonomy_edit: Edit taxonomy
|
1623
1727
|
taxonomy_tree_error: The requested change has not been accepted and the tree has been returned to its previous state, please try again.
|
1624
|
-
taxonomy_tree_instruction: ! '* Right click a child in the tree to access the menu for adding, deleting or sorting a child.'
|
1728
|
+
taxonomy_tree_instruction: ! '* Right click (or double tap on iOS device) a child in the tree to access the menu for adding, deleting or sorting a child.'
|
1625
1729
|
taxons: Taxons
|
1626
1730
|
test: Test
|
1627
1731
|
test_mailer:
|
@@ -1657,6 +1761,7 @@ en:
|
|
1657
1761
|
tree: Tree
|
1658
1762
|
type: Type
|
1659
1763
|
type_to_search: Type to search
|
1764
|
+
twitter: Twitter
|
1660
1765
|
unable_to_connect_to_gateway: Unable to connect to gateway.
|
1661
1766
|
unable_to_create_reimbursements: Unable to create reimbursements because there are items pending manual intervention.
|
1662
1767
|
under_price: Under %{price}
|
@@ -1689,6 +1794,7 @@ en:
|
|
1689
1794
|
value: Value
|
1690
1795
|
variant: Variant
|
1691
1796
|
variant_placeholder: Choose a variant
|
1797
|
+
variant_prices_search_placeholder: Search for SKU or variant name...
|
1692
1798
|
variants: Variants
|
1693
1799
|
version: Version
|
1694
1800
|
void: Void
|
@@ -1702,5 +1808,6 @@ en:
|
|
1702
1808
|
your_order_is_empty_add_product: Your order is empty, please search for and add a product above
|
1703
1809
|
zip: Zip
|
1704
1810
|
zipcode: Zip Code
|
1811
|
+
zipcode_required: Zip Code Required
|
1705
1812
|
zone: Zone
|
1706
1813
|
zones: Zones
|