spree_core 4.1.8 → 4.2.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|