spree_core 4.1.10 → 4.2.0.rc2
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/helpers/spree/base_helper.rb +61 -14
- 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/adjustment.rb +1 -0
- data/app/models/spree/app_configuration.rb +4 -0
- data/app/models/spree/credit_card.rb +5 -0
- data/app/models/spree/line_item.rb +12 -2
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_type.rb +7 -1
- data/app/models/spree/order.rb +33 -7
- data/app/models/spree/order/address_book.rb +7 -20
- 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 +10 -15
- data/app/models/spree/promotion_handler/coupon.rb +2 -3
- 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 +27 -2
- data/app/models/spree/variant.rb +15 -2
- data/app/models/spree/zone.rb +4 -0
- data/app/presenters/spree/variant_presenter.rb +9 -1
- data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
- 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 +125 -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/20201006110150_add_checkout_zone_field_to_store.rb +12 -0
- data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +6 -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/importer/order.rb +9 -9
- 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/promotion_factory.rb +29 -17
- data/lib/spree/testing_support/factories/store_factory.rb +11 -8
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/i18n.rb +1 -1
- data/spree_core.gemspec +6 -5
- data/vendor/assets/javascripts/cleave.js +1669 -0
- metadata +57 -16
- 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
|
@@ -51,6 +52,7 @@ en:
|
|
51
52
|
spree/option_type:
|
52
53
|
name: Name
|
53
54
|
presentation: Presentation
|
55
|
+
filterable: Filterable
|
54
56
|
spree/order:
|
55
57
|
checkout_complete: Checkout Complete
|
56
58
|
completed_at: Completed At
|
@@ -453,6 +455,7 @@ en:
|
|
453
455
|
acceptance_errors: Acceptance errors
|
454
456
|
accepted: Accepted
|
455
457
|
account: Account
|
458
|
+
account_info: Account info
|
456
459
|
account_updated: Account updated
|
457
460
|
action: Action
|
458
461
|
actions:
|
@@ -501,10 +504,14 @@ en:
|
|
501
504
|
address_book:
|
502
505
|
other_address: "Other address"
|
503
506
|
add_new_shipping_address: "Add new address"
|
504
|
-
|
505
|
-
|
507
|
+
label: Address Name
|
508
|
+
address_name_label: Address Name
|
509
|
+
address_name_placeholder: Give this address a unique name (Work, Home, etc.)
|
510
|
+
new_address: "New Address"
|
511
|
+
edit_address: "Edit Address"
|
512
|
+
remove_address: Remove Address
|
506
513
|
no_shipping_addresses_on_file: "No addresses on file"
|
507
|
-
|
514
|
+
addresses: "Addresses"
|
508
515
|
successfully_created: "Address has been successfully created."
|
509
516
|
successfully_removed: "Address has been successfully removed."
|
510
517
|
successfully_saved: "Saved successfully"
|
@@ -607,13 +614,16 @@ en:
|
|
607
614
|
balance_due: Balance Due
|
608
615
|
base_amount: Base Amount
|
609
616
|
base_percent: Base Percent
|
617
|
+
basic_information: Basic Information
|
610
618
|
bill_address: Bill Address
|
611
619
|
billing: Billing
|
612
620
|
billing_address: Billing Address
|
613
621
|
both: Both
|
622
|
+
breadcrumbs: Breadcrumbs
|
614
623
|
calculated_reimbursements: Calculated Reimbursements
|
615
624
|
calculator: Calculator
|
616
625
|
calculator_settings_warning: If you are changing the calculator type, you must save first before you can edit the calculator settings
|
626
|
+
call_us_now: 'Call us now: '
|
617
627
|
cancel: cancel
|
618
628
|
canceled: Canceled
|
619
629
|
canceler: Canceler
|
@@ -627,18 +637,20 @@ en:
|
|
627
637
|
cannot_set_shipping_method_without_address: Cannot set shipping method until customer details are provided.
|
628
638
|
capture: Capture
|
629
639
|
capture_events: Capture events
|
630
|
-
card_code: Card Code
|
640
|
+
card_code: Card Varification Code (CVC)
|
631
641
|
card_number: Card Number
|
632
642
|
card_type: Brand
|
633
643
|
card_type_is: Card type is
|
634
644
|
cart: Cart
|
635
645
|
cart_page:
|
636
646
|
add_promo_code: ADD PROMO CODE
|
647
|
+
change_quantity: Change quantity
|
637
648
|
checkout: checkout
|
638
649
|
empty_info: 'Your cart is empty.'
|
639
650
|
header: Your shopping cart
|
640
651
|
product: product
|
641
652
|
quantity: quantity
|
653
|
+
remove_from_cart: Remove from cart
|
642
654
|
title: Shopping Cart
|
643
655
|
cart_subtotal:
|
644
656
|
one: 'Subtotal (1 item)'
|
@@ -655,6 +667,8 @@ en:
|
|
655
667
|
charged: Charged
|
656
668
|
checkout: Checkout
|
657
669
|
checkout_page:
|
670
|
+
main_navigation: Main navigation
|
671
|
+
checkout_navigation: Checkout navigation
|
658
672
|
back_to_cart: back to the cart
|
659
673
|
delivery_method: delivery method
|
660
674
|
header: Checkout
|
@@ -674,12 +688,15 @@ en:
|
|
674
688
|
close_all_adjustments: Close All Adjustments
|
675
689
|
code: Code
|
676
690
|
company: Company
|
691
|
+
compare_at_price: Compare at price
|
677
692
|
complete: complete
|
678
693
|
configuration: Configuration
|
679
694
|
configurations: Configurations
|
680
695
|
confirm: Confirm
|
681
696
|
confirm_delete: Confirm Deletion
|
682
697
|
confirm_password: Password Confirmation
|
698
|
+
contact_email: Contact email
|
699
|
+
contact_phone: Contact phone
|
683
700
|
contact_us: Contact us
|
684
701
|
continue: Continue
|
685
702
|
continue_as_guest: Continue as a guest
|
@@ -725,24 +742,56 @@ en:
|
|
725
742
|
credited: Credited
|
726
743
|
credits: Credits
|
727
744
|
currency: Currency
|
745
|
+
currencies: Currencies
|
728
746
|
currency_settings: Currency Settings
|
729
747
|
current: Current
|
730
|
-
current_promotion_usage: ! '
|
748
|
+
current_promotion_usage: ! 'current usage: %{count}'
|
731
749
|
customer: Customer
|
732
750
|
customer_details: Customer Details
|
733
751
|
customer_details_updated: Customer Details Updated
|
734
752
|
customer_return: Customer Return
|
735
753
|
customer_returns: Customer Returns
|
736
754
|
customer_search: Customer Search
|
755
|
+
customer_support_email: Customer Support Email
|
756
|
+
new_order_notifications_email: New Order Notifications Email
|
737
757
|
cut: Cut
|
738
758
|
cvv: CVV
|
739
759
|
cvv_response: CVV Response
|
740
760
|
date: Date
|
741
761
|
date_completed: Date Completed
|
742
762
|
date_picker:
|
763
|
+
am: 'AM'
|
743
764
|
first_day: 0
|
744
765
|
format: ! '%Y/%m/%d'
|
745
|
-
|
766
|
+
hourAriaLabel: 'Hour'
|
767
|
+
js_format: Y/m/d
|
768
|
+
js_date_time: Y/m/d - H:i
|
769
|
+
minuteAriaLabel: 'Minute'
|
770
|
+
pm: 'PM'
|
771
|
+
rangeSeparator: ' to '
|
772
|
+
scrollTitle: 'Scroll to increment'
|
773
|
+
toggleTitle: 'Click to toggle'
|
774
|
+
weekAbbreviation: 'Wk'
|
775
|
+
yearAriaLabel: 'Year'
|
776
|
+
sun: 'Sun'
|
777
|
+
mon: 'Mon'
|
778
|
+
tue: 'Tue'
|
779
|
+
wed: 'Wed'
|
780
|
+
thu: 'Thu'
|
781
|
+
fri: 'Fri'
|
782
|
+
sat: 'Sat'
|
783
|
+
lh_jan: 'January'
|
784
|
+
lh_feb: 'February'
|
785
|
+
lh_mar: 'March'
|
786
|
+
lh_apr: 'April'
|
787
|
+
lh_may: 'May'
|
788
|
+
lh_jun: 'June'
|
789
|
+
lh_jul: 'July'
|
790
|
+
lh_aug: 'August'
|
791
|
+
lh_sep: 'September'
|
792
|
+
lh_oct: 'October'
|
793
|
+
lh_nov: 'November'
|
794
|
+
lh_dec: 'December'
|
746
795
|
date_range: Date Range
|
747
796
|
default: Default
|
748
797
|
default_country_cannot_be_deleted: Default country cannot be deleted
|
@@ -792,6 +841,8 @@ en:
|
|
792
841
|
empty_cart: Empty Cart
|
793
842
|
enable_mail_delivery: Enable Mail Delivery
|
794
843
|
end: End
|
844
|
+
ends_at: Ends at
|
845
|
+
ending_at: Ending at
|
795
846
|
ending_in: Ending in
|
796
847
|
error: error
|
797
848
|
errors:
|
@@ -831,22 +882,27 @@ en:
|
|
831
882
|
extension: Extension
|
832
883
|
extensions_directory: Extensions Directory
|
833
884
|
existing_shipments: Existing shipments
|
885
|
+
facebook: Facebook
|
834
886
|
failed_payment_attempts: Failed Payment Attempts
|
835
887
|
filename: Filename
|
836
888
|
fill_in_customer_info: Please fill in customer info
|
837
889
|
filter: Filter
|
890
|
+
filterable: Filterable
|
838
891
|
filter_results: Filter Results
|
839
892
|
finalize: Finalize
|
840
893
|
find_a_taxon: Find a Taxon
|
841
894
|
finalized: Finalized
|
842
895
|
first_item: First Item
|
843
896
|
first_name: First Name
|
897
|
+
firstname: First Name
|
844
898
|
first_name_begins_with: First Name Begins With
|
845
899
|
flat_percent: Flat Percent
|
846
900
|
flat_rate_per_order: Flat Rate
|
847
901
|
flexible_rate: Flexible Rate
|
848
902
|
follow_us: Follow us
|
903
|
+
footer_info: Footer info
|
849
904
|
forgot_password: Forgot password?
|
905
|
+
free: Free
|
850
906
|
free_shipping: Free Shipping
|
851
907
|
free_shipping_amount: "-"
|
852
908
|
front_end: Front End
|
@@ -855,6 +911,7 @@ en:
|
|
855
911
|
general: General
|
856
912
|
general_settings: General Settings
|
857
913
|
generate_code: Generate coupon code
|
914
|
+
get_back_to_the: Get back to the
|
858
915
|
go_to_category: Go to category
|
859
916
|
go_to_facebook: Go to facebook
|
860
917
|
go_to_homepage: Go to Home Page
|
@@ -863,13 +920,15 @@ en:
|
|
863
920
|
guest_checkout: Guest Checkout
|
864
921
|
guest_user_account: Checkout as a Guest
|
865
922
|
has_no_shipped_units: has no shipped units
|
923
|
+
header_banner: Header banner
|
866
924
|
height: Height
|
867
925
|
hide_from_subcategories_nav: Hide from subcategories navigation
|
868
926
|
home: Home
|
927
|
+
home_page: homepage
|
869
928
|
homepage:
|
870
929
|
bestsellers: BESTSELLERS
|
871
930
|
fashion_trends: FASHION TRENDS
|
872
|
-
fashion_trends_note:
|
931
|
+
fashion_trends_note: Want to rock this season’s hottest trend in style? These are the top fashion from Summer 2020 Fashion Weeks that are coming our way this season.
|
873
932
|
men: MEN
|
874
933
|
new: NEW
|
875
934
|
new_collection: NEW COLLECTION
|
@@ -878,7 +937,7 @@ en:
|
|
878
937
|
shop_now: SHOP NOW
|
879
938
|
sportswear: SPORTSWEAR
|
880
939
|
streetstyle: STREETSTYLE
|
881
|
-
|
940
|
+
summer_2020: Summer 2020
|
882
941
|
summer_collection: Summer Collection
|
883
942
|
summer_sale: SUMMER SALE
|
884
943
|
trending: TRENDING
|
@@ -889,6 +948,8 @@ en:
|
|
889
948
|
available_locales: Available Locales
|
890
949
|
fields: Fields
|
891
950
|
language: Language
|
951
|
+
country: Country
|
952
|
+
default_country: Default Country
|
892
953
|
localization_settings: Localization Settings
|
893
954
|
only_incomplete: Only incomplete
|
894
955
|
only_complete: Only complete
|
@@ -897,6 +958,8 @@ en:
|
|
897
958
|
supported_locales: Supported Locales
|
898
959
|
this_file_language: English (US)
|
899
960
|
translations: Translations
|
961
|
+
checkout_zone_warning_html: "Selecting a Zone will limit customers on Checkout to Addresses in Countries in that Zone. <br />
|
962
|
+
Please see documentation: <a href='https://guides.spreecommerce.org/user/configuration/configuring_geography.html#zones' target='_blank' class='alert-link'>https://guides.spreecommerce.org/user/configuration/configuring_geography.html#zones</a>"
|
900
963
|
icon: Icon
|
901
964
|
image: Image
|
902
965
|
images: Images
|
@@ -912,6 +975,7 @@ en:
|
|
912
975
|
info_number_of_skus_not_shown:
|
913
976
|
one: "and one other"
|
914
977
|
other: "and %{count} others"
|
978
|
+
instagram: Instagram
|
915
979
|
instructions_to_reset_password: Please enter your email on the form below
|
916
980
|
insufficient_stock: Insufficient stock available, only %{on_hand} remaining
|
917
981
|
insufficient_stock_item_quantity: Insufficient stock quantity available
|
@@ -919,6 +983,7 @@ en:
|
|
919
983
|
intercept_email_address: Intercept Email Address
|
920
984
|
intercept_email_instructions: Override email recipient and replace with this address.
|
921
985
|
internal_name: Internal Name
|
986
|
+
internationalization: Internationalization
|
922
987
|
invalid_credit_card: Invalid credit card.
|
923
988
|
invalid_exchange_variant: Invalid exchange variant.
|
924
989
|
invalid_payment_provider: Invalid payment provider.
|
@@ -929,7 +994,9 @@ en:
|
|
929
994
|
inventory_error_flash_for_insufficient_quantity: An item in your cart has become unavailable.
|
930
995
|
inventory_state: Inventory State
|
931
996
|
is_not_available_to_shipment_address: is not available to shipment address
|
932
|
-
|
997
|
+
iso: ISO Alpha-2
|
998
|
+
iso3: ISO Alpha-3
|
999
|
+
iso_name: ISO Name
|
933
1000
|
issued_on: Issued On
|
934
1001
|
item: Item
|
935
1002
|
item_description: Item Description
|
@@ -946,9 +1013,11 @@ en:
|
|
946
1013
|
items_reimbursed: Items reimbursed
|
947
1014
|
join_slack: Join Slack
|
948
1015
|
last_name: Last Name
|
1016
|
+
lastname: Last Name
|
949
1017
|
last_name_begins_with: Last Name Begins With
|
950
1018
|
learn_more: Learn More
|
951
1019
|
lifetime_stats: Lifetime Stats
|
1020
|
+
limit_usage_to: Limit usage to
|
952
1021
|
line_item_adjustments: "Line item adjustments"
|
953
1022
|
list: List
|
954
1023
|
loading: Loading
|
@@ -967,15 +1036,18 @@ en:
|
|
967
1036
|
login_as_existing: Login as Existing Customer
|
968
1037
|
login_failed: Login authentication failed.
|
969
1038
|
login_name: Login
|
1039
|
+
logo: Logo
|
970
1040
|
logo_alt: Brand logo
|
971
1041
|
logout: Logout
|
972
1042
|
look_for_similar_items: Look for similar items
|
973
1043
|
make_refund: Make refund
|
974
1044
|
make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
|
975
1045
|
mail_from_address: Mail from address
|
1046
|
+
mailer_logo: Mailer logo (JPG or PNG images only)
|
976
1047
|
manage_promotion_categories: Manage Promotion Categories
|
977
1048
|
manual_intervention_required: Manual intervention required
|
978
1049
|
manage_variants: Manage Variants
|
1050
|
+
master: Master
|
979
1051
|
master_price: Master Price
|
980
1052
|
master_sku: Master SKU
|
981
1053
|
match_choices:
|
@@ -1000,6 +1072,8 @@ en:
|
|
1000
1072
|
name_on_card: Name on card
|
1001
1073
|
name_or_sku: Name or SKU (enter at least first 3 characters of product name)
|
1002
1074
|
nav_bar:
|
1075
|
+
admin_panel: Admin Panel
|
1076
|
+
change_country: Change country
|
1003
1077
|
close_menu: Close menu
|
1004
1078
|
go_to_previous_menu: Go to previous menu
|
1005
1079
|
log_in: LOG IN
|
@@ -1010,6 +1084,8 @@ en:
|
|
1010
1084
|
show_search: Show search
|
1011
1085
|
show_user_menu: Show user menu
|
1012
1086
|
sign_up: SIGN UP
|
1087
|
+
desktop: Desktop navigation
|
1088
|
+
mobile: Mobile navigation
|
1013
1089
|
new: New
|
1014
1090
|
new_adjustment: New Adjustment
|
1015
1091
|
new_customer: Create new account
|
@@ -1053,6 +1129,7 @@ en:
|
|
1053
1129
|
no_actions_added: No actions added
|
1054
1130
|
no_address_given: No address given
|
1055
1131
|
no_available_date_set: No available date set
|
1132
|
+
no_country: No country set
|
1056
1133
|
no_payment_found: No payment found
|
1057
1134
|
no_pending_payments: No pending payments
|
1058
1135
|
no_product_available:
|
@@ -1076,6 +1153,7 @@ en:
|
|
1076
1153
|
not_found: ! '%{resource} is not found'
|
1077
1154
|
note: Note
|
1078
1155
|
notice_messages:
|
1156
|
+
prices_saved: Prices successfully saved
|
1079
1157
|
product_cloned: Product has been cloned
|
1080
1158
|
product_deleted: Product has been deleted
|
1081
1159
|
product_not_cloned: "Product could not be cloned. Reason: %{error}"
|
@@ -1109,17 +1187,25 @@ en:
|
|
1109
1187
|
order_mailer:
|
1110
1188
|
subtotal: ! 'Subtotal:'
|
1111
1189
|
total: ! 'Order Total:'
|
1190
|
+
store_team: '%{store_name} Team'
|
1112
1191
|
cancel_email:
|
1113
|
-
dear_customer: Dear
|
1192
|
+
dear_customer: Dear %{name},
|
1114
1193
|
instructions: Your order has been CANCELED. Please retain this cancellation information for your records.
|
1115
1194
|
order_summary_canceled: Order %{number} Summary [CANCELED]
|
1116
1195
|
subject: Cancellation of Order
|
1196
|
+
thanks: Thank you for your business.
|
1117
1197
|
confirm_email:
|
1118
|
-
dear_customer: Dear
|
1198
|
+
dear_customer: Dear %{name},
|
1119
1199
|
instructions: Please review and retain the following order information for your records.
|
1120
1200
|
order_summary: Order %{number} Summary
|
1121
1201
|
subject: Order Confirmation
|
1122
1202
|
thanks: Thank you for your business.
|
1203
|
+
store_owner_notification_email:
|
1204
|
+
heading: New Order Received
|
1205
|
+
instructions: You have received a new order.
|
1206
|
+
order_summary: Order %{number} Summary
|
1207
|
+
subject: '%{store_name} received a new order'
|
1208
|
+
thanks: Thank you for your business.
|
1123
1209
|
order_not_found: We couldn't find your order. Please try that action again.
|
1124
1210
|
order_number: Order %{number}
|
1125
1211
|
order_processed_successfully: Your order has been processed successfully
|
@@ -1148,6 +1234,7 @@ en:
|
|
1148
1234
|
backordered_confirm_info: Selected item is backordered so expect delays. Are you sure you want to order it?
|
1149
1235
|
overview: Overview
|
1150
1236
|
package_from: package from
|
1237
|
+
page_not_found: Sorry! Page you are looking can’t be found.
|
1151
1238
|
pagination:
|
1152
1239
|
next_page: next page »
|
1153
1240
|
previous_page: ! '« previous page'
|
@@ -1205,7 +1292,6 @@ en:
|
|
1205
1292
|
done: DONE
|
1206
1293
|
default: DEFAULT
|
1207
1294
|
filter_by: FILTER BY
|
1208
|
-
home: Home
|
1209
1295
|
newest_first: NEWEST FIRST
|
1210
1296
|
no_results: No results
|
1211
1297
|
no_results_found: No results found
|
@@ -1230,9 +1316,12 @@ en:
|
|
1230
1316
|
preferred_reimbursement_type: Preferred Reimbursement Type
|
1231
1317
|
presentation: Presentation
|
1232
1318
|
preview_product: Preview Product
|
1319
|
+
preview_taxon: Preview Taxon
|
1233
1320
|
previous: Previous
|
1234
1321
|
previous_state_missing: "n/a"
|
1322
|
+
previously_used_card: Previously Used Cards
|
1235
1323
|
price: Price
|
1324
|
+
prices: Prices
|
1236
1325
|
price_range: Price Range
|
1237
1326
|
price_sack: Price Sack
|
1238
1327
|
process: Process
|
@@ -1378,8 +1467,9 @@ en:
|
|
1378
1467
|
return_items_cannot_be_associated_with_multiple_orders: Return items cannot be associated with multiple orders.
|
1379
1468
|
reimbursement_mailer:
|
1380
1469
|
reimbursement_email:
|
1470
|
+
store_team: '%{store_name} Team'
|
1381
1471
|
days_to_send: ! 'You have %{days} days to send back any items awaiting exchange.'
|
1382
|
-
dear_customer: Dear
|
1472
|
+
dear_customer: Dear %{name},
|
1383
1473
|
exchange_summary: Exchange Summary
|
1384
1474
|
for: for
|
1385
1475
|
instructions: Your reimbursement has been processed.
|
@@ -1417,11 +1507,14 @@ en:
|
|
1417
1507
|
security_settings: Security Settings
|
1418
1508
|
select: Select
|
1419
1509
|
select_from_prototype: Select From Prototype
|
1510
|
+
select_a_date: Select a date
|
1511
|
+
select_a_date_range: Select a date range
|
1420
1512
|
select_a_return_authorization_reason: Select a reason for the return authorization
|
1421
1513
|
select_a_stock_location: Select a stock location
|
1422
1514
|
select_a_store_credit_reason: Select a reason for the store credit
|
1423
1515
|
select_stock: Select stock
|
1424
1516
|
selected_quantity_not_available: ! 'selected of %{item} is not available.'
|
1517
|
+
seo: SEO
|
1425
1518
|
send_copy_of_all_mails_to: Send Copy of All Mails To
|
1426
1519
|
send_mails_as: Send Mails As
|
1427
1520
|
seo_title: SEO title
|
@@ -1429,6 +1522,7 @@ en:
|
|
1429
1522
|
server_error: The server returned an error
|
1430
1523
|
settings: Settings
|
1431
1524
|
ship: Ship
|
1525
|
+
ship_to: "Shipping to:"
|
1432
1526
|
ship_address: Ship Address
|
1433
1527
|
ship_total: Ship Total
|
1434
1528
|
shipment: Shipment
|
@@ -1436,7 +1530,8 @@ en:
|
|
1436
1530
|
shipment_details: "From %{stock_location} via %{shipping_method}"
|
1437
1531
|
shipment_mailer:
|
1438
1532
|
shipped_email:
|
1439
|
-
|
1533
|
+
store_team: '%{store_name} Team'
|
1534
|
+
dear_customer: Dear %{name},
|
1440
1535
|
instructions: Your order %{number} has been shipped
|
1441
1536
|
shipment_summary: Shipment Summary for order
|
1442
1537
|
shipping_method: "Shipping method: %{shipping_method}"
|
@@ -1480,18 +1575,24 @@ en:
|
|
1480
1575
|
show_discontinued: Show Discontinued
|
1481
1576
|
show_only_complete_orders: Only show complete orders
|
1482
1577
|
show_only_considered_risky: Only show risky orders
|
1578
|
+
show_property: Show Property
|
1483
1579
|
show_rate_in_label: Show rate in label
|
1580
|
+
show_store_currency_selector:
|
1581
|
+
short: Show Store selector
|
1582
|
+
long: Display the Store selector in the main nav bar of Storefront and allow users to change Store and Currency
|
1484
1583
|
sign_up: Sign Up
|
1485
1584
|
sku: SKU
|
1486
1585
|
skus: SKUs
|
1487
1586
|
slug: Slug
|
1488
1587
|
source: Source
|
1588
|
+
social: Social
|
1489
1589
|
special_instructions: Special Instructions
|
1490
1590
|
split: Split
|
1491
1591
|
spree_gateway_error_flash_for_checkout: There was a problem with your payment information. Please check your information and try again.
|
1492
1592
|
ssl:
|
1493
1593
|
change_protocol: "Please switch to using HTTP (rather than HTTPS) and retry this request."
|
1494
1594
|
start: Start
|
1595
|
+
starting_from: Starts at
|
1495
1596
|
state: State
|
1496
1597
|
state_based: State Based
|
1497
1598
|
states: States
|
@@ -1525,6 +1626,7 @@ en:
|
|
1525
1626
|
reimbursed: Reimbursed
|
1526
1627
|
resumed: Resumed
|
1527
1628
|
returned: Returned
|
1629
|
+
shipment: Shipment
|
1528
1630
|
shipped: Shipped
|
1529
1631
|
void: Void
|
1530
1632
|
states_required: States Required
|
@@ -1542,7 +1644,8 @@ en:
|
|
1542
1644
|
stock_transfer_name: Stock Transfer
|
1543
1645
|
stock_transfer:
|
1544
1646
|
errors:
|
1545
|
-
must_have_variant: You must add
|
1647
|
+
must_have_variant: You must add at least one variant.
|
1648
|
+
variants_unavailable: "Some variants are not available on %{stock}"
|
1546
1649
|
stock_transfers: Stock Transfers
|
1547
1650
|
stop: Stop
|
1548
1651
|
store: Store
|
@@ -1597,6 +1700,8 @@ en:
|
|
1597
1700
|
successfully_removed: ! '%{resource} has been successfully removed!'
|
1598
1701
|
successfully_updated: ! '%{resource} has been successfully updated!'
|
1599
1702
|
summary: Summary
|
1703
|
+
supported_currencies: Supported Currencies
|
1704
|
+
supported_currencies_long: A comma separated list of supported currencies
|
1600
1705
|
tax: Tax
|
1601
1706
|
tax_included: "Tax (incl.)"
|
1602
1707
|
tax_categories: Tax Categories
|
@@ -1621,7 +1726,7 @@ en:
|
|
1621
1726
|
taxonomy_categories_name: Categories
|
1622
1727
|
taxonomy_edit: Edit taxonomy
|
1623
1728
|
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.'
|
1729
|
+
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
1730
|
taxons: Taxons
|
1626
1731
|
test: Test
|
1627
1732
|
test_mailer:
|
@@ -1657,6 +1762,7 @@ en:
|
|
1657
1762
|
tree: Tree
|
1658
1763
|
type: Type
|
1659
1764
|
type_to_search: Type to search
|
1765
|
+
twitter: Twitter
|
1660
1766
|
unable_to_connect_to_gateway: Unable to connect to gateway.
|
1661
1767
|
unable_to_create_reimbursements: Unable to create reimbursements because there are items pending manual intervention.
|
1662
1768
|
under_price: Under %{price}
|
@@ -1689,6 +1795,7 @@ en:
|
|
1689
1795
|
value: Value
|
1690
1796
|
variant: Variant
|
1691
1797
|
variant_placeholder: Choose a variant
|
1798
|
+
variant_prices_search_placeholder: Search for SKU or variant name...
|
1692
1799
|
variants: Variants
|
1693
1800
|
version: Version
|
1694
1801
|
void: Void
|
@@ -1702,5 +1809,7 @@ en:
|
|
1702
1809
|
your_order_is_empty_add_product: Your order is empty, please search for and add a product above
|
1703
1810
|
zip: Zip
|
1704
1811
|
zipcode: Zip Code
|
1812
|
+
zipcode_required: Zip Code Required
|
1705
1813
|
zone: Zone
|
1706
1814
|
zones: Zones
|
1815
|
+
no_limits_zone: No Limits
|