spree_core 4.1.10 → 4.2.0.rc2
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/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
|