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.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/base_controller.rb +1 -0
  3. data/app/helpers/spree/base_helper.rb +61 -14
  4. data/app/helpers/spree/mail_helper.rb +29 -0
  5. data/app/helpers/spree/products_helper.rb +2 -1
  6. data/app/mailers/spree/base_mailer.rb +17 -3
  7. data/app/mailers/spree/order_mailer.rb +11 -2
  8. data/app/mailers/spree/reimbursement_mailer.rb +4 -2
  9. data/app/mailers/spree/shipment_mailer.rb +4 -2
  10. data/app/models/concerns/spree/default_price.rb +2 -1
  11. data/app/models/concerns/spree/user_methods.rb +11 -5
  12. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  13. data/app/models/spree/address.rb +13 -1
  14. data/app/models/spree/adjustment.rb +1 -0
  15. data/app/models/spree/app_configuration.rb +4 -0
  16. data/app/models/spree/credit_card.rb +5 -0
  17. data/app/models/spree/line_item.rb +12 -2
  18. data/app/models/spree/log_entry.rb +1 -1
  19. data/app/models/spree/option_type.rb +7 -1
  20. data/app/models/spree/order.rb +33 -7
  21. data/app/models/spree/order/address_book.rb +7 -20
  22. data/app/models/spree/order/payments.rb +10 -2
  23. data/app/models/spree/preferences/store.rb +1 -1
  24. data/app/models/spree/price.rb +26 -2
  25. data/app/models/spree/product.rb +17 -7
  26. data/app/models/spree/promotion.rb +10 -15
  27. data/app/models/spree/promotion_handler/coupon.rb +2 -3
  28. data/app/models/spree/promotion_handler/promotion_duplicator.rb +9 -3
  29. data/app/models/spree/reimbursement.rb +2 -0
  30. data/app/models/spree/shipment.rb +2 -5
  31. data/app/models/spree/stock_location.rb +13 -2
  32. data/app/models/spree/store.rb +27 -2
  33. data/app/models/spree/variant.rb +15 -2
  34. data/app/models/spree/zone.rb +4 -0
  35. data/app/presenters/spree/variant_presenter.rb +9 -1
  36. data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
  37. data/app/views/layouts/spree/base_mailer.html.erb +45 -40
  38. data/app/views/spree/order_mailer/cancel_email.html.erb +19 -25
  39. data/app/views/spree/order_mailer/cancel_email.text.erb +24 -2
  40. data/app/views/spree/order_mailer/confirm_email.html.erb +18 -65
  41. data/app/views/spree/order_mailer/confirm_email.text.erb +2 -1
  42. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +23 -0
  43. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +38 -0
  44. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +53 -58
  45. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +3 -1
  46. data/app/views/spree/shared/_base_mailer_footer.html.erb +6 -14
  47. data/app/views/spree/shared/_base_mailer_header.html.erb +12 -32
  48. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +293 -625
  49. data/app/views/spree/shared/_purchased_items_table.html.erb +60 -0
  50. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +13 -0
  51. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +27 -0
  52. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +13 -0
  53. data/app/views/spree/shared/purchased_items_table/_total.html.erb +13 -0
  54. data/app/views/spree/shipment_mailer/shipped_email.html.erb +31 -36
  55. data/app/views/spree/shipment_mailer/shipped_email.text.erb +2 -1
  56. data/config/initializers/assets.rb +1 -0
  57. data/config/locales/en.yml +125 -16
  58. data/db/default/spree/countries.rb +10 -4
  59. data/db/default/spree/states.rb +42 -5
  60. data/db/default/spree/stores.rb +17 -12
  61. data/db/default/spree/zones.rb +1 -1
  62. data/db/migrate/20140309033438_create_store_from_preferences.rb +1 -1
  63. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +10 -0
  64. data/db/migrate/20200102141311_add_social_to_spree_stores.rb +3 -0
  65. data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +7 -0
  66. data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +7 -0
  67. data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +7 -0
  68. data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +9 -0
  69. data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +8 -0
  70. data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +5 -0
  71. data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +7 -0
  72. data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +7 -0
  73. data/db/migrate/20200610113542_add_label_to_spree_addresses.rb +5 -0
  74. data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +5 -0
  75. data/db/migrate/20201006110150_add_checkout_zone_field_to_store.rb +12 -0
  76. data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +6 -0
  77. data/db/migrate/20201013084504_add_seo_robots_to_spree_stores.rb +5 -0
  78. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -2
  79. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -2
  80. data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +23 -0
  81. data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +13 -0
  82. data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +5 -0
  83. data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +5 -0
  84. data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +11 -0
  85. data/lib/spree/core.rb +2 -0
  86. data/lib/spree/core/controller_helpers/common.rb +1 -0
  87. data/lib/spree/core/controller_helpers/currency_helpers.rb +15 -0
  88. data/lib/spree/core/controller_helpers/order.rb +9 -4
  89. data/lib/spree/core/controller_helpers/store.rb +12 -1
  90. data/lib/spree/core/importer/order.rb +9 -9
  91. data/lib/spree/core/version.rb +1 -1
  92. data/lib/spree/permitted_attributes.rb +8 -5
  93. data/lib/spree/testing_support/authorization_helpers.rb +7 -4
  94. data/lib/spree/testing_support/factories/promotion_factory.rb +29 -17
  95. data/lib/spree/testing_support/factories/store_factory.rb +11 -8
  96. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  97. data/lib/spree/testing_support/i18n.rb +1 -1
  98. data/spree_core.gemspec +6 -5
  99. data/vendor/assets/javascripts/cleave.js +1669 -0
  100. metadata +57 -16
  101. data/app/views/spree/order_mailer/_adjustment.html.erb +0 -8
  102. data/app/views/spree/order_mailer/_subtotal.html.erb +0 -8
  103. 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
- <table class="row header">
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
- <p class="lede">
5
- <%= Spree.t('shipment_mailer.shipped_email.dear_customer') %>
6
- </p>
7
- <p>
8
- <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
9
- </p>
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) %>
@@ -1 +1,2 @@
1
1
  Rails.application.config.assets.precompile += %w(logo/spree_50.png noimage/*.png)
2
+ Rails.application.config.active_storage.content_types_to_serve_as_binary.delete('image/svg+xml')
@@ -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
- new_shipping_address: "New Address"
505
- edit_shipping_address: "Edit Address"
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
- shipping_addresses: "Addresses"
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: ! 'Current Usage: %{count}'
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
- js_format: yy/mm/dd
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: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
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
- summer_2019: Summer 2019
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
- iso_name: Iso Name
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 Customer,
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 Customer,
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 &raquo;
1153
1240
  previous_page: ! '&laquo; 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 Customer,
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
- dear_customer: Dear Customer,
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 atleast one variant.
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