spree_core 4.1.8 → 4.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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