spree_core 4.1.8 → 4.2.0.rc1

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