spree_core 4.1.11 → 4.2.0.beta
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 +23 -2
- data/app/helpers/spree/mail_helper.rb +24 -0
- 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/spree/app_configuration.rb +5 -0
- data/app/models/spree/app_dependencies.rb +1 -7
- data/app/models/spree/line_item.rb +11 -3
- data/app/models/spree/option_type.rb +5 -1
- data/app/models/spree/order.rb +28 -12
- data/app/models/spree/price.rb +26 -2
- data/app/models/spree/product.rb +17 -7
- data/app/models/spree/promotion_handler/coupon.rb +1 -1
- 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 +19 -2
- data/app/models/spree/variant.rb +15 -2
- data/app/presenters/spree/variant_presenter.rb +7 -0
- data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
- data/app/services/spree/checkout/update.rb +2 -13
- 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 +113 -13
- data/db/default/spree/stores.rb +11 -10
- 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/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.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 +1 -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/store.rb +12 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/permitted_attributes.rb +7 -4
- 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 +4 -4
- data/vendor/assets/javascripts/cleave.js +1669 -0
- metadata +37 -18
- data/app/finders/spree/addresses/find.rb +0 -17
- data/app/services/spree/account/addresses/base.rb +0 -39
- data/app/services/spree/account/addresses/create.rb +0 -18
- data/app/services/spree/account/addresses/update.rb +0 -18
- 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
@@ -453,6 +453,7 @@ en:
|
|
453
453
|
acceptance_errors: Acceptance errors
|
454
454
|
accepted: Accepted
|
455
455
|
account: Account
|
456
|
+
account_info: Account info
|
456
457
|
account_updated: Account updated
|
457
458
|
action: Action
|
458
459
|
actions:
|
@@ -568,6 +569,9 @@ en:
|
|
568
569
|
agree_to_privacy_policy: Agree to Privacy Policy
|
569
570
|
agree_to_terms_of_service: Agree to Terms of Service
|
570
571
|
all: All
|
572
|
+
allow_currency_change:
|
573
|
+
short: Allow Currency Change
|
574
|
+
long: Allow users to change their currency via the currency picker.
|
571
575
|
all_adjustments_closed: All adjustments successfully closed!
|
572
576
|
all_adjustments_opened: All adjustments successfully opened!
|
573
577
|
all_departments: All departments
|
@@ -607,13 +611,16 @@ en:
|
|
607
611
|
balance_due: Balance Due
|
608
612
|
base_amount: Base Amount
|
609
613
|
base_percent: Base Percent
|
614
|
+
basic_information: Basic Information
|
610
615
|
bill_address: Bill Address
|
611
616
|
billing: Billing
|
612
617
|
billing_address: Billing Address
|
613
618
|
both: Both
|
619
|
+
breadcrumbs: Breadcrumbs
|
614
620
|
calculated_reimbursements: Calculated Reimbursements
|
615
621
|
calculator: Calculator
|
616
622
|
calculator_settings_warning: If you are changing the calculator type, you must save first before you can edit the calculator settings
|
623
|
+
call_us_now: 'Call us now: '
|
617
624
|
cancel: cancel
|
618
625
|
canceled: Canceled
|
619
626
|
canceler: Canceler
|
@@ -627,18 +634,20 @@ en:
|
|
627
634
|
cannot_set_shipping_method_without_address: Cannot set shipping method until customer details are provided.
|
628
635
|
capture: Capture
|
629
636
|
capture_events: Capture events
|
630
|
-
card_code: Card Code
|
637
|
+
card_code: Card Varification Code (CVC)
|
631
638
|
card_number: Card Number
|
632
639
|
card_type: Brand
|
633
640
|
card_type_is: Card type is
|
634
641
|
cart: Cart
|
635
642
|
cart_page:
|
636
643
|
add_promo_code: ADD PROMO CODE
|
644
|
+
change_quantity: Change quantity
|
637
645
|
checkout: checkout
|
638
646
|
empty_info: 'Your cart is empty.'
|
639
647
|
header: Your shopping cart
|
640
648
|
product: product
|
641
649
|
quantity: quantity
|
650
|
+
remove_from_cart: Remove from cart
|
642
651
|
title: Shopping Cart
|
643
652
|
cart_subtotal:
|
644
653
|
one: 'Subtotal (1 item)'
|
@@ -655,6 +664,8 @@ en:
|
|
655
664
|
charged: Charged
|
656
665
|
checkout: Checkout
|
657
666
|
checkout_page:
|
667
|
+
main_navigation: Main navigation
|
668
|
+
checkout_navigation: Checkout navigation
|
658
669
|
back_to_cart: back to the cart
|
659
670
|
delivery_method: delivery method
|
660
671
|
header: Checkout
|
@@ -674,12 +685,15 @@ en:
|
|
674
685
|
close_all_adjustments: Close All Adjustments
|
675
686
|
code: Code
|
676
687
|
company: Company
|
688
|
+
compare_at_price: Compare at price
|
677
689
|
complete: complete
|
678
690
|
configuration: Configuration
|
679
691
|
configurations: Configurations
|
680
692
|
confirm: Confirm
|
681
693
|
confirm_delete: Confirm Deletion
|
682
694
|
confirm_password: Password Confirmation
|
695
|
+
contact_email: Contact email
|
696
|
+
contact_phone: Contact phone
|
683
697
|
contact_us: Contact us
|
684
698
|
continue: Continue
|
685
699
|
continue_as_guest: Continue as a guest
|
@@ -725,24 +739,56 @@ en:
|
|
725
739
|
credited: Credited
|
726
740
|
credits: Credits
|
727
741
|
currency: Currency
|
742
|
+
currencies: Currencies
|
728
743
|
currency_settings: Currency Settings
|
729
744
|
current: Current
|
730
|
-
current_promotion_usage: ! '
|
745
|
+
current_promotion_usage: ! 'current usage: %{count}'
|
731
746
|
customer: Customer
|
732
747
|
customer_details: Customer Details
|
733
748
|
customer_details_updated: Customer Details Updated
|
734
749
|
customer_return: Customer Return
|
735
750
|
customer_returns: Customer Returns
|
736
751
|
customer_search: Customer Search
|
752
|
+
customer_support_email: Customer Support Email
|
753
|
+
new_order_notifications_email: New Order Notifications Email
|
737
754
|
cut: Cut
|
738
755
|
cvv: CVV
|
739
756
|
cvv_response: CVV Response
|
740
757
|
date: Date
|
741
758
|
date_completed: Date Completed
|
742
759
|
date_picker:
|
760
|
+
am: 'AM'
|
743
761
|
first_day: 0
|
744
762
|
format: ! '%Y/%m/%d'
|
745
|
-
|
763
|
+
hourAriaLabel: 'Hour'
|
764
|
+
js_format: Y/m/d
|
765
|
+
js_date_time: Y/m/d - H:i
|
766
|
+
minuteAriaLabel: 'Minute'
|
767
|
+
pm: 'PM'
|
768
|
+
rangeSeparator: ' to '
|
769
|
+
scrollTitle: 'Scroll to increment'
|
770
|
+
toggleTitle: 'Click to toggle'
|
771
|
+
weekAbbreviation: 'Wk'
|
772
|
+
yearAriaLabel: 'Year'
|
773
|
+
sun: 'Sun'
|
774
|
+
mon: 'Mon'
|
775
|
+
tue: 'Tue'
|
776
|
+
wed: 'Wed'
|
777
|
+
thu: 'Thu'
|
778
|
+
fri: 'Fri'
|
779
|
+
sat: 'Sat'
|
780
|
+
lh_jan: 'January'
|
781
|
+
lh_feb: 'February'
|
782
|
+
lh_mar: 'March'
|
783
|
+
lh_apr: 'April'
|
784
|
+
lh_may: 'May'
|
785
|
+
lh_jun: 'June'
|
786
|
+
lh_jul: 'July'
|
787
|
+
lh_aug: 'August'
|
788
|
+
lh_sep: 'September'
|
789
|
+
lh_oct: 'October'
|
790
|
+
lh_nov: 'November'
|
791
|
+
lh_dec: 'December'
|
746
792
|
date_range: Date Range
|
747
793
|
default: Default
|
748
794
|
default_country_cannot_be_deleted: Default country cannot be deleted
|
@@ -792,6 +838,8 @@ en:
|
|
792
838
|
empty_cart: Empty Cart
|
793
839
|
enable_mail_delivery: Enable Mail Delivery
|
794
840
|
end: End
|
841
|
+
ends_at: Ends at
|
842
|
+
ending_at: Ending at
|
795
843
|
ending_in: Ending in
|
796
844
|
error: error
|
797
845
|
errors:
|
@@ -831,6 +879,7 @@ en:
|
|
831
879
|
extension: Extension
|
832
880
|
extensions_directory: Extensions Directory
|
833
881
|
existing_shipments: Existing shipments
|
882
|
+
facebook: Facebook
|
834
883
|
failed_payment_attempts: Failed Payment Attempts
|
835
884
|
filename: Filename
|
836
885
|
fill_in_customer_info: Please fill in customer info
|
@@ -841,12 +890,15 @@ en:
|
|
841
890
|
finalized: Finalized
|
842
891
|
first_item: First Item
|
843
892
|
first_name: First Name
|
893
|
+
firstname: First Name
|
844
894
|
first_name_begins_with: First Name Begins With
|
845
895
|
flat_percent: Flat Percent
|
846
896
|
flat_rate_per_order: Flat Rate
|
847
897
|
flexible_rate: Flexible Rate
|
848
898
|
follow_us: Follow us
|
899
|
+
footer_info: Footer info
|
849
900
|
forgot_password: Forgot password?
|
901
|
+
free: Free
|
850
902
|
free_shipping: Free Shipping
|
851
903
|
free_shipping_amount: "-"
|
852
904
|
front_end: Front End
|
@@ -855,6 +907,7 @@ en:
|
|
855
907
|
general: General
|
856
908
|
general_settings: General Settings
|
857
909
|
generate_code: Generate coupon code
|
910
|
+
get_back_to_the: Get back to the
|
858
911
|
go_to_category: Go to category
|
859
912
|
go_to_facebook: Go to facebook
|
860
913
|
go_to_homepage: Go to Home Page
|
@@ -863,13 +916,15 @@ en:
|
|
863
916
|
guest_checkout: Guest Checkout
|
864
917
|
guest_user_account: Checkout as a Guest
|
865
918
|
has_no_shipped_units: has no shipped units
|
919
|
+
header_banner: Header banner
|
866
920
|
height: Height
|
867
921
|
hide_from_subcategories_nav: Hide from subcategories navigation
|
868
922
|
home: Home
|
923
|
+
home_page: homepage
|
869
924
|
homepage:
|
870
925
|
bestsellers: BESTSELLERS
|
871
926
|
fashion_trends: FASHION TRENDS
|
872
|
-
fashion_trends_note:
|
927
|
+
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
928
|
men: MEN
|
874
929
|
new: NEW
|
875
930
|
new_collection: NEW COLLECTION
|
@@ -878,7 +933,7 @@ en:
|
|
878
933
|
shop_now: SHOP NOW
|
879
934
|
sportswear: SPORTSWEAR
|
880
935
|
streetstyle: STREETSTYLE
|
881
|
-
|
936
|
+
summer_2020: Summer 2020
|
882
937
|
summer_collection: Summer Collection
|
883
938
|
summer_sale: SUMMER SALE
|
884
939
|
trending: TRENDING
|
@@ -889,6 +944,7 @@ en:
|
|
889
944
|
available_locales: Available Locales
|
890
945
|
fields: Fields
|
891
946
|
language: Language
|
947
|
+
country: Country
|
892
948
|
localization_settings: Localization Settings
|
893
949
|
only_incomplete: Only incomplete
|
894
950
|
only_complete: Only complete
|
@@ -912,6 +968,7 @@ en:
|
|
912
968
|
info_number_of_skus_not_shown:
|
913
969
|
one: "and one other"
|
914
970
|
other: "and %{count} others"
|
971
|
+
instagram: Instagram
|
915
972
|
instructions_to_reset_password: Please enter your email on the form below
|
916
973
|
insufficient_stock: Insufficient stock available, only %{on_hand} remaining
|
917
974
|
insufficient_stock_item_quantity: Insufficient stock quantity available
|
@@ -919,6 +976,7 @@ en:
|
|
919
976
|
intercept_email_address: Intercept Email Address
|
920
977
|
intercept_email_instructions: Override email recipient and replace with this address.
|
921
978
|
internal_name: Internal Name
|
979
|
+
internationalization: Internationalization
|
922
980
|
invalid_credit_card: Invalid credit card.
|
923
981
|
invalid_exchange_variant: Invalid exchange variant.
|
924
982
|
invalid_payment_provider: Invalid payment provider.
|
@@ -929,7 +987,9 @@ en:
|
|
929
987
|
inventory_error_flash_for_insufficient_quantity: An item in your cart has become unavailable.
|
930
988
|
inventory_state: Inventory State
|
931
989
|
is_not_available_to_shipment_address: is not available to shipment address
|
932
|
-
|
990
|
+
iso: ISO Alpha-2
|
991
|
+
iso3: ISO Alpha-3
|
992
|
+
iso_name: ISO Name
|
933
993
|
issued_on: Issued On
|
934
994
|
item: Item
|
935
995
|
item_description: Item Description
|
@@ -946,9 +1006,11 @@ en:
|
|
946
1006
|
items_reimbursed: Items reimbursed
|
947
1007
|
join_slack: Join Slack
|
948
1008
|
last_name: Last Name
|
1009
|
+
lastname: Last Name
|
949
1010
|
last_name_begins_with: Last Name Begins With
|
950
1011
|
learn_more: Learn More
|
951
1012
|
lifetime_stats: Lifetime Stats
|
1013
|
+
limit_usage_to: Limit usage to
|
952
1014
|
line_item_adjustments: "Line item adjustments"
|
953
1015
|
list: List
|
954
1016
|
loading: Loading
|
@@ -967,6 +1029,7 @@ en:
|
|
967
1029
|
login_as_existing: Login as Existing Customer
|
968
1030
|
login_failed: Login authentication failed.
|
969
1031
|
login_name: Login
|
1032
|
+
logo: Logo
|
970
1033
|
logo_alt: Brand logo
|
971
1034
|
logout: Logout
|
972
1035
|
look_for_similar_items: Look for similar items
|
@@ -976,6 +1039,7 @@ en:
|
|
976
1039
|
manage_promotion_categories: Manage Promotion Categories
|
977
1040
|
manual_intervention_required: Manual intervention required
|
978
1041
|
manage_variants: Manage Variants
|
1042
|
+
master: Master
|
979
1043
|
master_price: Master Price
|
980
1044
|
master_sku: Master SKU
|
981
1045
|
match_choices:
|
@@ -1000,6 +1064,8 @@ en:
|
|
1000
1064
|
name_on_card: Name on card
|
1001
1065
|
name_or_sku: Name or SKU (enter at least first 3 characters of product name)
|
1002
1066
|
nav_bar:
|
1067
|
+
admin_panel: Admin Panel
|
1068
|
+
change_country: Change country
|
1003
1069
|
close_menu: Close menu
|
1004
1070
|
go_to_previous_menu: Go to previous menu
|
1005
1071
|
log_in: LOG IN
|
@@ -1010,6 +1076,8 @@ en:
|
|
1010
1076
|
show_search: Show search
|
1011
1077
|
show_user_menu: Show user menu
|
1012
1078
|
sign_up: SIGN UP
|
1079
|
+
desktop: Desktop navigation
|
1080
|
+
mobile: Mobile navigation
|
1013
1081
|
new: New
|
1014
1082
|
new_adjustment: New Adjustment
|
1015
1083
|
new_customer: Create new account
|
@@ -1053,6 +1121,7 @@ en:
|
|
1053
1121
|
no_actions_added: No actions added
|
1054
1122
|
no_address_given: No address given
|
1055
1123
|
no_available_date_set: No available date set
|
1124
|
+
no_country: No country set
|
1056
1125
|
no_payment_found: No payment found
|
1057
1126
|
no_pending_payments: No pending payments
|
1058
1127
|
no_product_available:
|
@@ -1076,6 +1145,7 @@ en:
|
|
1076
1145
|
not_found: ! '%{resource} is not found'
|
1077
1146
|
note: Note
|
1078
1147
|
notice_messages:
|
1148
|
+
prices_saved: Prices successfully saved
|
1079
1149
|
product_cloned: Product has been cloned
|
1080
1150
|
product_deleted: Product has been deleted
|
1081
1151
|
product_not_cloned: "Product could not be cloned. Reason: %{error}"
|
@@ -1109,17 +1179,25 @@ en:
|
|
1109
1179
|
order_mailer:
|
1110
1180
|
subtotal: ! 'Subtotal:'
|
1111
1181
|
total: ! 'Order Total:'
|
1182
|
+
store_team: '%{store_name} Team'
|
1112
1183
|
cancel_email:
|
1113
|
-
dear_customer: Dear
|
1184
|
+
dear_customer: Dear %{name},
|
1114
1185
|
instructions: Your order has been CANCELED. Please retain this cancellation information for your records.
|
1115
1186
|
order_summary_canceled: Order %{number} Summary [CANCELED]
|
1116
1187
|
subject: Cancellation of Order
|
1188
|
+
thanks: Thank you for your business.
|
1117
1189
|
confirm_email:
|
1118
|
-
dear_customer: Dear
|
1190
|
+
dear_customer: Dear %{name},
|
1119
1191
|
instructions: Please review and retain the following order information for your records.
|
1120
1192
|
order_summary: Order %{number} Summary
|
1121
1193
|
subject: Order Confirmation
|
1122
1194
|
thanks: Thank you for your business.
|
1195
|
+
store_owner_notification_email:
|
1196
|
+
heading: New Order Received
|
1197
|
+
instructions: You have received a new order.
|
1198
|
+
order_summary: Order %{number} Summary
|
1199
|
+
subject: '%{store_name} received a new order'
|
1200
|
+
thanks: Thank you for your business.
|
1123
1201
|
order_not_found: We couldn't find your order. Please try that action again.
|
1124
1202
|
order_number: Order %{number}
|
1125
1203
|
order_processed_successfully: Your order has been processed successfully
|
@@ -1148,6 +1226,7 @@ en:
|
|
1148
1226
|
backordered_confirm_info: Selected item is backordered so expect delays. Are you sure you want to order it?
|
1149
1227
|
overview: Overview
|
1150
1228
|
package_from: package from
|
1229
|
+
page_not_found: Sorry! Page you are looking can’t be found.
|
1151
1230
|
pagination:
|
1152
1231
|
next_page: next page »
|
1153
1232
|
previous_page: ! '« previous page'
|
@@ -1205,7 +1284,6 @@ en:
|
|
1205
1284
|
done: DONE
|
1206
1285
|
default: DEFAULT
|
1207
1286
|
filter_by: FILTER BY
|
1208
|
-
home: Home
|
1209
1287
|
newest_first: NEWEST FIRST
|
1210
1288
|
no_results: No results
|
1211
1289
|
no_results_found: No results found
|
@@ -1230,9 +1308,12 @@ en:
|
|
1230
1308
|
preferred_reimbursement_type: Preferred Reimbursement Type
|
1231
1309
|
presentation: Presentation
|
1232
1310
|
preview_product: Preview Product
|
1311
|
+
preview_taxon: Preview Taxon
|
1233
1312
|
previous: Previous
|
1234
1313
|
previous_state_missing: "n/a"
|
1314
|
+
previously_used_card: Previously Used Cards
|
1235
1315
|
price: Price
|
1316
|
+
prices: Prices
|
1236
1317
|
price_range: Price Range
|
1237
1318
|
price_sack: Price Sack
|
1238
1319
|
process: Process
|
@@ -1378,8 +1459,9 @@ en:
|
|
1378
1459
|
return_items_cannot_be_associated_with_multiple_orders: Return items cannot be associated with multiple orders.
|
1379
1460
|
reimbursement_mailer:
|
1380
1461
|
reimbursement_email:
|
1462
|
+
store_team: '%{store_name} Team'
|
1381
1463
|
days_to_send: ! 'You have %{days} days to send back any items awaiting exchange.'
|
1382
|
-
dear_customer: Dear
|
1464
|
+
dear_customer: Dear %{name},
|
1383
1465
|
exchange_summary: Exchange Summary
|
1384
1466
|
for: for
|
1385
1467
|
instructions: Your reimbursement has been processed.
|
@@ -1417,11 +1499,14 @@ en:
|
|
1417
1499
|
security_settings: Security Settings
|
1418
1500
|
select: Select
|
1419
1501
|
select_from_prototype: Select From Prototype
|
1502
|
+
select_a_date: Select a date
|
1503
|
+
select_a_date_range: Select a date range
|
1420
1504
|
select_a_return_authorization_reason: Select a reason for the return authorization
|
1421
1505
|
select_a_stock_location: Select a stock location
|
1422
1506
|
select_a_store_credit_reason: Select a reason for the store credit
|
1423
1507
|
select_stock: Select stock
|
1424
1508
|
selected_quantity_not_available: ! 'selected of %{item} is not available.'
|
1509
|
+
seo: SEO
|
1425
1510
|
send_copy_of_all_mails_to: Send Copy of All Mails To
|
1426
1511
|
send_mails_as: Send Mails As
|
1427
1512
|
seo_title: SEO title
|
@@ -1429,6 +1514,7 @@ en:
|
|
1429
1514
|
server_error: The server returned an error
|
1430
1515
|
settings: Settings
|
1431
1516
|
ship: Ship
|
1517
|
+
ship_to: "Shipping to:"
|
1432
1518
|
ship_address: Ship Address
|
1433
1519
|
ship_total: Ship Total
|
1434
1520
|
shipment: Shipment
|
@@ -1436,7 +1522,8 @@ en:
|
|
1436
1522
|
shipment_details: "From %{stock_location} via %{shipping_method}"
|
1437
1523
|
shipment_mailer:
|
1438
1524
|
shipped_email:
|
1439
|
-
|
1525
|
+
store_team: '%{store_name} Team'
|
1526
|
+
dear_customer: Dear %{name},
|
1440
1527
|
instructions: Your order %{number} has been shipped
|
1441
1528
|
shipment_summary: Shipment Summary for order
|
1442
1529
|
shipping_method: "Shipping method: %{shipping_method}"
|
@@ -1476,22 +1563,28 @@ en:
|
|
1476
1563
|
shopping_cart: Shopping Cart
|
1477
1564
|
show: Show
|
1478
1565
|
show_active: Show Active
|
1566
|
+
show_currency_selector:
|
1567
|
+
short: Show Currency Selector
|
1568
|
+
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
1569
|
show_deleted: Show Deleted
|
1480
1570
|
show_discontinued: Show Discontinued
|
1481
1571
|
show_only_complete_orders: Only show complete orders
|
1482
1572
|
show_only_considered_risky: Only show risky orders
|
1573
|
+
show_property: Show Property
|
1483
1574
|
show_rate_in_label: Show rate in label
|
1484
1575
|
sign_up: Sign Up
|
1485
1576
|
sku: SKU
|
1486
1577
|
skus: SKUs
|
1487
1578
|
slug: Slug
|
1488
1579
|
source: Source
|
1580
|
+
social: Social
|
1489
1581
|
special_instructions: Special Instructions
|
1490
1582
|
split: Split
|
1491
1583
|
spree_gateway_error_flash_for_checkout: There was a problem with your payment information. Please check your information and try again.
|
1492
1584
|
ssl:
|
1493
1585
|
change_protocol: "Please switch to using HTTP (rather than HTTPS) and retry this request."
|
1494
1586
|
start: Start
|
1587
|
+
starting_from: Starts at
|
1495
1588
|
state: State
|
1496
1589
|
state_based: State Based
|
1497
1590
|
states: States
|
@@ -1525,6 +1618,7 @@ en:
|
|
1525
1618
|
reimbursed: Reimbursed
|
1526
1619
|
resumed: Resumed
|
1527
1620
|
returned: Returned
|
1621
|
+
shipment: Shipment
|
1528
1622
|
shipped: Shipped
|
1529
1623
|
void: Void
|
1530
1624
|
states_required: States Required
|
@@ -1542,7 +1636,8 @@ en:
|
|
1542
1636
|
stock_transfer_name: Stock Transfer
|
1543
1637
|
stock_transfer:
|
1544
1638
|
errors:
|
1545
|
-
must_have_variant: You must add
|
1639
|
+
must_have_variant: You must add at least one variant.
|
1640
|
+
variants_unavailable: "Some variants are not available on %{stock}"
|
1546
1641
|
stock_transfers: Stock Transfers
|
1547
1642
|
stop: Stop
|
1548
1643
|
store: Store
|
@@ -1597,6 +1692,8 @@ en:
|
|
1597
1692
|
successfully_removed: ! '%{resource} has been successfully removed!'
|
1598
1693
|
successfully_updated: ! '%{resource} has been successfully updated!'
|
1599
1694
|
summary: Summary
|
1695
|
+
supported_currencies: Supported Currencies
|
1696
|
+
supported_currencies_long: A comma separated list of supported currencies
|
1600
1697
|
tax: Tax
|
1601
1698
|
tax_included: "Tax (incl.)"
|
1602
1699
|
tax_categories: Tax Categories
|
@@ -1621,7 +1718,7 @@ en:
|
|
1621
1718
|
taxonomy_categories_name: Categories
|
1622
1719
|
taxonomy_edit: Edit taxonomy
|
1623
1720
|
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.'
|
1721
|
+
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
1722
|
taxons: Taxons
|
1626
1723
|
test: Test
|
1627
1724
|
test_mailer:
|
@@ -1657,6 +1754,7 @@ en:
|
|
1657
1754
|
tree: Tree
|
1658
1755
|
type: Type
|
1659
1756
|
type_to_search: Type to search
|
1757
|
+
twitter: Twitter
|
1660
1758
|
unable_to_connect_to_gateway: Unable to connect to gateway.
|
1661
1759
|
unable_to_create_reimbursements: Unable to create reimbursements because there are items pending manual intervention.
|
1662
1760
|
under_price: Under %{price}
|
@@ -1689,6 +1787,7 @@ en:
|
|
1689
1787
|
value: Value
|
1690
1788
|
variant: Variant
|
1691
1789
|
variant_placeholder: Choose a variant
|
1790
|
+
variant_prices_search_placeholder: Search for SKU or variant name...
|
1692
1791
|
variants: Variants
|
1693
1792
|
version: Version
|
1694
1793
|
void: Void
|
@@ -1702,5 +1801,6 @@ en:
|
|
1702
1801
|
your_order_is_empty_add_product: Your order is empty, please search for and add a product above
|
1703
1802
|
zip: Zip
|
1704
1803
|
zipcode: Zip Code
|
1804
|
+
zipcode_required: Zip Code Required
|
1705
1805
|
zone: Zone
|
1706
1806
|
zones: Zones
|