spree_core 4.1.5 → 4.2.0.beta

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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/base_controller.rb +1 -0
  3. data/app/finders/spree/products/find.rb +46 -11
  4. data/app/helpers/spree/base_helper.rb +26 -3
  5. data/app/helpers/spree/mail_helper.rb +24 -0
  6. data/app/helpers/spree/products_helper.rb +15 -14
  7. data/app/mailers/spree/base_mailer.rb +17 -3
  8. data/app/mailers/spree/order_mailer.rb +11 -2
  9. data/app/mailers/spree/reimbursement_mailer.rb +4 -2
  10. data/app/mailers/spree/shipment_mailer.rb +4 -2
  11. data/app/models/concerns/spree/default_price.rb +2 -1
  12. data/app/models/concerns/spree/product_scopes.rb +2 -2
  13. data/app/models/concerns/spree/user_methods.rb +11 -5
  14. data/app/models/spree/app_configuration.rb +6 -0
  15. data/app/models/spree/line_item.rb +10 -1
  16. data/app/models/spree/option_type.rb +5 -1
  17. data/app/models/spree/order.rb +26 -5
  18. data/app/models/spree/price.rb +26 -2
  19. data/app/models/spree/product.rb +19 -9
  20. data/app/models/spree/promotion/actions/create_item_adjustments.rb +1 -1
  21. data/app/models/spree/promotion_handler/coupon.rb +1 -1
  22. data/app/models/spree/reimbursement.rb +2 -0
  23. data/app/models/spree/shipment.rb +2 -5
  24. data/app/models/spree/stock_location.rb +13 -2
  25. data/app/models/spree/store.rb +19 -2
  26. data/app/models/spree/taxon.rb +6 -0
  27. data/app/models/spree/variant.rb +29 -2
  28. data/app/presenters/spree/variant_presenter.rb +7 -0
  29. data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
  30. data/app/services/spree/checkout/get_shipping_rates.rb +7 -10
  31. data/app/views/layouts/spree/base_mailer.html.erb +45 -40
  32. data/app/views/spree/order_mailer/cancel_email.html.erb +19 -25
  33. data/app/views/spree/order_mailer/cancel_email.text.erb +24 -2
  34. data/app/views/spree/order_mailer/confirm_email.html.erb +18 -65
  35. data/app/views/spree/order_mailer/confirm_email.text.erb +2 -1
  36. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +23 -0
  37. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +38 -0
  38. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +53 -58
  39. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +3 -1
  40. data/app/views/spree/shared/_base_mailer_footer.html.erb +6 -14
  41. data/app/views/spree/shared/_base_mailer_header.html.erb +12 -32
  42. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +293 -625
  43. data/app/views/spree/shared/_purchased_items_table.html.erb +60 -0
  44. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +13 -0
  45. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +27 -0
  46. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +13 -0
  47. data/app/views/spree/shared/purchased_items_table/_total.html.erb +13 -0
  48. data/app/views/spree/shipment_mailer/shipped_email.html.erb +31 -36
  49. data/app/views/spree/shipment_mailer/shipped_email.text.erb +2 -1
  50. data/config/initializers/assets.rb +1 -0
  51. data/config/locales/en.yml +113 -13
  52. data/db/default/spree/stores.rb +11 -10
  53. data/db/migrate/20140309033438_create_store_from_preferences.rb +1 -1
  54. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +10 -0
  55. data/db/migrate/20200102141311_add_social_to_spree_stores.rb +3 -0
  56. data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +7 -0
  57. data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +7 -0
  58. data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +7 -0
  59. data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +9 -0
  60. data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +8 -0
  61. data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +5 -0
  62. data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +7 -0
  63. data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +7 -0
  64. data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +5 -0
  65. data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
  66. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -2
  67. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -2
  68. data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +23 -0
  69. data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +13 -0
  70. data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +5 -0
  71. data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +5 -0
  72. data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +11 -0
  73. data/lib/spree/core.rb +1 -0
  74. data/lib/spree/core/controller_helpers/common.rb +1 -0
  75. data/lib/spree/core/controller_helpers/currency_helpers.rb +15 -0
  76. data/lib/spree/core/controller_helpers/store.rb +12 -1
  77. data/lib/spree/core/version.rb +1 -1
  78. data/lib/spree/permitted_attributes.rb +7 -4
  79. data/lib/spree/testing_support/authorization_helpers.rb +7 -4
  80. data/lib/spree/testing_support/factories/store_factory.rb +11 -8
  81. data/spree_core.gemspec +14 -8
  82. data/vendor/assets/javascripts/cleave.js +1669 -0
  83. metadata +43 -22
  84. data/app/views/spree/order_mailer/_adjustment.html.erb +0 -8
  85. data/app/views/spree/order_mailer/_subtotal.html.erb +0 -8
  86. 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')
@@ -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: ! 'Current Usage: %{count}'
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
- js_format: yy/mm/dd
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: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
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
- summer_2019: Summer 2019
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
- iso_name: Iso Name
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 Customer,
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 Customer,
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 &raquo;
1153
1232
  previous_page: ! '&laquo; 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 Customer,
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
- dear_customer: Dear Customer,
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 atleast one variant.
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