solidus_core 2.7.4 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_core might be problematic. Click here for more details.

Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -17
  3. data/app/assets/images/logo/solidus.svg +18 -0
  4. data/app/assets/javascripts/spree.js.erb +2 -2
  5. data/app/helpers/spree/base_helper.rb +1 -7
  6. data/app/helpers/spree/taxons_helper.rb +2 -2
  7. data/app/mailers/spree/carton_mailer.rb +4 -4
  8. data/app/models/spree/calculator/flat_percent_item_total.rb +4 -1
  9. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +5 -3
  10. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  11. data/app/models/spree/country.rb +8 -0
  12. data/app/models/spree/fulfilment_changer.rb +9 -1
  13. data/app/models/spree/gallery/product_gallery.rb +18 -0
  14. data/app/models/spree/gallery/variant_gallery.rb +21 -0
  15. data/app/models/spree/image.rb +11 -1
  16. data/app/models/spree/inventory_unit.rb +8 -0
  17. data/app/models/spree/line_item.rb +1 -1
  18. data/app/models/spree/order.rb +0 -4
  19. data/app/models/spree/order_cancellations.rb +31 -10
  20. data/app/models/spree/order_contents.rb +1 -5
  21. data/app/models/spree/order_inventory.rb +5 -4
  22. data/app/models/spree/product.rb +9 -0
  23. data/app/models/spree/product/scopes.rb +3 -4
  24. data/app/models/spree/promotion.rb +1 -6
  25. data/app/models/spree/promotion_handler/coupon.rb +15 -0
  26. data/app/models/spree/reimbursement.rb +21 -6
  27. data/app/models/spree/reimbursement_performer.rb +12 -6
  28. data/app/models/spree/reimbursement_type.rb +1 -1
  29. data/app/models/spree/reimbursement_type/credit.rb +5 -2
  30. data/app/models/spree/reimbursement_type/exchange.rb +1 -1
  31. data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
  32. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
  33. data/app/models/spree/reimbursement_type/store_credit.rb +18 -3
  34. data/app/models/spree/shipment.rb +11 -11
  35. data/app/models/spree/stock/allocator/base.rb +19 -0
  36. data/app/models/spree/stock/allocator/on_hand_first.rb +42 -0
  37. data/app/models/spree/stock/content_item.rb +1 -1
  38. data/app/models/spree/stock/inventory_units_finalizer.rb +47 -0
  39. data/app/models/spree/stock/location_sorter/base.rb +38 -0
  40. data/app/models/spree/stock/location_sorter/default_first.rb +15 -0
  41. data/app/models/spree/stock/location_sorter/unsorted.rb +14 -0
  42. data/app/models/spree/stock/simple_coordinator.rb +24 -10
  43. data/app/models/spree/stock_location.rb +2 -0
  44. data/app/models/spree/store_credit.rb +4 -12
  45. data/app/models/spree/store_credit_event.rb +2 -2
  46. data/app/models/spree/store_credit_reason.rb +11 -0
  47. data/app/models/spree/taxon.rb +8 -3
  48. data/app/models/spree/unit_cancel.rb +3 -0
  49. data/app/models/spree/variant.rb +18 -7
  50. data/config/initializers/money.rb +5 -0
  51. data/config/locales/en.yml +661 -527
  52. data/db/default/spree/store_credit.rb +1 -1
  53. data/db/default/spree/zones.rb +2 -2
  54. data/db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb +42 -0
  55. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +41 -0
  56. data/lib/generators/spree/dummy/templates/rails/test.rb +0 -3
  57. data/lib/generators/spree/install/install_generator.rb +2 -2
  58. data/lib/generators/spree/install/templates/config/initializers/spree.rb.tt +2 -2
  59. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +1 -1
  60. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +1 -1
  61. data/lib/solidus/migrations/promotions_with_code_handlers.rb +66 -0
  62. data/lib/spree/app_configuration.rb +20 -4
  63. data/lib/spree/core/controller_helpers/common.rb +1 -1
  64. data/lib/spree/core/stock_configuration.rb +12 -0
  65. data/lib/spree/core/version.rb +1 -1
  66. data/lib/spree/i18n.rb +4 -0
  67. data/lib/spree/money.rb +13 -11
  68. data/lib/spree/permission_sets.rb +0 -1
  69. data/lib/spree/permission_sets/promotion_management.rb +1 -0
  70. data/lib/spree/testing_support/dummy_app.rb +13 -2
  71. data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
  72. data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +1 -1
  73. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +5 -5
  74. data/lib/spree/testing_support/factories/{store_credit_update_reason_factory.rb → store_credit_reason_factory.rb} +1 -1
  75. data/lib/spree/testing_support/partial_double_verification.rb +13 -0
  76. data/lib/spree/testing_support/shared_examples/gallery.rb +18 -0
  77. data/spec/helpers/products_helper_spec.rb +10 -8
  78. data/spec/helpers/taxons_helper_spec.rb +3 -1
  79. data/spec/lib/i18n_spec.rb +5 -0
  80. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +6 -2
  81. data/spec/lib/spree/core/stock_configuration_spec.rb +19 -0
  82. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +14 -0
  83. data/spec/lib/spree/money_spec.rb +12 -13
  84. data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +136 -0
  85. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +10 -1
  86. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +18 -6
  87. data/spec/models/spree/calculator/tiered_percent_spec.rb +7 -1
  88. data/spec/models/spree/country_spec.rb +76 -0
  89. data/spec/models/spree/customer_return_spec.rb +2 -1
  90. data/spec/models/spree/fulfilment_changer_spec.rb +33 -0
  91. data/spec/models/spree/gallery/product_gallery_spec.rb +21 -0
  92. data/spec/models/spree/gallery/variant_gallery_spec.rb +21 -0
  93. data/spec/models/spree/inventory_unit_spec.rb +1 -4
  94. data/spec/models/spree/order/checkout_spec.rb +6 -6
  95. data/spec/models/spree/order/finalizing_spec.rb +1 -20
  96. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +2 -1
  97. data/spec/models/spree/order/updating_spec.rb +1 -1
  98. data/spec/models/spree/order_cancellations_spec.rb +55 -14
  99. data/spec/models/spree/order_inventory_spec.rb +12 -5
  100. data/spec/models/spree/order_merger_spec.rb +6 -3
  101. data/spec/models/spree/order_spec.rb +3 -7
  102. data/spec/models/spree/order_updater_spec.rb +3 -8
  103. data/spec/models/spree/payment/cancellation_spec.rb +4 -3
  104. data/spec/models/spree/payment_spec.rb +1 -17
  105. data/spec/models/spree/permission_sets/promotion_management_spec.rb +2 -0
  106. data/spec/models/spree/product_spec.rb +10 -1
  107. data/spec/models/spree/promotion_handler/coupon_spec.rb +62 -8
  108. data/spec/models/spree/promotion_spec.rb +24 -10
  109. data/spec/models/spree/refund_spec.rb +2 -1
  110. data/spec/models/spree/reimbursement_performer_spec.rb +5 -4
  111. data/spec/models/spree/reimbursement_spec.rb +26 -2
  112. data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -1
  113. data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -1
  114. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +2 -1
  115. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +14 -2
  116. data/spec/models/spree/return_item_spec.rb +1 -1
  117. data/spec/models/spree/shipment_spec.rb +20 -13
  118. data/spec/models/spree/shipping_calculator_spec.rb +13 -3
  119. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +146 -0
  120. data/spec/models/spree/stock/content_item_spec.rb +70 -0
  121. data/spec/models/spree/stock/estimator_spec.rb +5 -2
  122. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +34 -0
  123. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +20 -0
  124. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +19 -0
  125. data/spec/models/spree/stock/simple_coordinator_spec.rb +17 -0
  126. data/spec/models/spree/store_credit_event_spec.rb +12 -12
  127. data/spec/models/spree/store_credit_spec.rb +2 -2
  128. data/spec/models/spree/unit_cancel_spec.rb +20 -1
  129. data/spec/models/spree/variant_spec.rb +46 -24
  130. data/spec/spec_helper.rb +1 -0
  131. metadata +30 -9
  132. data/.yardopts +0 -1
  133. data/app/models/spree/store_credit_update_reason.rb +0 -4
  134. data/lib/spree/permission_sets/report_display.rb +0 -11
  135. data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +0 -14
  136. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -25
@@ -31,7 +31,7 @@ module Spree
31
31
  end
32
32
 
33
33
  def price
34
- variant.price
34
+ line_item.price
35
35
  end
36
36
 
37
37
  def amount
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Stock
5
+ # Service class to finalize inventory units, it means unstock the desired
6
+ # quantity from related stock item and updates the given inventory units to
7
+ # not be pending.
8
+ class InventoryUnitsFinalizer
9
+ # @attr_reader [Spree::InventoryUnit] inventory_units to be finalized
10
+ attr_reader :inventory_units
11
+
12
+ # @param [Spree::InventoryUnit] inventory_units to be finalized
13
+ def initialize(inventory_units)
14
+ @inventory_units = inventory_units
15
+ end
16
+
17
+ # Finalize the inventory units, unstock and mark them as not pending.
18
+ def run!
19
+ Spree::InventoryUnit.transaction do
20
+ unstock_inventory_units
21
+ finalize_inventory_units
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def finalize_inventory_units
28
+ inventory_units.map do |iu|
29
+ iu.update_columns(
30
+ pending: false,
31
+ updated_at: Time.current
32
+ )
33
+ end
34
+ end
35
+
36
+ def unstock_inventory_units
37
+ inventory_units.group_by(&:shipment_id).each_value do |inventory_units_for_shipment|
38
+ inventory_units_for_shipment.group_by(&:line_item_id).each_value do |units|
39
+ shipment = units.first.shipment
40
+ line_item = units.first.line_item
41
+ shipment.stock_location.unstock line_item.variant, inventory_units.count, shipment
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Stock
5
+ module LocationSorter
6
+ # Stock location sorters are used to determine the order in which
7
+ # inventory units will be allocated when packaging a shipment.
8
+ #
9
+ # This allows you, for example, to allocate inventory from the default
10
+ # stock location first.
11
+ #
12
+ # @abstract To implement your own location sorter, subclass and
13
+ # implement {#sort}.
14
+ class Base
15
+ # @!attribute [r] stock_locations
16
+ # @return [Enumerable<Spree::StockLocation>]
17
+ # a collection of locations to sort
18
+ attr_reader :stock_locations
19
+
20
+ # Initializes the stock location sorter.
21
+ #
22
+ # @param stock_locations [Enumerable<Spree::StockLocation>]
23
+ # a collection of locations to sort
24
+ def initialize(stock_locations)
25
+ @stock_locations = stock_locations
26
+ end
27
+
28
+ # Sorts the stock locations.
29
+ #
30
+ # @return [Enumerable<Spree::StockLocation>]
31
+ # a collection of sorted stock locations
32
+ def sort
33
+ raise NotImplementedError
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Stock
5
+ module LocationSorter
6
+ # This stock location sorter will give priority to the default stock
7
+ # location.
8
+ class DefaultFirst < Spree::Stock::LocationSorter::Base
9
+ def sort
10
+ stock_locations.order_default
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Stock
5
+ module LocationSorter
6
+ # This stock location sorter will leave the stock locations unsorted.
7
+ class Unsorted < Spree::Stock::LocationSorter::Base
8
+ def sort
9
+ stock_locations
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -11,6 +11,9 @@ module Spree
11
11
  # * Repeat but for backordered inventory
12
12
  # * Combine allocated and on hand inventory into a single shipment per-location
13
13
  #
14
+ # Allocation logic can be changed using a custom class (as
15
+ # configured in Spree::Config::stock_allocator_class )
16
+ #
14
17
  # After allocation, splitters are run on each Package (as configured in
15
18
  # Spree::Config.environment.stock_splitters)
16
19
  #
@@ -23,7 +26,7 @@ module Spree
23
26
  @order = order
24
27
  @inventory_units = inventory_units || InventoryUnitBuilder.new(order).units
25
28
  @splitters = Spree::Config.environment.stock_splitters
26
- @stock_locations = Spree::StockLocation.active
29
+ @stock_locations = Spree::Config.stock.location_sorter_class.new(Spree::StockLocation.active).sort
27
30
 
28
31
  @inventory_units_by_variant = @inventory_units.group_by(&:variant)
29
32
  @desired = Spree::StockQuantities.new(@inventory_units_by_variant.transform_values(&:count))
@@ -31,6 +34,8 @@ module Spree
31
34
  variants: @desired.variants,
32
35
  stock_locations: @stock_locations
33
36
  )
37
+
38
+ @allocator = Spree::Config.stock.allocator_class.new(@availability)
34
39
  end
35
40
 
36
41
  def shipments
@@ -40,13 +45,10 @@ module Spree
40
45
  private
41
46
 
42
47
  def build_shipments
43
- # Allocate any available on hand inventory
44
- on_hand_packages = allocate_inventory(@availability.on_hand_by_stock_location_id)
45
-
46
- # allocate any remaining desired inventory from backorders
47
- backordered_packages = allocate_inventory(@availability.backorderable_by_stock_location_id)
48
+ # Allocate any available on hand inventory and remaining desired inventory from backorders
49
+ on_hand_packages, backordered_packages, leftover = @allocator.allocate_inventory(@desired)
48
50
 
49
- unless @desired.empty?
51
+ unless leftover.empty?
50
52
  raise Spree::Order::InsufficientStock
51
53
  end
52
54
 
@@ -85,16 +87,28 @@ module Spree
85
87
  end
86
88
 
87
89
  def allocate_inventory(availability_by_location)
88
- availability_by_location.transform_values do |available|
90
+ sorted_availability = sort_availability(availability_by_location)
91
+
92
+ sorted_availability.transform_values do |available|
89
93
  # Find the desired inventory which is available at this location
90
94
  packaged = available & @desired
91
-
92
95
  # Remove found inventory from desired
93
96
  @desired -= packaged
94
-
95
97
  packaged
96
98
  end
97
99
  end
100
+ deprecate allocate_inventory: 'allocate_inventory is deprecated. Please write your own allocator defining' \
101
+ 'a Spree::Stock::Allocator::Base subclass', deprecator: Spree::Deprecation
102
+
103
+ def sort_availability(availability)
104
+ sorted_availability = availability.sort_by do |stock_location_id, _|
105
+ @stock_locations.find_index do |stock_location|
106
+ stock_location.id == stock_location_id
107
+ end
108
+ end
109
+
110
+ Hash[sorted_availability]
111
+ end
98
112
 
99
113
  def get_units(quantities)
100
114
  # Change our raw quantities back into inventory units
@@ -7,6 +7,8 @@ module Spree
7
7
  class StockLocation < Spree::Base
8
8
  class InvalidMovementError < StandardError; end
9
9
 
10
+ acts_as_list
11
+
10
12
  has_many :shipments
11
13
  has_many :stock_items, dependent: :delete_all, inverse_of: :stock_location
12
14
  has_many :cartons, inverse_of: :stock_location
@@ -18,8 +18,6 @@ class Spree::StoreCredit < Spree::PaymentSource
18
18
  ADJUSTMENT_ACTION = 'adjustment'
19
19
  INVALIDATE_ACTION = 'invalidate'
20
20
 
21
- DEFAULT_CREATED_BY_EMAIL = "spree@example.com"
22
-
23
21
  belongs_to :user, class_name: Spree::UserClassHandle.new
24
22
  belongs_to :created_by, class_name: Spree::UserClassHandle.new
25
23
  belongs_to :category, class_name: "Spree::StoreCreditCategory"
@@ -43,7 +41,7 @@ class Spree::StoreCredit < Spree::PaymentSource
43
41
  before_destroy :validate_no_amount_used
44
42
  validate :validate_no_amount_used, if: :discarded?
45
43
 
46
- attr_accessor :action, :action_amount, :action_originator, :action_authorization_code, :update_reason
44
+ attr_accessor :action, :action_amount, :action_originator, :action_authorization_code, :store_credit_reason
47
45
 
48
46
  extend Spree::DisplayMoney
49
47
  money_methods :amount, :amount_used, :amount_authorized
@@ -178,7 +176,7 @@ class Spree::StoreCredit < Spree::PaymentSource
178
176
  self.amount = amount
179
177
  self.action_amount = self.amount - previous_amount
180
178
  self.action = ADJUSTMENT_ACTION
181
- self.update_reason = reason
179
+ self.store_credit_reason = reason
182
180
  self.action_originator = user_performing_update
183
181
  save
184
182
  end
@@ -186,7 +184,7 @@ class Spree::StoreCredit < Spree::PaymentSource
186
184
  def invalidate(reason, user_performing_invalidation)
187
185
  if invalidateable?
188
186
  self.action = INVALIDATE_ACTION
189
- self.update_reason = reason
187
+ self.store_credit_reason = reason
190
188
  self.action_originator = user_performing_invalidation
191
189
  self.invalidated_at = Time.current
192
190
  save
@@ -196,12 +194,6 @@ class Spree::StoreCredit < Spree::PaymentSource
196
194
  end
197
195
  end
198
196
 
199
- class << self
200
- def default_created_by
201
- Spree.user_class.find_by(email: DEFAULT_CREATED_BY_EMAIL)
202
- end
203
- end
204
-
205
197
  private
206
198
 
207
199
  def create_credit_record(amount, action_attributes = {})
@@ -249,7 +241,7 @@ class Spree::StoreCredit < Spree::PaymentSource
249
241
  amount_remaining: amount_remaining,
250
242
  user_total_amount: user.available_store_credit_total(currency: currency),
251
243
  originator: action_originator,
252
- update_reason: update_reason
244
+ store_credit_reason: store_credit_reason
253
245
  })
254
246
  end
255
247
 
@@ -12,9 +12,9 @@ module Spree
12
12
 
13
13
  belongs_to :store_credit
14
14
  belongs_to :originator, polymorphic: true
15
- belongs_to :update_reason, class_name: "Spree::StoreCreditUpdateReason"
15
+ belongs_to :store_credit_reason, class_name: 'Spree::StoreCreditReason', inverse_of: :store_credit_events
16
16
 
17
- validates_presence_of :update_reason, if: :action_requires_reason?
17
+ validates_presence_of :store_credit_reason, if: :action_requires_reason?
18
18
 
19
19
  NON_EXPOSED_ACTIONS = [Spree::StoreCredit::ELIGIBLE_ACTION, Spree::StoreCredit::AUTHORIZE_ACTION]
20
20
 
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Spree::StoreCreditReason < Spree::Base
4
+ include Spree::NamedType
5
+
6
+ has_many :store_credit_events, inverse_of: :store_credit_reason
7
+
8
+ validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
9
+
10
+ scope :active, -> { where(active: true) }
11
+ end
@@ -104,9 +104,14 @@ module Spree
104
104
  # @return [String] this taxon's ancestors names followed by its own name,
105
105
  # separated by arrows
106
106
  def pretty_name
107
- ancestor_chain = ancestors.map(&:name)
108
- ancestor_chain << name
109
- ancestor_chain.join(" -> ")
107
+ if parent.present?
108
+ [
109
+ parent.pretty_name,
110
+ name
111
+ ].compact.join(" -> ")
112
+ else
113
+ name
114
+ end
110
115
  end
111
116
 
112
117
  # @see https://github.com/spree/spree/issues/3390
@@ -26,6 +26,9 @@ class Spree::UnitCancel < Spree::Base
26
26
  eligible: true,
27
27
  finalized: true
28
28
  )
29
+
30
+ inventory_unit.line_item.order.recalculate
31
+ adjustment
29
32
  end
30
33
 
31
34
  # This method is used by Adjustment#update to recalculate the cost.
@@ -72,14 +72,15 @@ module Spree
72
72
  autosave: true
73
73
 
74
74
  before_validation :set_cost_currency
75
- before_validation :set_price
76
- before_validation :build_vat_prices, if: -> { rebuild_vat_prices? || new_record? }
75
+ before_validation :set_price, if: -> { product && product.master }
76
+ before_validation :build_vat_prices, if: -> { rebuild_vat_prices? || new_record? && product }
77
77
 
78
+ validates :product, presence: true
78
79
  validate :check_price
79
80
 
80
81
  validates :cost_price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
81
82
  validates :price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
82
- validates_uniqueness_of :sku, allow_blank: true, unless: :deleted_at
83
+ validates_uniqueness_of :sku, allow_blank: true, if: :enforce_unique_sku?
83
84
 
84
85
  after_create :create_stock_items
85
86
  after_create :set_position
@@ -381,6 +382,7 @@ module Spree
381
382
  # not from this variant
382
383
  # @return [Spree::Image] the image to display
383
384
  def display_image(fallback: true)
385
+ Spree::Deprecation.warn('Spree::Variant#display_image is DEPRECATED. Choose an image from Spree::Variant#gallery instead')
384
386
  images.first || (fallback && product.variant_images.first) || Spree::Image.new
385
387
  end
386
388
 
@@ -394,6 +396,14 @@ module Spree
394
396
  end.flatten.compact
395
397
  end
396
398
 
399
+ # The gallery for the variant, which represents all the images
400
+ # associated with it
401
+ #
402
+ # @return [Spree::Gallery] the media for a variant
403
+ def gallery
404
+ @gallery ||= Spree::Config.variant_gallery_class.new(self)
405
+ end
406
+
397
407
  private
398
408
 
399
409
  def rebuild_vat_prices?
@@ -409,10 +419,7 @@ module Spree
409
419
 
410
420
  # Ensures a new variant takes the product master price when price is not supplied
411
421
  def set_price
412
- if price.nil? && Spree::Config[:require_master_price] && !is_master?
413
- raise 'No master variant found to infer price' unless product && product.master
414
- self.price = product.master.price
415
- end
422
+ self.price = product.master.price if price.nil? && Spree::Config[:require_master_price] && !is_master?
416
423
  end
417
424
 
418
425
  def check_price
@@ -450,6 +457,10 @@ module Spree
450
457
  def destroy_option_values_variants
451
458
  option_values_variants.destroy_all
452
459
  end
460
+
461
+ def enforce_unique_sku?
462
+ !deleted_at
463
+ end
453
464
  end
454
465
  end
455
466
 
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'money'
4
+
5
+ Money.locale_backend = :i18n
@@ -1,21 +1,24 @@
1
+ ---
1
2
  en:
2
3
  activemodel:
3
4
  attributes:
4
5
  spree/order_cancellations:
6
+ cancel: Cancel
5
7
  quantity: Quantity
6
- state: State
7
8
  shipment: Shipment
8
- cancel: Cancel
9
+ state: State
9
10
  errors:
10
11
  models:
11
12
  spree/fulfilment_changer:
12
13
  attributes:
13
- desired_shipment:
14
- can_not_transfer_within_same_shipment: can not be same as current shipment
15
- not_enough_stock_at_desired_location: not enough stock in desired stock location
16
14
  current_shipment:
15
+ can_not_have_backordered_inventory_units: has backordered inventory
16
+ units
17
17
  has_already_been_shipped: has already been shipped
18
- can_not_have_backordered_inventory_units: has backordered inventory units
18
+ desired_shipment:
19
+ can_not_transfer_within_same_shipment: can not be same as current shipment
20
+ not_enough_stock_at_desired_location: not enough stock in desired stock
21
+ location
19
22
  activerecord:
20
23
  attributes:
21
24
  spree/address:
@@ -29,11 +32,11 @@ en:
29
32
  zipcode: Zip Code
30
33
  spree/adjustment:
31
34
  adjustable: Adjustable
35
+ adjustment_reason_id: Reason
32
36
  amount: Amount
33
37
  label: Label
34
38
  name: Name
35
39
  state: State
36
- adjustment_reason_id: Reason
37
40
  spree/adjustment_reason:
38
41
  active: Active
39
42
  code: Code
@@ -60,8 +63,8 @@ en:
60
63
  states_required: States Required
61
64
  spree/credit_card:
62
65
  base: ''
63
- cc_type: Brand
64
66
  card_code: Card Code
67
+ cc_type: Brand
65
68
  expiration: Expiration
66
69
  month: Month
67
70
  name: Name
@@ -69,13 +72,13 @@ en:
69
72
  verification_value: Verification Value
70
73
  year: Year
71
74
  spree/customer_return:
75
+ created_at: Date/Time
76
+ name: Name
72
77
  number: Return Number
73
78
  pre_tax_total: Pre-Tax Total
79
+ reimbursement_status: Reimbursement status
74
80
  total: Total
75
81
  total_excluding_vat: Pre-Tax Total
76
- created_at: "Date/Time"
77
- reimbursement_status: Reimbursement status
78
- name: Name
79
82
  spree/image:
80
83
  alt: Alternative Text
81
84
  attachment: Filename
@@ -92,6 +95,8 @@ en:
92
95
  price: Price
93
96
  quantity: Quantity
94
97
  total: Total price
98
+ spree/log_entry:
99
+ details: Message
95
100
  spree/option_type:
96
101
  name: Name
97
102
  presentation: Presentation
@@ -105,7 +110,8 @@ en:
105
110
  canceled_at: Canceled at
106
111
  canceler_id: Canceler
107
112
  checkout_complete: Checkout Complete
108
- completed_at: Completed At
113
+ completed_at: Completed at
114
+ considered_risky: Risky
109
115
  coupon_code: Coupon Code
110
116
  created_at: Order Date
111
117
  email: Customer E-Mail
@@ -119,7 +125,6 @@ en:
119
125
  special_instructions: Special Instructions
120
126
  state: State
121
127
  total: Total
122
- considered_risky: Risky
123
128
  spree/order/bill_address:
124
129
  address1: Billing address street
125
130
  city: Billing address city
@@ -145,21 +150,23 @@ en:
145
150
  spree/payment_method:
146
151
  active: Active
147
152
  auto_capture: Auto Capture
153
+ available_to_admin: Available to Admin
154
+ available_to_users: Available to Users
148
155
  description: Description
149
156
  display_on: Display
150
157
  name: Name
151
158
  preference_source: Preference Source
152
159
  type: Type
153
160
  spree/price:
154
- currency: Currency
155
161
  amount: Price
162
+ currency: Currency
156
163
  is_default: Currently Valid
157
164
  spree/product:
158
165
  available_on: Available On
159
166
  cost_currency: Cost Currency
160
167
  cost_price: Cost Price
161
- description: Description
162
168
  depth: Depth
169
+ description: Description
163
170
  height: Height
164
171
  master_price: Master Price
165
172
  meta_description: Meta Description
@@ -197,34 +204,35 @@ en:
197
204
  description: Creates an adjustment on a line item based on quantity
198
205
  spree/promotion/actions/free_shipping:
199
206
  description: Makes all shipments for the order free
200
- spree/promotion/rules/item_total:
201
- description: Order total meets these criteria
202
207
  spree/promotion/rules/first_order:
203
208
  description: Must be the customer's first order
209
+ spree/promotion/rules/first_repeat_purchase_since:
210
+ description: Available only to user who have not purchased in a while
211
+ form_text: 'Apply this promotion to users whose last order was more than X
212
+ days ago: '
213
+ spree/promotion/rules/item_total:
214
+ description: Order total meets these criteria
204
215
  spree/promotion/rules/landing_page:
205
- description: Customer must have visited the specified page
216
+ description: Customer must have visited the specified page
217
+ spree/promotion/rules/nth_order:
218
+ description: Apply a promotion to every nth order a user has completed.
219
+ form_text: 'Apply this promotion on the users Nth order: '
206
220
  spree/promotion/rules/one_use_per_user:
207
- description: Only One Use Per User
221
+ description: Only one use per user
208
222
  spree/promotion/rules/option_value:
209
223
  description: Order includes specified product(s) with matching option value(s)
210
224
  spree/promotion/rules/product:
211
225
  description: Order includes specified product(s)
226
+ spree/promotion/rules/store:
227
+ description: Available only to the specified stores
228
+ spree/promotion/rules/taxon:
229
+ description: Order includes products with specified taxon(s)
212
230
  spree/promotion/rules/user:
213
231
  description: Available only to the specified users
214
232
  spree/promotion/rules/user_logged_in:
215
233
  description: Available only to logged in users
216
- spree/promotion/rules/taxon:
217
- description: Order includes products with specified taxon(s)
218
- spree/promotion/rules/nth_order:
219
- description: Apply a promotion to every nth order a user has completed.
220
- form_text: "Apply this promotion on the users Nth order: "
221
- spree/promotion/rules/first_repeat_purchase_since:
222
- description: Available only to user who have not purchased in a while
223
- form_text: "Apply this promotion to users whose last order was more than X days ago: "
224
234
  spree/promotion/rules/user_role:
225
235
  description: Order includes User with specified Role(s)
226
- spree/promotion/rules/store:
227
- description: Available only to the specified stores
228
236
  spree/promotion_category:
229
237
  name: Name
230
238
  spree/property:
@@ -236,50 +244,50 @@ en:
236
244
  refund_reason_id: Reason
237
245
  spree/refund_reason:
238
246
  active: Active
239
- name: Name
240
247
  code: Code
248
+ name: Name
241
249
  spree/reimbursement:
242
- created_at: "Date/Time"
250
+ created_at: Date/Time
243
251
  number: Number
244
252
  reimbursement_status: Status
245
253
  total: Total
246
254
  spree/reimbursement/credit:
247
255
  amount: Amount
248
256
  spree/reimbursement_type:
257
+ created_at: Date/Time
249
258
  name: Name
250
259
  type: Type
251
- created_at: "Date/Time"
252
260
  spree/return_authorization:
253
261
  amount: Amount
254
262
  pre_tax_total: Pre-Tax Total
255
263
  total_excluding_vat: Pre-Tax Total
256
264
  spree/return_item:
257
- acceptance_status: Acceptance status
258
- acceptance_status_errors: Acceptance errors
265
+ acceptance_status: Acceptance Status
266
+ acceptance_status_errors: Acceptance Errors
259
267
  amount: Amount Before Sales Tax
260
268
  charged: Charged
261
- exchange_variant: Exchange for
269
+ exchange_variant: Exchange For
262
270
  inventory_unit_state: State
263
- item_received?: "Item Received?"
271
+ item_received?: Item Received?
264
272
  override_reimbursement_type_id: Reimbursement Type Override
265
273
  preferred_reimbursement_type_id: Preferred Reimbursement Type
266
274
  reception_status: Reception Status
267
- resellable: "Resellable?"
275
+ resellable: Resellable?
268
276
  return_reason: Reason
269
277
  total: Total
270
278
  spree/return_reason:
271
- name: Name
272
279
  active: Active
273
- created_at: "Date/Time"
280
+ created_at: Date/Time
274
281
  memo: Memo
282
+ name: Name
275
283
  number: RMA Number
276
284
  state: State
277
285
  spree/role:
278
286
  name: Name
279
- spree/shipping_category:
280
- name: Name
281
287
  spree/shipment:
282
288
  tracking: Tracking Number
289
+ spree/shipping_category:
290
+ name: Name
283
291
  spree/shipping_method:
284
292
  admin_name: Internal Name
285
293
  carrier: Carrier
@@ -289,48 +297,22 @@ en:
289
297
  service_level: Service Level
290
298
  tracking_url: Tracking URL
291
299
  spree/shipping_rate:
300
+ amount: Amount
292
301
  label: Label
293
- tax_rate: Tax Rate
294
302
  shipping_rate: Shipping Rate
295
- amount: Amount
303
+ tax_rate: Tax Rate
296
304
  spree/state:
297
305
  abbr: Abbreviation
298
306
  name: Name
299
- spree/store:
300
- url: Site URL
301
- default: Default
302
- meta_description: Meta Description
303
- meta_keywords: Meta Keywords
304
- seo_title: Seo Title
305
- name: Site Name
306
- mail_from_address: Mail From Address
307
- cart_tax_country_iso: Tax Country for Empty Carts
308
- available_locales: Locales available in the storefront
309
- spree/store_credit:
310
- amount: Amount
311
- amount_authorized: Amount Authorized
312
- amount_credited: Amount Credited
313
- amount_used: Amount Used
314
- category_id: Credit Type
315
- created_at: Issued On
316
- created_by_id: Created By
317
- invalidated_at: Invalidated
318
- memo: Memo
319
- spree/store_credit_event:
320
- action: Action
321
- amount_remaining: Total Unused
322
- user_total_amount: Total Amount
323
- spree/store_credit_update_reason:
324
- name: Reason For Updating
325
307
  spree/stock_item:
326
308
  count_on_hand: Count On Hand
327
309
  spree/stock_location:
328
- admin_name: Internal Name
329
310
  active: Active
330
311
  address1: Street Address
331
312
  address2: Street Address (cont'd)
332
- backorderable_default: Backorderable default
333
- check_stock_on_transfer: Check stock on transfer
313
+ admin_name: Internal Name
314
+ backorderable_default: Backorderable Default
315
+ check_stock_on_transfer: Check Stock on Transfer
334
316
  city: City
335
317
  code: Code
336
318
  country_id: Country
@@ -339,7 +321,7 @@ en:
339
321
  internal_name: Internal Name
340
322
  name: Name
341
323
  phone: Phone
342
- propagate_all_variants: Propagate all variants
324
+ propagate_all_variants: Propagate All Variants
343
325
  restock_inventory: Restock Inventory
344
326
  state_id: State
345
327
  zipcode: Zip
@@ -347,18 +329,45 @@ en:
347
329
  originated_by: Originated By
348
330
  quantity: Quantity
349
331
  variant: Variant
332
+ spree/store:
333
+ available_locales: Locales Available in the Storefront
334
+ cart_tax_country_iso: Tax Country for Empty Carts
335
+ default: Default
336
+ default_currency: Default Currency
337
+ mail_from_address: Mail From Address
338
+ meta_description: Meta Description
339
+ meta_keywords: Meta Keywords
340
+ name: Site Name
341
+ seo_title: Seo Title
342
+ url: Site URL
343
+ spree/store_credit:
344
+ amount: Amount
345
+ amount_authorized: Amount Authorized
346
+ amount_credited: Amount Credited
347
+ amount_used: Amount Used
348
+ category_id: Credit Type
349
+ created_at: Issued On
350
+ created_by_id: Created By
351
+ invalidated_at: Invalidated
352
+ memo: Memo
353
+ spree/store_credit_event:
354
+ action: Action
355
+ amount_remaining: Total Unused
356
+ user_total_amount: Total Amount
357
+ spree/store_credit_update_reason:
358
+ name: Name
350
359
  spree/tax_category:
351
360
  description: Description
352
- name: Name
353
361
  is_default: Default
362
+ name: Name
354
363
  tax_code: Tax Code
355
364
  spree/tax_rate:
356
365
  amount: Rate
357
- included_in_price: Included In Price
366
+ expires_at: Expiration Date
367
+ included_in_price: Included in Price
358
368
  name: Name
359
- show_rate_in_label: Show Rate In Label
360
- starts_at: Start date
361
- expires_at: Expiration date
369
+ show_rate_in_label: Show Rate in Label
370
+ starts_at: Start Date
362
371
  spree/taxon:
363
372
  description: Description
364
373
  icon: Icon
@@ -371,14 +380,14 @@ en:
371
380
  spree/taxonomy:
372
381
  name: Name
373
382
  spree/tracker:
374
- analytics_id: Analytics ID
375
383
  active: Active
384
+ analytics_id: Analytics ID
376
385
  spree/user:
377
386
  email: Email
387
+ lifetime_value: Total spent
378
388
  password: Password
379
389
  password_confirmation: Password Confirmation
380
390
  spree_roles: Roles
381
- lifetime_value: Total spent
382
391
  spree/variant:
383
392
  cost_currency: Cost Currency
384
393
  cost_price: Cost Price
@@ -386,17 +395,100 @@ en:
386
395
  height: Height
387
396
  price: Price
388
397
  sku: SKU
389
- tax_category: Variant tax category
398
+ tax_category: Variant Tax Category
390
399
  weight: Weight
391
400
  width: Width
392
401
  spree/zone:
393
402
  description: Description
394
403
  name: Name
404
+ errors:
405
+ models:
406
+ spree/address:
407
+ attributes:
408
+ state:
409
+ does_not_match_country: does not match the country
410
+ spree/calculator/tiered_flat_rate:
411
+ attributes:
412
+ base:
413
+ keys_should_be_positive_number: Tier keys should all be numbers larger
414
+ than 0
415
+ preferred_tiers:
416
+ should_be_hash: should be a hash
417
+ spree/calculator/tiered_percent:
418
+ attributes:
419
+ base:
420
+ keys_should_be_positive_number: Tier keys should all be numbers larger
421
+ than 0
422
+ values_should_be_percent: Tier values should all be percentages between
423
+ 0% and 100%
424
+ preferred_tiers:
425
+ should_be_hash: should be a hash
426
+ spree/classification:
427
+ attributes:
428
+ taxon_id:
429
+ already_linked: is already linked to this product
430
+ spree/credit_card:
431
+ attributes:
432
+ base:
433
+ card_expired: Card has expired
434
+ expiry_invalid: Card expiration is invalid
435
+ spree/inventory_unit:
436
+ attributes:
437
+ base:
438
+ cannot_destroy_shipment_state: Cannot destroy an inventory unit for
439
+ a %{state} shipment
440
+ state:
441
+ cannot_destroy: Cannot destroy a %{state} inventory unit
442
+ spree/line_item:
443
+ attributes:
444
+ price:
445
+ not_a_number: is not valid
446
+ spree/price:
447
+ attributes:
448
+ currency:
449
+ invalid_code: is not a valid currency code
450
+ spree/promotion:
451
+ attributes:
452
+ apply_automatically:
453
+ disallowed_with_code: Disallowed for promotions with a code
454
+ disallowed_with_path: Disallowed for promotions with a path
455
+ spree/refund:
456
+ attributes:
457
+ amount:
458
+ greater_than_allowed: is greater than the allowed amount.
459
+ spree/reimbursement:
460
+ attributes:
461
+ base:
462
+ return_items_order_id_does_not_match: One or more of the return items
463
+ specified do not belong to the same order as the reimbursement.
464
+ spree/return_item:
465
+ attributes:
466
+ inventory_unit:
467
+ other_completed_return_item_exists: "%{inventory_unit_id} has already
468
+ been taken by return item %{return_item_id}"
469
+ reimbursement:
470
+ cannot_be_associated_unless_accepted: cannot be associated to a return
471
+ item that is not accepted.
472
+ spree/shipment:
473
+ attributes:
474
+ base:
475
+ cannot_remove_items_shipment_state: Cannot remove items from a %{state}
476
+ shipment
477
+ state:
478
+ cannot_destroy: Cannot destroy a %{state} shipment
479
+ spree/store:
480
+ attributes:
481
+ base:
482
+ cannot_destroy_default_store: Cannot destroy the default Store.
483
+ spree/user_address:
484
+ attributes:
485
+ user_id:
486
+ default_address_exists: already has a default address
487
+ spree/wallet_payment_source:
488
+ attributes:
489
+ payment_source:
490
+ has_to_be_payment_source_class: has to be a Spree::PaymentSource
395
491
  models:
396
- # LegacyUser maps to this model_name so we want to provide translations for it
397
- user:
398
- one: User
399
- other: Users
400
492
  spree/address:
401
493
  one: Address
402
494
  other: Addresses
@@ -436,12 +528,6 @@ en:
436
528
  spree/calculator/price_sack:
437
529
  one: Price Sack
438
530
  other: Price Sack
439
- spree/calculator/tiered_percent:
440
- one: Tiered Percent
441
- other: Tiered Percent
442
- spree/calculator/tiered_flat_rate:
443
- one: Tiered Flat Rate
444
- other: Tiered Flat Rate
445
531
  spree/calculator/returns/default_refund_amount:
446
532
  one: Default Refund Amount
447
533
  other: Default Refund Amount
@@ -449,17 +535,23 @@ en:
449
535
  one: Flat Percent
450
536
  other: Flat Percent
451
537
  spree/calculator/shipping/flat_rate:
452
- one: Flat rate
453
- other: Flat rate
538
+ one: Flat Rate
539
+ other: Flat Rate
454
540
  spree/calculator/shipping/flexi_rate:
455
- one: Flexible Rate per package item
456
- other: Flexible Rate per package item
541
+ one: Flexible Rate per Package Item
542
+ other: Flexible Rate per Package Item
457
543
  spree/calculator/shipping/per_item:
458
- one: Flat rate per package item
459
- other: Flat rate per package item
544
+ one: Flat Rate per Package Item
545
+ other: Flat Rate per Package Item
460
546
  spree/calculator/shipping/price_sack:
461
- one: Price sack
462
- other: Price sack
547
+ one: Price Sack
548
+ other: Price Sack
549
+ spree/calculator/tiered_flat_rate:
550
+ one: Tiered Flat Rate
551
+ other: Tiered Flat Rate
552
+ spree/calculator/tiered_percent:
553
+ one: Tiered Percent
554
+ other: Tiered Percent
463
555
  spree/country:
464
556
  one: Country
465
557
  other: Countries
@@ -505,10 +597,10 @@ en:
505
597
  spree/payment_method:
506
598
  one: Payment Method
507
599
  other: Payment Methods
508
- spree/payment_method/check: Check Payments
509
- spree/payment_method/store_credit: Store Credit Payments
510
600
  spree/payment_method/bogus_credit_card: Bogus Credit Card Payments
601
+ spree/payment_method/check: Check Payments
511
602
  spree/payment_method/simple_bogus_credit_card: Simple Bogus Credit Card Payments
603
+ spree/payment_method/store_credit: Store Credit Payments
512
604
  spree/price:
513
605
  one: Price
514
606
  other: Prices
@@ -524,28 +616,28 @@ en:
524
616
  spree/promotion/actions/create_adjustment: Create whole-order adjustment
525
617
  spree/promotion/actions/create_item_adjustments: Create per-line-item adjustment
526
618
  spree/promotion/actions/create_quantity_adjustments: Create per-quantity adjustment
527
- spree/promotion/actions/free_shipping: Free shipping
528
- spree/promotion/rules/first_order: First order
529
- spree/promotion/rules/item_total: Item total
619
+ spree/promotion/actions/free_shipping: Free Shipping
620
+ spree/promotion/rules/first_order: First Order
621
+ spree/promotion/rules/first_repeat_purchase_since: First Repeat Purchase Since
622
+ spree/promotion/rules/item_total: Item Total
530
623
  spree/promotion/rules/landing_page: Landing Page
624
+ spree/promotion/rules/nth_order: Nth Order
531
625
  spree/promotion/rules/one_use_per_user: One Use Per User
532
626
  spree/promotion/rules/option_value: Option Value(s)
533
627
  spree/promotion/rules/product: Product(s)
628
+ spree/promotion/rules/taxon: Taxon(s)
534
629
  spree/promotion/rules/user: User
535
630
  spree/promotion/rules/user_logged_in: User Logged In
536
- spree/promotion/rules/taxon: Taxon(s)
537
- spree/promotion/rules/nth_order: Nth Order
538
- spree/promotion/rules/first_repeat_purchase_since: First Repeat Purchase Since
539
631
  spree/promotion/rules/user_role: User Role(s)
540
632
  spree/promotion_category:
541
633
  one: Promotion Category
542
634
  other: Promotion Categories
543
- spree/promotion_code_batch:
544
- one: Promotion Code Batch
545
- other: Promotion Code Batches
546
635
  spree/promotion_code:
547
636
  one: Promotion Code
548
637
  other: Promotion Codes
638
+ spree/promotion_code_batch:
639
+ one: Promotion Code Batch
640
+ other: Promotion Code Batches
549
641
  spree/property:
550
642
  one: Property Type
551
643
  other: Property Types
@@ -586,12 +678,12 @@ en:
586
678
  spree/stock_item:
587
679
  one: Stock Item
588
680
  other: Stock Items
589
- spree/stock_movement:
590
- one: Stock Movement
591
- other: Stock Movements
592
681
  spree/stock_location:
593
682
  one: Stock Location
594
683
  other: Stock Locations
684
+ spree/stock_movement:
685
+ one: Stock Movement
686
+ other: Stock Movements
595
687
  spree/store:
596
688
  one: Store
597
689
  other: Stores
@@ -601,6 +693,9 @@ en:
601
693
  spree/store_credit_category:
602
694
  one: Category
603
695
  other: Categories
696
+ spree/store_credit_reason:
697
+ one: Store Credit Reason
698
+ other: Store Credit Reasons
604
699
  spree/tax_category:
605
700
  one: Tax Category
606
701
  other: Tax Categories
@@ -625,94 +720,14 @@ en:
625
720
  spree/zone:
626
721
  one: Zone
627
722
  other: Zones
628
- errors:
629
- models:
630
- spree/address:
631
- attributes:
632
- state:
633
- does_not_match_country: does not match the country
634
- spree/calculator/tiered_flat_rate:
635
- attributes:
636
- base:
637
- keys_should_be_positive_number: "Tier keys should all be numbers larger than 0"
638
- preferred_tiers:
639
- should_be_hash: "should be a hash"
640
- spree/calculator/tiered_percent:
641
- attributes:
642
- base:
643
- keys_should_be_positive_number: "Tier keys should all be numbers larger than 0"
644
- values_should_be_percent: "Tier values should all be percentages between 0% and 100%"
645
- preferred_tiers:
646
- should_be_hash: "should be a hash"
647
- spree/classification:
648
- attributes:
649
- taxon_id:
650
- already_linked: "is already linked to this product"
651
- spree/credit_card:
652
- attributes:
653
- base:
654
- card_expired: "Card has expired"
655
- expiry_invalid: "Card expiration is invalid"
656
- spree/inventory_unit:
657
- attributes:
658
- state:
659
- cannot_destroy: "Cannot destroy a %{state} inventory unit"
660
- base:
661
- cannot_destroy_shipment_state: "Cannot destroy an inventory unit for a %{state} shipment"
662
- spree/line_item:
663
- attributes:
664
- price:
665
- not_a_number: "is not valid"
666
- spree/price:
667
- attributes:
668
- currency:
669
- invalid_code: "is not a valid currency code"
670
- spree/promotion:
671
- attributes:
672
- apply_automatically:
673
- disallowed_with_code: Disallowed for promotions with a code
674
- disallowed_with_path: Disallowed for promotions with a path
675
- spree/refund:
676
- attributes:
677
- amount:
678
- greater_than_allowed: is greater than the allowed amount.
679
- spree/reimbursement:
680
- attributes:
681
- base:
682
- return_items_order_id_does_not_match: One or more of the return items specified do not belong to the same order as the reimbursement.
683
- spree/return_item:
684
- attributes:
685
- reimbursement:
686
- cannot_be_associated_unless_accepted: cannot be associated to a return item that is not accepted.
687
- inventory_unit:
688
- other_completed_return_item_exists: "%{inventory_unit_id} has already been taken by return item %{return_item_id}"
689
- spree/shipment:
690
- attributes:
691
- state:
692
- cannot_destroy: "Cannot destroy a %{state} shipment"
693
- base:
694
- cannot_remove_items_shipment_state: "Cannot remove items from a %{state} shipment"
695
- spree/store:
696
- attributes:
697
- base:
698
- cannot_destroy_default_store: Cannot destroy the default Store.
699
- spree/user_address:
700
- attributes:
701
- user_id:
702
- default_address_exists: "already has a default address"
703
- spree/wallet_payment_source:
704
- attributes:
705
- payment_source:
706
- has_to_be_payment_source_class: "has to be a Spree::PaymentSource"
707
- time:
708
- formats:
709
- solidus:
710
- long: '%B %d, %Y %-l:%M %p'
711
- short: "%b %-d '%y %-l:%M%P"
723
+ user:
724
+ one: User
725
+ other: Users
712
726
  devise:
713
727
  confirmations:
714
728
  confirmed: Your account was successfully confirmed. You are now signed in.
715
- send_instructions: You will receive an email with instructions about how to confirm your account in a few minutes.
729
+ send_instructions: You will receive an email with instructions about how to
730
+ confirm your account in a few minutes.
716
731
  failure:
717
732
  inactive: Your account was not activated yet.
718
733
  invalid: Invalid email or password.
@@ -723,25 +738,29 @@ en:
723
738
  unconfirmed: You have to confirm your account before continuing.
724
739
  mailer:
725
740
  confirmation_instructions:
726
- subject: Confirmation instructions
741
+ subject: Confirmation Instructions
727
742
  reset_password_instructions:
728
- subject: Reset password instructions
743
+ subject: Reset Password Instructions
729
744
  unlock_instructions:
730
745
  subject: Unlock Instructions
731
746
  oauth_callbacks:
732
- failure: "Could not authorize you from %{kind} because %{reason}."
747
+ failure: Could not authorize you from %{kind} because %{reason}.
733
748
  success: Successfully authorized from %{kind} account.
734
749
  unlocks:
735
- send_instructions: You will receive an email with instructions about how to unlock your account in a few minutes.
750
+ send_instructions: You will receive an email with instructions about how to
751
+ unlock your account in a few minutes.
736
752
  unlocked: Your account was successfully unlocked. You are now signed in.
737
753
  user_passwords:
738
754
  user:
739
755
  cannot_be_blank: Your password cannot be blank.
740
- send_instructions: You will receive an email with instructions about how to reset your password in a few minutes.
756
+ send_instructions: You will receive an email with instructions about how to
757
+ reset your password in a few minutes.
741
758
  updated: Your password was changed successfully. You are now signed in.
742
759
  user_registrations:
743
- destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon.
744
- inactive_signed_up: You have signed up successfully. However, we could not sign you in because your account is %{reason}.
760
+ destroyed: Bye! Your account was successfully cancelled. We hope to see you
761
+ again soon.
762
+ inactive_signed_up: You have signed up successfully. However, we could not sign
763
+ you in because your account is %{reason}.
745
764
  signed_up: Welcome! You have signed up successfully.
746
765
  updated: You updated your account successfully.
747
766
  user_sessions:
@@ -753,13 +772,13 @@ en:
753
772
  not_found: not found
754
773
  not_locked: was not locked
755
774
  not_saved:
756
- one: ! '1 error prohibited this %{resource} from being saved:'
757
- other: ! '%{count} errors prohibited this %{resource} from being saved:'
775
+ one: '1 error prohibited this %{resource} from being saved:'
776
+ other: "%{count} errors prohibited this %{resource} from being saved:"
758
777
  spree:
759
778
  abbreviation: Abbreviation
760
779
  accept: Accept
761
- acceptance_status: Acceptance status
762
780
  acceptance_errors: Acceptance errors
781
+ acceptance_status: Acceptance status
763
782
  accepted: Accepted
764
783
  account: Account
765
784
  account_updated: Account updated
@@ -785,7 +804,6 @@ en:
785
804
  activate: Activate
786
805
  active: Active
787
806
  add: Add
788
- added: Added
789
807
  add_action_of_type: Add action of type
790
808
  add_country: Add Country
791
809
  add_coupon_code: Add Coupon Code
@@ -796,15 +814,16 @@ en:
796
814
  add_option_value: Add Option Value
797
815
  add_product: Add Product
798
816
  add_product_properties: Add Product Properties
799
- add_variant_properties: Add Variant Properties
800
817
  add_rule_of_type: Add rule of type
801
818
  add_state: Add State
802
819
  add_stock: Add Stock
803
820
  add_stock_management: Add Stock Management
804
821
  add_taxon: Add taxon
805
822
  add_to_cart: Add To Cart
806
- add_to_stock_location: Add to location
823
+ add_to_stock_location: Select location to propagate stock
807
824
  add_variant: Add Variant
825
+ add_variant_properties: Add Variant Properties
826
+ added: Added
808
827
  adding_match: Adding match
809
828
  additional_item: Additional Item
810
829
  address1: Address
@@ -813,22 +832,20 @@ en:
813
832
  adjustment: Adjustment
814
833
  adjustment_amount: Amount
815
834
  adjustment_labels:
816
- line_item: '%{promotion} (%{promotion_name})'
817
- order: '%{promotion} (%{promotion_name})'
835
+ line_item: "%{promotion} (%{promotion_name})"
836
+ order: "%{promotion} (%{promotion_name})"
818
837
  tax_rates:
819
- sales_tax: '%{name}'
820
- vat: '%{name} (Included in Price)'
821
- sales_tax_with_rate: '%{name} %{amount}'
822
- vat_with_rate: '%{name} %{amount} (Included in Price)'
838
+ sales_tax: "%{name}"
839
+ sales_tax_with_rate: "%{name} %{amount}"
840
+ vat: "%{name} (Included in Price)"
841
+ vat_with_rate: "%{name} %{amount} (Included in Price)"
823
842
  adjustment_reasons: Adjustment Reasons
824
843
  adjustment_successfully_closed: Adjustment has been successfully closed!
825
844
  adjustment_successfully_opened: Adjustment has been successfully opened!
826
845
  adjustment_total: Adjustment Total
846
+ adjustment_type: Adjustment type
827
847
  adjustments: Adjustments
828
848
  admin:
829
- stores:
830
- form:
831
- no_cart_tax_country: "No taxes on carts without address"
832
849
  images:
833
850
  index:
834
851
  choose_files: Choose files to upload
@@ -838,81 +855,88 @@ en:
838
855
  payments:
839
856
  source_forms:
840
857
  storecredit:
841
- not_supported: "Creating store credit payments via the admin is not currently supported."
858
+ not_supported: Creating store credit payments via the admin is not currently
859
+ supported.
842
860
  prices:
843
- any_country: "Any Country"
861
+ any_country: Any Country
862
+ edit:
863
+ edit_price: Edit Price
844
864
  index:
845
865
  amount_greater_than: Amount greater than
846
866
  amount_less_than: Amount less than
847
867
  new_price: New Price
848
- edit:
849
- edit_price: Edit Price
850
868
  new:
851
869
  new_price: New Price
852
870
  promotions:
853
- form:
854
- starts_at_placeholder: Immediately
855
- expires_at_placeholder: Never
856
- activation: Activation
857
- general: General
871
+ actions:
872
+ calculator_label: Calculated by
873
+ activations_edit:
874
+ auto: All orders will attempt to use this promotion
875
+ multiple_codes_html: This promotion uses %{count} promotion codes
876
+ single_code_html: 'This promotion uses the promotion code: <code>%{code}</code>'
858
877
  activations_new:
859
878
  auto: Apply to all orders
860
879
  multiple_codes: Multiple promotion codes
861
880
  single_code: Single promotion code
862
- activations_edit:
863
- auto: All orders will attempt to use this promotion
864
- single_code_html: "This promotion uses the promotion code: <code>%{code}</code>"
865
- multiple_codes_html: "This promotion uses %{count} promotion codes"
866
- actions:
867
- calculator_label: Calculated by
881
+ form:
882
+ activation: Activation
883
+ expires_at_placeholder: Never
884
+ general: General
885
+ starts_at_placeholder: Immediately
868
886
  stock_locations:
869
887
  form:
888
+ address: Address
870
889
  general: General
871
890
  settings: Settings
872
- address: Address
873
891
  store_credits:
874
- add: "Add store credit"
892
+ add: Add store credit
875
893
  amount_authorized: Authorized
876
894
  amount_credited: Credited
877
895
  amount_used: Used
896
+ back_to_edit: Back to edit
897
+ back_to_store_credit_list: Store credit list
898
+ back_to_user_list: Back to user list
899
+ change_amount: Change amount
878
900
  created_at: Issued On
879
- back_to_edit: "Back to edit"
880
- back_to_user_list: "Back to user list"
881
- back_to_store_credit_list: "Store credit list"
882
- change_amount: "Change amount"
883
- created_by: "Created By"
901
+ created_by: Created By
884
902
  credit_type: Type
885
- memo: Memo
886
- current_balance: "Current balance:"
887
- edit: "Editing store credit"
888
- edit_amount: "Editing store credit amount"
889
- history: "Store credit history"
890
- invalidate_store_credit: "Invalidating store credit"
891
- invalidated: "Invalidated"
892
- issued_on: "Issued On"
893
- new: "New store credit"
894
- no_store_credit_selected: "No store credit was selected"
895
- payment_originator: "Payment - Order #%{order_number}"
896
- reason_for_updating: "Reason for updating"
897
- refund_originator: "Refund - Order #%{order_number}"
898
- resource_name: "store credits"
899
- user_originator: "User - %{email}"
900
- unable_to_create: "Unable to create store credit"
901
- unable_to_update: "Unable to update store credit"
902
- unable_to_delete: "Unable to delete store credit"
903
- unable_to_invalidate: "Unable to invalidate store credit"
904
- select_reason: "Select a reason for this store credit"
905
- select_amount_update_reason: "Select a reason for updating the amount"
906
- total_unused: "Total unused"
907
- type_html_header: "Credit Type"
908
- view: "View store credit"
903
+ current_balance: 'Current balance:'
904
+ edit: Editing store credit
905
+ edit_amount: Editing store credit amount
909
906
  errors:
910
- cannot_change_used_store_credit: "Store credit that has been claimed cannot be changed"
911
- cannot_be_modified: "cannot be modified"
912
- amount_used_cannot_be_greater: "cannot be greater than the credited amount"
913
907
  amount_authorized_exceeds_total_credit: " exceeds the available credit"
914
- amount_used_not_zero: "is greater than zero. Can not delete store credit"
915
- update_reason_required: "A reason for the change must be selected"
908
+ amount_used_cannot_be_greater: cannot be greater than the credited amount
909
+ amount_used_not_zero: is greater than zero. Can not delete store credit
910
+ cannot_be_modified: cannot be modified
911
+ cannot_change_used_store_credit: Store credit that has been claimed cannot
912
+ be changed
913
+ update_reason_required: A reason for the change must be selected
914
+ store_credit_reason_required: A reason for the change must be selected
915
+ history: Store credit history
916
+ invalidate_store_credit: Invalidating store credit
917
+ invalidated: Invalidated
918
+ issued_on: Issued On
919
+ memo: Memo
920
+ new: New store credit
921
+ no_store_credit_selected: No store credit was selected
922
+ payment_originator: 'Payment - Order #%{order_number}'
923
+ reason_for_updating: Reason for updating
924
+ refund_originator: 'Refund - Order #%{order_number}'
925
+ resource_name: store credits
926
+ select_amount_store_credit_reason: Select a reason for updating the amount
927
+ select_amount_update_reason: Select a reason for updating the amount
928
+ select_reason: Select a reason for this store credit
929
+ total_unused: Total unused
930
+ type_html_header: Credit Type
931
+ unable_to_create: Unable to create store credit
932
+ unable_to_delete: Unable to delete store credit
933
+ unable_to_invalidate: Unable to invalidate store credit
934
+ unable_to_update: Unable to update store credit
935
+ user_originator: User - %{email}
936
+ view: View store credit
937
+ stores:
938
+ form:
939
+ no_cart_tax_country: No taxes on carts without address
916
940
  tab:
917
941
  checkout: Refunds and Returns
918
942
  configuration: Configuration
@@ -922,10 +946,9 @@ en:
922
946
  overview: Overview
923
947
  payments: Payments
924
948
  products: Products
925
- promotions: Promotions
926
949
  promotion_categories: Promotion Categories
950
+ promotions: Promotions
927
951
  properties: Property Types
928
- reports: Reports
929
952
  rma: RMA
930
953
  settings: Settings
931
954
  shipping: Shipping
@@ -945,34 +968,37 @@ en:
945
968
  items: Items
946
969
  items_purchased: Items Purchased
947
970
  order_history: Order History
948
- order_num: "Order #"
971
+ order_num: 'Order #'
949
972
  orders: Orders
950
973
  store_credit: Store Credit
951
974
  user_information: User Information
952
975
  users:
976
+ edit:
977
+ api_access: API Access
978
+ clear_key: Clear key
979
+ confirm_clear_key: Are you sure you want to clear this user's API key? It
980
+ will invalidate the existing key.
981
+ confirm_regenerate_key: Are you sure you want to regenerate this user's
982
+ API key? It will invalidate the existing key.
983
+ generate_key: Generate API key
984
+ key: Key
985
+ no_key: No key
986
+ regenerate_key: Regenerate key
953
987
  user_page_actions:
954
988
  create_order: Create order for this user
955
- edit:
956
- api_access: "API Access"
957
- clear_key: "Clear key"
958
- confirm_clear_key: "Are you sure you want to clear this user's API key? It will invalidate the existing key."
959
- confirm_regenerate_key: "Are you sure you want to regenerate this user's API key? It will invalidate the existing key."
960
- generate_key: "Generate API key"
961
- key: "Key"
962
- no_key: "No key"
963
- regenerate_key: "Regenerate key"
964
989
  variants:
965
- table_filter:
966
- show_deleted: Show deleted variants
967
- new:
968
- new_variant: New variant
969
990
  edit:
970
991
  edit_variant: Edit Variant
971
992
  form:
972
993
  dimensions: Dimensions
973
- use_product_tax_category: Use Product Tax Category
974
994
  pricing: Pricing
975
- pricing_hint: These values are populated from the product details page and can be overridden below
995
+ pricing_hint: These values are populated from the product details page and
996
+ can be overridden below
997
+ use_product_tax_category: Use Product Tax Category
998
+ new:
999
+ new_variant: New Variant
1000
+ table_filter:
1001
+ show_deleted: Show Deleted Variants
976
1002
  administration: Administration
977
1003
  agree_to_privacy_policy: Agree to Privacy Policy
978
1004
  agree_to_terms_of_service: Agree to Terms of Service
@@ -995,8 +1021,8 @@ en:
995
1021
  and: and
996
1022
  apply_code: Apply Code
997
1023
  approve: Approve
998
- approver: Approver
999
1024
  approved_at: Approved at
1025
+ approver: Approver
1000
1026
  are_you_sure: Are you sure?
1001
1027
  are_you_sure_delete: Are you sure you want to delete this record?
1002
1028
  authorization_failure: Authorization Failure
@@ -1008,9 +1034,8 @@ en:
1008
1034
  avs_response: AVS Response
1009
1035
  back: Back
1010
1036
  back_end: Backend
1011
- backordered: Backordered
1012
- back_to_adjustments_list: Back To Adjustments List
1013
1037
  back_to_adjustment_reason_list: Back To Adjustment Reason List
1038
+ back_to_adjustments_list: Back To Adjustments List
1014
1039
  back_to_countries_list: Back To Countries List
1015
1040
  back_to_customer_return: Back To Customer Return
1016
1041
  back_to_customer_return_list: Back To Customer Return List
@@ -1021,12 +1046,12 @@ en:
1021
1046
  back_to_payment_methods_list: Back To Payment Methods List
1022
1047
  back_to_payments_list: Back To Payments List
1023
1048
  back_to_products_list: Back To Products List
1024
- back_to_promotions_list: Back To Promotions List
1025
1049
  back_to_promotion_categories_list: Back To Promotions Categories List
1050
+ back_to_promotions_list: Back To Promotions List
1026
1051
  back_to_properties_list: Back To Property Types List
1027
- back_to_reports_list: Back To Reports List
1028
1052
  back_to_refund_reason_list: Back To Refund Reason List
1029
1053
  back_to_reimbursement_type_list: Back To Reimbursement Type List
1054
+ back_to_reports_list: Back To Reports List
1030
1055
  back_to_return_authorizations_list: Back To RMA List
1031
1056
  back_to_rma_reason_list: Back To RMA Reason List
1032
1057
  back_to_shipping_categories: Back To Shipping Categories
@@ -1044,7 +1069,8 @@ en:
1044
1069
  back_to_zones_list: Back To Zones List
1045
1070
  backorderable: Backorderable
1046
1071
  backorderable_default: Backorderable default
1047
- backorderable_header: Back orderable
1072
+ backorderable_header: Back Orderable
1073
+ backordered: Backordered
1048
1074
  backorders_allowed: backorders allowed
1049
1075
  balance_due: Balance Due
1050
1076
  base_amount: Base Amount
@@ -1055,21 +1081,27 @@ en:
1055
1081
  both: Both
1056
1082
  calculated_reimbursements: Calculated Reimbursements
1057
1083
  calculator: Calculator
1058
- calculator_settings_warning: If you are changing the calculator type or preference source, you must save first before you can edit the calculator settings
1084
+ calculator_settings_warning: If you are changing the calculator type or preference
1085
+ source, you must save first before you can edit the calculator settings
1059
1086
  cancel: Cancel
1060
- cancel_inventory: 'Cancel Items'
1061
- canceled: canceled
1087
+ cancel_inventory: Cancel Items
1088
+ canceled: Canceled
1062
1089
  canceled_at: Canceled at
1063
1090
  canceler: Canceler
1064
1091
  cancellation: Cancellation
1065
- cannot_create_payment_without_payment_methods_html: You cannot create a payment for an order without any payment methods defined. %{link}
1066
1092
  cannot_create_payment_link: Please define some payment methods first.
1093
+ cannot_create_payment_without_payment_methods_html: You cannot create a payment
1094
+ for an order without any payment methods defined. %{link}
1067
1095
  cannot_create_returns: Cannot create returns as this order has no shipped units.
1068
- cannot_rebuild_shipments_order_completed: Cannot rebuild shipments for a completed order.
1069
- cannot_rebuild_shipments_shipments_not_pending: Cannot rebuild shipments for an order with non-pending shipments.
1070
1096
  cannot_perform_operation: Cannot perform requested operation
1071
- cannot_set_shipping_method_without_address: Cannot set shipping method until customer details are provided.
1072
- cannot_update_email: You do not have access to update this user's email address. <br />Please contact a superuser if you need to perform this action.
1097
+ cannot_rebuild_shipments_order_completed: Cannot rebuild shipments for a completed
1098
+ order.
1099
+ cannot_rebuild_shipments_shipments_not_pending: Cannot rebuild shipments for an
1100
+ order with non-pending shipments.
1101
+ cannot_set_shipping_method_without_address: Cannot set shipping method until customer
1102
+ details are provided.
1103
+ cannot_update_email: You do not have access to update this user's email address.
1104
+ <br />Please contact a superuser if you need to perform this action.
1073
1105
  capture: Capture
1074
1106
  capture_events: Capture events
1075
1107
  card_code: Card Code
@@ -1078,28 +1110,30 @@ en:
1078
1110
  card_type_is: Card type is
1079
1111
  cart: Cart
1080
1112
  cart_subtotal:
1081
- one: 'Subtotal (1 item)'
1082
- other: 'Subtotal (%{count} items)'
1113
+ one: Subtotal (1 item)
1114
+ other: Subtotal (%{count} items)
1083
1115
  carton_external_number: External Number
1084
- carton_orders: 'Other orders with Carton'
1116
+ carton_orders: Other orders with Carton
1085
1117
  categories: Categories
1086
1118
  category: Category
1119
+ character_limit: Limit of 255 characters
1087
1120
  charged: Charged
1088
1121
  check: Check
1089
1122
  check_stock_on_transfer: Check stock on transfer
1090
1123
  checkout: Checkout
1091
- choose_a_customer: Choose a customer
1092
- choose_a_taxon_to_sort_products_for: "Choose a taxon to sort products for"
1124
+ choose_a_customer: Choose a Customer
1125
+ choose_a_taxon_to_sort_products_for: Choose a taxon to sort products for
1093
1126
  choose_currency: Choose Currency
1094
1127
  choose_dashboard_locale: Choose Dashboard Locale
1095
- choose_location: Choose location
1096
- choose_promotion_action: Choose action
1097
- choose_promotion_rule: Choose rule
1098
- choose_reason: Choose reason
1128
+ choose_location: Choose Location
1129
+ choose_promotion_action: Choose Action
1130
+ choose_promotion_rule: Choose Rule
1131
+ choose_reason: Choose Reason
1099
1132
  city: City
1100
1133
  clear_cache: Clear Cache
1101
1134
  clear_cache_ok: Cache was flushed
1102
- clear_cache_warning: Clearing cache will temporarily reduce the performance of your store.
1135
+ clear_cache_warning: Clearing cache will temporarily reduce the performance of
1136
+ your store.
1103
1137
  clone: Clone
1104
1138
  close: Close
1105
1139
  closed: Closed
@@ -1117,9 +1151,11 @@ en:
1117
1151
  continue_shopping: Continue shopping
1118
1152
  cost_currency: Cost Currency
1119
1153
  cost_price: Cost Price
1120
- could_not_connect_to_jirafe: Could not connect to Jirafe to sync data. This will be automatically retried later.
1154
+ could_not_connect_to_jirafe: Could not connect to Jirafe to sync data. This will
1155
+ be automatically retried later.
1121
1156
  could_not_create_customer_return: Could not create customer return
1122
- could_not_create_stock_movement: There was a problem saving this stock movement. Please try again.
1157
+ could_not_create_stock_movement: There was a problem saving this stock movement.
1158
+ Please try again.
1123
1159
  count_on_hand: Count On Hand
1124
1160
  countries: Countries
1125
1161
  country: Country
@@ -1132,37 +1168,43 @@ en:
1132
1168
  US: United States of America
1133
1169
  coupon: Coupon
1134
1170
  coupon_code: Coupon code
1135
- coupon_code_already_applied: The coupon code has already been applied to this order
1171
+ coupon_code_already_applied: The coupon code has already been applied to this
1172
+ order
1136
1173
  coupon_code_applied: The coupon code was successfully applied to your order.
1137
- coupon_code_better_exists: The previously applied coupon code results in a better deal
1174
+ coupon_code_better_exists: The previously applied coupon code results in a better
1175
+ deal
1138
1176
  coupon_code_expired: The coupon code is expired
1139
1177
  coupon_code_max_usage: Coupon code usage limit exceeded
1140
1178
  coupon_code_not_eligible: This coupon code is not eligible for this order
1141
1179
  coupon_code_not_found: The coupon code you entered doesn't exist. Please try again.
1142
- coupon_code_unknown_error: This coupon code could not be applied to the cart at this time.
1143
- customer: Customer
1144
- customer_return: Customer Return
1145
- customer_returns: Customer Returns
1180
+ coupon_code_not_present: The coupon code you are trying to remove is not present
1181
+ on this order.
1182
+ coupon_code_removed: The coupon code was successfully removed from this order.
1183
+ coupon_code_unknown_error: This coupon code could not be applied to the cart at
1184
+ this time.
1146
1185
  create: Create
1147
1186
  create_a_new_account: Create a new account
1148
- create_reimbursement: Create reimbursement
1149
1187
  create_one: Create One.
1188
+ create_promotion_code: Create promotion code
1189
+ create_reimbursement: Create reimbursement
1150
1190
  created_at: Created At
1151
1191
  created_by: Created by
1152
1192
  created_successfully: Created successfully
1153
1193
  credit: Credit
1154
- credits: Credits
1155
1194
  credit_allowed: Credit Allowed
1156
1195
  credit_card: Credit Card
1157
1196
  credit_cards: Credit Cards
1158
1197
  credit_owed: Credit Owed
1198
+ credits: Credits
1159
1199
  currency: Currency
1160
1200
  currency_settings: Currency Settings
1161
1201
  current: Current
1162
- current_promotion_usage: ! 'Current Usage: %{count}'
1202
+ current_promotion_usage: 'Current Usage: %{count}'
1163
1203
  customer: Customer
1164
1204
  customer_details: Customer Details
1165
1205
  customer_details_updated: Customer Details Updated
1206
+ customer_return: Customer Return
1207
+ customer_returns: Customer Returns
1166
1208
  customer_search: Customer Search
1167
1209
  cut: Cut
1168
1210
  cvv_response: CVV Response
@@ -1170,8 +1212,10 @@ en:
1170
1212
  jirafe:
1171
1213
  app_id: App ID
1172
1214
  app_token: App Token
1173
- currently_unavailable: Jirafe is currently unavailable. Spree will automatically connect to Jirafe once it is available.
1174
- explanation: The fields below may already be populated if you chose to register with Jirafe from the admin dashboard.
1215
+ currently_unavailable: Jirafe is currently unavailable. Spree will automatically
1216
+ connect to Jirafe once it is available.
1217
+ explanation: The fields below may already be populated if you chose to register
1218
+ with Jirafe from the admin dashboard.
1175
1219
  header: Jirafe Analytics Settings
1176
1220
  site_id: Site ID
1177
1221
  token: Token
@@ -1180,14 +1224,15 @@ en:
1180
1224
  date_completed: Date Completed
1181
1225
  date_picker:
1182
1226
  first_day: 0
1183
- format: ! '%Y/%m/%d'
1227
+ format: "%Y/%m/%d"
1184
1228
  js_format: yy/mm/dd
1185
1229
  date_range: Date Range
1186
1230
  default: Default
1187
1231
  default_refund_amount: Default Refund Amount
1188
1232
  delete: Delete
1189
- deleted_variants_present: Some line items in this order have products that are no longer available.
1190
1233
  deleted_successfully: Deleted successfully
1234
+ deleted_variants_present: Some line items in this order have products that are
1235
+ no longer available.
1191
1236
  delivery: Delivery
1192
1237
  depth: Depth
1193
1238
  description: Description
@@ -1196,19 +1241,20 @@ en:
1196
1241
  destroy: Destroy
1197
1242
  details: Details
1198
1243
  discount_amount: Discount Amount
1244
+ discount_rules: Discount Rules
1199
1245
  dismiss_banner: No. Thanks! I'm not interested, do not display this message again
1200
1246
  display: Display
1201
- download_promotion_code_list: Download Code List
1247
+ download_promotion_codes_list: Download codes list
1202
1248
  edit: Edit
1203
- editing_country: Editing Country
1249
+ edit_refund_reason: Edit Refund Reason
1204
1250
  editing_adjustment_reason: Editing Adjustment Reason
1251
+ editing_country: Editing Country
1205
1252
  editing_option_type: Editing Option Type
1206
1253
  editing_payment_method: Editing Payment Method
1207
1254
  editing_product: Editing Product
1208
1255
  editing_promotion: Editing Promotion
1209
1256
  editing_promotion_category: Editing Promotion Category
1210
1257
  editing_property: Editing Property Type
1211
- edit_refund_reason: Edit Refund Reason
1212
1258
  editing_refund: Editing Refund
1213
1259
  editing_refund_reason: Editing Refund Reason
1214
1260
  editing_reimbursement: Editing Reimbursement
@@ -1226,16 +1272,25 @@ en:
1226
1272
  editing_zone: Editing Zone
1227
1273
  eligibility_errors:
1228
1274
  messages:
1229
- has_excluded_product: Your cart contains a product that prevents this coupon code from being applied.
1230
- has_excluded_taxon: Your cart contains a product from an excluded category that prevents this coupon code from being applied.
1231
- item_total_less_than: This coupon code can't be applied to orders less than %{amount}.
1232
- item_total_less_than_or_equal: This coupon code can't be applied to orders less than or equal to %{amount}.
1275
+ has_excluded_product: Your cart contains a product that prevents this coupon
1276
+ code from being applied.
1277
+ has_excluded_taxon: Your cart contains a product from an excluded category
1278
+ that prevents this coupon code from being applied.
1279
+ item_total_less_than: This coupon code can't be applied to orders less than
1280
+ %{amount}.
1281
+ item_total_less_than_or_equal: This coupon code can't be applied to orders
1282
+ less than or equal to %{amount}.
1233
1283
  limit_once_per_user: This coupon code can only be used once per user.
1234
- missing_product: This coupon code can't be applied because you don't have all of the necessary products in your cart.
1235
- missing_taxon: You need to add a product from all applicable categories before applying this coupon code.
1236
- no_applicable_products: You need to add an applicable product before applying this coupon code.
1237
- no_matching_taxons: You need to add a product from an applicable category before applying this coupon code.
1238
- no_user_or_email_specified: You need to login or provide your email before applying this coupon code.
1284
+ missing_product: This coupon code can't be applied because you don't have
1285
+ all of the necessary products in your cart.
1286
+ missing_taxon: You need to add a product from all applicable categories before
1287
+ applying this coupon code.
1288
+ no_applicable_products: You need to add an applicable product before applying
1289
+ this coupon code.
1290
+ no_matching_taxons: You need to add a product from an applicable category
1291
+ before applying this coupon code.
1292
+ no_user_or_email_specified: You need to login or provide your email before
1293
+ applying this coupon code.
1239
1294
  no_user_specified: You need to login before applying this coupon code.
1240
1295
  not_first_order: This coupon code can only be applied to your first order.
1241
1296
  email: Email
@@ -1247,13 +1302,15 @@ en:
1247
1302
  error: error
1248
1303
  errors:
1249
1304
  messages:
1250
- cannot_delete_finalized_stock_location: Stock Location cannot be destroyed if you have open stock transfers.
1305
+ cannot_delete_finalized_stock_location: Stock Location cannot be destroyed
1306
+ if you have open stock transfers.
1251
1307
  could_not_create_taxon: Could not create taxon
1252
1308
  no_payment_methods_available: No payment methods are configured for this environment
1253
- no_shipping_methods_available: No shipping methods available for selected location, please change your address and try again.
1309
+ no_shipping_methods_available: No shipping methods available for selected
1310
+ location, please change your address and try again.
1254
1311
  errors_prohibited_this_record_from_being_saved:
1255
1312
  one: 1 error prohibited this record from being saved
1256
- other: ! '%{count} errors prohibited this record from being saved'
1313
+ other: "%{count} errors prohibited this record from being saved"
1257
1314
  event: Event
1258
1315
  events:
1259
1316
  spree:
@@ -1269,55 +1326,28 @@ en:
1269
1326
  user:
1270
1327
  signup: User signup
1271
1328
  exceptions:
1272
- count_on_hand_setter: Cannot set count_on_hand manually, as it is set automatically by the recalculate_count_on_hand callback. Please use `update_column(:count_on_hand, value)` instead.
1273
- exchange_for: Exchange for
1329
+ count_on_hand_setter: Cannot set count_on_hand manually, as it is set automatically
1330
+ by the recalculate_count_on_hand callback. Please use `update_column(:count_on_hand,
1331
+ value)` instead.
1332
+ exchange_for: Exchange For
1274
1333
  excl: excl.
1334
+ existing_shipments: Existing shipments
1275
1335
  expected: Expected
1276
1336
  expected_items: Expected Items
1277
1337
  expiration: Expiration
1278
1338
  extension: Extension
1279
- existing_shipments: Existing shipments
1280
- hints:
1281
- spree/price:
1282
- country: "This determines in what country the price is valid.<br/>Default: Any Country"
1283
- master_variant: "Changing master variant prices will not change variant prices below, but will be used to populate all new variants"
1284
- options: "These options are used to create variants in the variants table. They can be changed in the variants tab"
1285
- spree/product:
1286
- available_on: "This sets the availability date for the product. If this value is not set, or it is set to a date in the future, then the product is not available on the storefront."
1287
- promotionable: "This determines whether or not promotions can apply to this product.<br/>Default: Checked"
1288
- shipping_category: "This determines what kind of shipping this product requires.<br/> Default: Default"
1289
- tax_category: "This determines what kind of taxation is applied to this product.<br/> Default: None"
1290
- spree/promotion:
1291
- starts_at: "This determines when the promotion can be applied to orders. <br/> If no value is specified, the promotion will be immediately available."
1292
- expires_at: "This determines when the promotion expires. <br/> If no value is specified, the promotion will never expire."
1293
- spree/stock_location:
1294
- active: "This determines whether stock from this location can be used when building packages.<br/> Default: Checked"
1295
- backorderable_default: "When checked, stock items in this location will default to allowing backorders.<br/> Default: Unchecked"
1296
- propagate_all_variants: "When checked, this will create a stock item for in this stock location.<br/> Default: Checked"
1297
- restock_inventory: "When checked, returned inventory can be added back to this location's stock levels.<br/> Default: checked"
1298
- fulfillable: "When unchecked, this indicates that items in this location don't require actual fulfilment. Stock will not be checked when shipping and emails will not be sent.<br/> Default: Checked"
1299
- check_stock_on_transfer: "When checked, inventory levels will be checked when performing stock transfers.<br/> Default: Checked"
1300
- spree/store:
1301
- cart_tax_country_iso: "This determines which country is used for taxes on carts (orders which don't yet have an address).<br/> Default: None."
1302
- available_locales: "This determines which locales are available for your customers to choose from in the storefront."
1303
- spree/variant:
1304
- tax_category: "This determines what kind of taxation is applied to this variant.<br/> Default: Use tax category of the product associated with this variant"
1305
- deleted: "Deleted Variant"
1306
- deleted_explanation: "This variant was deleted on %{date}."
1307
- deleted_explanation_with_replacement: "This variant was deleted on %{date}. It has since been replaced by another with the same SKU."
1308
- spree/tax_rate:
1309
- validity_period: "This determines the validity period within which the tax rate is valid and will be applied to eligible items. <br /> If no start date value is specified, the tax rate will be immediately available. <br /> If no expiration date value is specified, the tax rate will never expire"
1310
1339
  failed_payment_attempts: Failed Payment Attempts
1311
1340
  failure: Failure
1312
1341
  filename: Filename
1313
1342
  fill_in_customer_info: Please fill in customer info
1343
+ filter: Filter
1314
1344
  filter_results: Filter Results
1315
1345
  finalize: Finalize
1316
1346
  finalize_all_adjustments: Finalize All Adjustments
1317
- find_a_taxon: Find a Taxon
1318
1347
  finalized: Finalized
1319
1348
  finalized_at: Finalized at
1320
1349
  finalized_by: Finalized by
1350
+ find_a_taxon: Find a Taxon
1321
1351
  first_item: First Item
1322
1352
  first_name: First Name
1323
1353
  first_name_begins_with: First Name Begins With
@@ -1347,14 +1377,68 @@ en:
1347
1377
  price_diff_subtract_html: "(Subtract: %{amount_html})"
1348
1378
  hidden: hidden
1349
1379
  hide_out_of_stock: Hide out of stock
1380
+ hints:
1381
+ spree/price:
1382
+ country: 'This determines in what country the price is valid.<br/>Default:
1383
+ Any Country'
1384
+ master_variant: Changing master variant prices will not change variant prices
1385
+ below, but will be used to populate all new variants
1386
+ options: These options are used to create variants in the variants table.
1387
+ They can be changed in the variants tab
1388
+ spree/product:
1389
+ available_on: This sets the availability date for the product. If this value
1390
+ is not set, or it is set to a date in the future, then the product is not
1391
+ available on the storefront.
1392
+ promotionable: 'This determines whether or not promotions can apply to this
1393
+ product.<br/>Default: Checked'
1394
+ shipping_category: 'This determines what kind of shipping this product requires.<br/>
1395
+ Default: Default'
1396
+ tax_category: 'This determines what kind of taxation is applied to this product.<br/>
1397
+ Default: None'
1398
+ spree/promotion:
1399
+ expires_at: This determines when the promotion expires. <br/> If no value
1400
+ is specified, the promotion will never expire.
1401
+ starts_at: This determines when the promotion can be applied to orders. <br/>
1402
+ If no value is specified, the promotion will be immediately available.
1403
+ spree/stock_location:
1404
+ active: 'This determines whether stock from this location can be used when
1405
+ building packages.<br/> Default: Checked'
1406
+ backorderable_default: 'When checked, stock items in this location will default
1407
+ to allowing backorders.<br/> Default: Unchecked'
1408
+ check_stock_on_transfer: 'When checked, inventory levels will be checked when
1409
+ performing stock transfers.<br/> Default: Checked'
1410
+ fulfillable: 'When unchecked, this indicates that items in this location don''t
1411
+ require actual fulfilment. Stock will not be checked when shipping and emails
1412
+ will not be sent.<br/> Default: Checked'
1413
+ propagate_all_variants: 'When checked, this will create a stock item for in
1414
+ this stock location.<br/> Default: Checked'
1415
+ restock_inventory: 'When checked, returned inventory can be added back to
1416
+ this location''s stock levels.<br/> Default: checked'
1417
+ spree/store:
1418
+ available_locales: This determines which locales are available for your customers
1419
+ to choose from in the storefront.
1420
+ cart_tax_country_iso: 'This determines which country is used for taxes on
1421
+ carts (orders which don''t yet have an address).<br/> Default: None.'
1422
+ spree/tax_rate:
1423
+ validity_period: This determines the validity period within which the tax
1424
+ rate is valid and will be applied to eligible items. <br /> If no start
1425
+ date value is specified, the tax rate will be immediately available. <br
1426
+ /> If no expiration date value is specified, the tax rate will never expire
1427
+ spree/variant:
1428
+ deleted: Deleted Variant
1429
+ deleted_explanation: This variant was deleted on %{date}.
1430
+ deleted_explanation_with_replacement: This variant was deleted on %{date}.
1431
+ It has since been replaced by another with the same SKU.
1432
+ tax_category: 'This determines what kind of taxation is applied to this variant.<br/>
1433
+ Default: Use tax category of the product associated with this variant'
1350
1434
  home: Home
1351
1435
  i18n:
1352
1436
  available_locales: Available Locales
1353
1437
  fields: Fields
1354
1438
  language: Language
1355
1439
  localization_settings: Localization Settings
1356
- only_incomplete: Only incomplete
1357
1440
  only_complete: Only complete
1441
+ only_incomplete: Only incomplete
1358
1442
  select_locale: Select locale
1359
1443
  show_only: Show only
1360
1444
  supported_locales: Supported Locales
@@ -1365,21 +1449,25 @@ en:
1365
1449
  identifier: Identifier
1366
1450
  image: Image
1367
1451
  images: Images
1368
- implement_eligible_for_return: "Must implement #eligible_for_return? for your EligibilityValidator."
1369
- implement_requires_manual_intervention: "Must implement #requires_manual_intervention? for your EligibilityValidator."
1452
+ implement_eligible_for_return: 'Must implement #eligible_for_return? for your
1453
+ EligibilityValidator.'
1454
+ implement_requires_manual_intervention: 'Must implement #requires_manual_intervention?
1455
+ for your EligibilityValidator.'
1370
1456
  inactive: Inactive
1371
1457
  incl: incl.
1372
1458
  included_in_price: Included in Price
1373
- included_price_validation: cannot be selected unless you have set a Default Tax Zone
1459
+ included_price_validation: cannot be selected unless you have set a Default Tax
1460
+ Zone
1374
1461
  incomplete: Incomplete
1375
- info_product_has_multiple_skus: "This product has %{count} variants:"
1376
1462
  info_number_of_skus_not_shown:
1377
- one: "and one other"
1378
- other: "and %{count} others"
1463
+ one: and one other
1464
+ other: and %{count} others
1465
+ info_product_has_multiple_skus: 'This product has %{count} variants:'
1379
1466
  instructions_to_reset_password: Please enter your email on the form below
1380
1467
  insufficient_stock: Insufficient stock available, only %{on_hand} remaining
1381
1468
  insufficient_stock_for_order: Insufficient stock for order
1382
- insufficient_stock_lines_present: Some line items in this order have insufficient quantity.
1469
+ insufficient_stock_lines_present: Some line items in this order have insufficient
1470
+ quantity.
1383
1471
  intercept_email_address: Intercept Email Address
1384
1472
  intercept_email_instructions: Override email recipient and replace with this address.
1385
1473
  internal_name: Internal Name
@@ -1392,6 +1480,7 @@ en:
1392
1480
  inventory_adjustment: Inventory Adjustment
1393
1481
  inventory_canceled: Inventory canceled
1394
1482
  inventory_error_flash_for_insufficient_quantity: "%{names} became unavailable."
1483
+ inventory_error_flash_for_insufficient_shipment_quantity: "Quantity selected of %{unavailable_items} is not available. Still, items may be available from another stock location, please try again."
1395
1484
  inventory_not_available: Inventory not available for %{item}.
1396
1485
  inventory_state: Inventory State
1397
1486
  inventory_states:
@@ -1409,10 +1498,11 @@ en:
1409
1498
  operators:
1410
1499
  gt: greater than
1411
1500
  gte: greater than or equal to
1412
- items_cannot_be_shipped: We are unable to calculate shipping rates for the selected items.
1501
+ items_cannot_be_shipped: We are unable to calculate shipping rates for the selected
1502
+ items.
1413
1503
  items_in_rmas: Items in RMA's (Return Merchandise Authorizations)
1414
- items_to_be_reimbursed: Items to be reimbursed
1415
1504
  items_reimbursed: Items reimbursed
1505
+ items_to_be_reimbursed: Items to be reimbursed
1416
1506
  jirafe: Jirafe
1417
1507
  landing_page_rule:
1418
1508
  path: Path
@@ -1420,7 +1510,7 @@ en:
1420
1510
  last_name_begins_with: Last Name Begins With
1421
1511
  learn_more: Learn More
1422
1512
  lifetime_stats: Lifetime Stats
1423
- line_item_adjustments: "Line item adjustments"
1513
+ line_item_adjustments: Line item adjustments
1424
1514
  list: List
1425
1515
  listing_countries: Countries
1426
1516
  listing_orders: Orders
@@ -1432,8 +1522,7 @@ en:
1432
1522
  locale_changed: Locale Changed
1433
1523
  location: Location
1434
1524
  lock: Lock
1435
- log_entries: "Log Entries"
1436
- logs: "Logs"
1525
+ log_entries: Log Entries
1437
1526
  logged_in_as: Logged in as
1438
1527
  logged_in_succesfully: Logged in successfully
1439
1528
  logged_out: You have been logged out.
@@ -1442,14 +1531,17 @@ en:
1442
1531
  login_failed: Login authentication failed.
1443
1532
  login_name: Login
1444
1533
  logout: Logout
1534
+ logs: Logs
1445
1535
  look_for_similar_items: Look for similar items
1446
1536
  make_refund: Make refund
1447
- make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
1537
+ make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement
1538
+ amount is correct
1448
1539
  manage_promotion_categories: Manage Promotion Categories
1449
1540
  manage_stock: Store Stock
1450
- manual_intervention_required: Manual intervention required
1451
1541
  manage_variants: Manage Variants
1542
+ manual_intervention_required: Manual intervention required
1452
1543
  master_price: Master Price
1544
+ master_sku: Master SKU
1453
1545
  master_variant: Master Variant
1454
1546
  match_choices:
1455
1547
  all: All
@@ -1462,6 +1554,7 @@ en:
1462
1554
  meta_title: Meta Title
1463
1555
  metadata: Metadata
1464
1556
  minimal_amount: Minimal Amount
1557
+ modify_stock_count: Modify (+/-)
1465
1558
  month: Month
1466
1559
  more: More
1467
1560
  move_stock_between_locations: Move Stock Between Locations
@@ -1470,13 +1563,14 @@ en:
1470
1563
  name: Name
1471
1564
  name_on_card: Name on card
1472
1565
  name_or_sku: Name or SKU (enter at least first 4 characters of product name)
1473
- negative_movement_absent_item: Cannot create negative movement for absent stock item.
1566
+ negative_movement_absent_item: Cannot create negative movement for absent stock
1567
+ item.
1474
1568
  new: New
1475
1569
  new_adjustment: New Adjustment
1476
1570
  new_adjustment_reason: New Adjustment Reason
1571
+ new_country: New Country
1477
1572
  new_customer: New Customer
1478
1573
  new_customer_return: New Customer Return
1479
- new_country: New Country
1480
1574
  new_image: New Image
1481
1575
  new_option_type: New Option Type
1482
1576
  new_order: New Order
@@ -1490,16 +1584,17 @@ en:
1490
1584
  new_property: New Property Type
1491
1585
  new_refund: New Refund
1492
1586
  new_refund_reason: New Refund Reason
1493
- new_rma_reason: New RMA Reason
1494
1587
  new_return_authorization: New RMA
1588
+ new_rma_reason: New RMA Reason
1589
+ new_shipment_at_location: New shipment at location
1495
1590
  new_shipping_category: New Shipping Category
1496
1591
  new_shipping_method: New Shipping Method
1497
- new_shipment_at_location: New shipment at location
1498
1592
  new_state: New State
1499
1593
  new_stock_location: New Stock Location
1500
1594
  new_stock_movement: New Stock Movement
1501
- new_store_credit: New Store Credit
1502
1595
  new_store: New Store
1596
+ new_store_credit: New Store Credit
1597
+ new_store_credit_reason: New Store Credit Reason
1503
1598
  new_tax_category: New Tax Category
1504
1599
  new_tax_rate: New Tax Rate
1505
1600
  new_taxon: New Taxon
@@ -1512,23 +1607,24 @@ en:
1512
1607
  no_actions_added: No actions added
1513
1608
  no_images_found: No images found
1514
1609
  no_inventory_selected: No inventory selected
1610
+ no_option_values_on_product_html: This product has no associated option values.
1611
+ Add some to it through Option Types in the %{link}.
1515
1612
  no_orders_found: No orders found
1516
- no_option_values_on_product_html: "This product has no associated option values. Add some to it through Option Types in the %{link}."
1517
- no_payment_methods_found: No payment methods found
1518
1613
  no_payment_found: No payment found
1614
+ no_payment_methods_found: No payment methods found
1519
1615
  no_pending_payments: No pending payments
1520
1616
  no_products_found: No products found
1521
1617
  no_promotions_found: No promotions found
1618
+ no_resource: No %{resource} found.
1619
+ no_resource_found: No %{resource} found
1620
+ no_resource_found_html: No %{resource} found, %{add_one_link}!
1621
+ no_resource_found_link: Add One
1522
1622
  no_results: No results
1523
1623
  no_rules_added: No rules added
1524
- no_resource: 'No %{resource} found.'
1525
- no_resource_found_html: 'No %{resource} found, %{add_one_link}!'
1526
- no_resource_found_link: Add One
1527
- no_resource_found: ! 'No %{resource} found'
1528
- no_shipping_methods_found: No shipping methods found
1529
1624
  no_shipping_method_selected: No shipping method selected.
1530
- no_trackers_found: No Trackers Found
1625
+ no_shipping_methods_found: No shipping methods found
1531
1626
  no_stock_locations_found: No stock locations found
1627
+ no_trackers_found: No Trackers Found
1532
1628
  no_tracking_present: No tracking details provided.
1533
1629
  no_variants_found: No variants found.
1534
1630
  no_variants_found_try_again: No variants found. Try changing the search values.
@@ -1537,10 +1633,12 @@ en:
1537
1633
  normal_amount: Normal Amount
1538
1634
  not: not
1539
1635
  not_available: N/A
1540
- not_enough_stock: There is not enough inventory at the source location to complete this transfer.
1541
- not_found: ! '%{resource} is not found'
1636
+ not_enough_stock: There is not enough inventory at the source location to complete
1637
+ this transfer.
1638
+ not_found: "%{resource} is not found"
1542
1639
  note: Note
1543
- note_already_received_a_refund: "Note: This order has already received a refund. Make sure the above reimbursement amount is correct."
1640
+ note_already_received_a_refund: 'Note: This order has already received a refund. Make
1641
+ sure the above reimbursement amount is correct.'
1544
1642
  notice_messages:
1545
1643
  product_cloned: Product has been cloned
1546
1644
  product_deleted: Product has been deleted
@@ -1550,7 +1648,7 @@ en:
1550
1648
  variant_not_deleted: Variant could not be deleted
1551
1649
  num_orders: "# Orders"
1552
1650
  number: Number
1553
- number_of_codes: ! '%{count} codes'
1651
+ number_of_codes: "%{count} codes"
1554
1652
  on_hand: On Hand
1555
1653
  open: Open
1556
1654
  option_type: Option Type
@@ -1561,7 +1659,7 @@ en:
1561
1659
  optional: Optional
1562
1660
  options: Options
1563
1661
  or: or
1564
- or_over_price: ! '%{price} or over'
1662
+ or_over_price: "%{price} or over"
1565
1663
  order: Order
1566
1664
  order_adjustments: Order adjustments
1567
1665
  order_already_completed: Order is already completed
@@ -1574,22 +1672,25 @@ en:
1574
1672
  order_mailer:
1575
1673
  cancel_email:
1576
1674
  dear_customer: Dear Customer,
1577
- instructions: Your order has been CANCELED. Please retain this cancellation information for your records.
1675
+ instructions: Your order has been CANCELED. Please retain this cancellation
1676
+ information for your records.
1578
1677
  order_summary_canceled: Order Summary [CANCELED]
1579
1678
  subject: Cancellation of Order
1580
- subtotal: ! 'Subtotal:'
1581
- total: ! 'Order Total:'
1679
+ subtotal: 'Subtotal:'
1680
+ total: 'Order Total:'
1582
1681
  confirm_email:
1583
1682
  dear_customer: Dear Customer,
1584
- instructions: Please review and retain the following order information for your records.
1683
+ instructions: Please review and retain the following order information for
1684
+ your records.
1585
1685
  order_summary: Order Summary
1586
1686
  subject: Order Confirmation
1587
- subtotal: ! 'Subtotal:'
1687
+ subtotal: 'Subtotal:'
1588
1688
  thanks: Thank you for your business.
1589
- total: ! 'Order Total:'
1689
+ total: 'Order Total:'
1590
1690
  inventory_cancellation:
1591
1691
  dear_customer: Dear Customer,
1592
- instructions: Some items in your order have been CANCELED. Please retain this cancellation information for your records.
1692
+ instructions: Some items in your order have been CANCELED. Please retain
1693
+ this cancellation information for your records.
1593
1694
  order_summary_canceled: Canceled Items
1594
1695
  subject: Cancellation of Items
1595
1696
  order_mutex_admin_error: Order is being modified by someone else. Please try again.
@@ -1623,8 +1724,8 @@ en:
1623
1724
  package_from: package from
1624
1725
  pagination:
1625
1726
  next_page: next page &raquo;
1626
- previous_page: ! '&laquo; previous page'
1627
- truncate: ! '&hellip;'
1727
+ previous_page: "&laquo; previous page"
1728
+ truncate: "&hellip;"
1628
1729
  password: Password
1629
1730
  paste: Paste
1630
1731
  path: Path
@@ -1632,16 +1733,18 @@ en:
1632
1733
  payment: Payment
1633
1734
  payment_amount: Payment Amount
1634
1735
  payment_could_not_be_created: Payment could not be created.
1635
- payments_failed_count:
1636
- one: 1 Payment
1637
- other: '%{count} Payments'
1638
1736
  payment_identifier: Payment Identifier
1639
1737
  payment_information: Payment Information
1640
1738
  payment_method: Payment Method
1739
+ payment_method_not_supported: That payment method is unsupported. Please choose
1740
+ another one.
1741
+ payment_method_settings_warning: If you are changing the payment method type,
1742
+ you must save first before you can edit the payment method settings
1641
1743
  payment_methods: Payment Methods
1642
- payment_method_not_supported: That payment method is unsupported. Please choose another one.
1643
- payment_processing_failed: Payment could not be processed, please check the details you entered
1644
- payment_processor_choose_banner_text: If you need help choosing a payment processor, please visit
1744
+ payment_processing_failed: Payment could not be processed, please check the details
1745
+ you entered
1746
+ payment_processor_choose_banner_text: If you need help choosing a payment processor,
1747
+ please visit
1645
1748
  payment_processor_choose_link: our payments page
1646
1749
  payment_state: Payment State
1647
1750
  payment_states:
@@ -1650,39 +1753,43 @@ en:
1650
1753
  completed: Completed
1651
1754
  credit_owed: Credit owed
1652
1755
  failed: Failed
1756
+ invalid: Invalid
1653
1757
  paid: Paid
1654
1758
  pending: Pending
1655
1759
  processing: Processing
1656
1760
  void: Void
1657
- invalid: Invalid
1658
1761
  payment_updated: Payment Updated
1659
1762
  payments: Payments
1763
+ payments_failed_count:
1764
+ one: 1 Payment
1765
+ other: "%{count} Payments"
1766
+ pending: Pending
1660
1767
  percent: Percent
1661
1768
  percent_per_item: Percent Per Item
1662
1769
  permalink: Permalink
1663
- pending: Pending
1664
1770
  phone: Phone
1665
1771
  place_order: Place Order
1666
1772
  please_define_payment_methods: Please define some payment methods first.
1667
1773
  please_enter_reasonable_quantity: Please enter a reasonable quantity.
1668
1774
  populate_get_error: Something went wrong. Please try adding the item again.
1669
1775
  powered_by: Powered by
1670
- pre_tax_refund_amount: Pre-Tax Refund Amount
1671
1776
  pre_tax_amount: Pre-Tax Amount
1777
+ pre_tax_refund_amount: Pre-Tax Refund Amount
1672
1778
  pre_tax_total: Pre-Tax Total
1779
+ preference_source_none: "(custom)"
1780
+ preference_source_using: Using static preferences "%{name}"
1673
1781
  preferred_reimbursement_type: Preferred Reimbursement Type
1674
1782
  presentation: Presentation
1675
1783
  previous: Previous
1676
1784
  price: Price
1677
1785
  price_range: Price Range
1678
1786
  price_sack: Price Sack
1679
- preference_source_none: '(custom)'
1680
- preference_source_using: 'Using static preferences "%{name}"'
1681
1787
  process: Process
1682
1788
  product: Product
1683
1789
  product_details: Product Details
1684
1790
  product_has_no_description: This product has no description
1685
- product_not_available_in_this_currency: This product is not available in the selected currency.
1791
+ product_not_available_in_this_currency: This product is not available in the selected
1792
+ currency.
1686
1793
  product_properties: Product Properties
1687
1794
  product_rule:
1688
1795
  choose_products: Choose products
@@ -1695,34 +1802,35 @@ en:
1695
1802
  manual: Manually choose
1696
1803
  products: Products
1697
1804
  promotion: Promotion
1698
- promotionable: Promotable
1699
1805
  promotion_action: Promotion Action
1700
1806
  promotion_actions: Actions
1701
1807
  promotion_code_batch_mailer:
1702
- promotion_code_batch_finished:
1703
- subject: Promotion code batch finished
1704
- message: "All %{number_of_codes} codes have been created for promotion: "
1705
1808
  promotion_code_batch_errored:
1809
+ message: 'Promotion code batch errored (%{error}) for promotion: '
1706
1810
  subject: Promotion code batch errored
1707
- message: "Promotion code batch errored (%{error}) for promotion: "
1811
+ promotion_code_batch_finished:
1812
+ message: 'All %{number_of_codes} codes have been created for promotion: '
1813
+ subject: Promotion code batch finished
1708
1814
  promotion_code_batches:
1709
- errored: "Errored: %{error}"
1710
- finished: "All %{number_of_codes} codes have been created."
1711
- processing: "Processing: %{number_of_codes_processed} / %{number_of_codes}"
1815
+ errored: 'Errored: %{error}'
1816
+ finished: All %{number_of_codes} codes have been created.
1817
+ processing: 'Processing: %{number_of_codes_processed} / %{number_of_codes}'
1712
1818
  promotion_form:
1713
1819
  match_policies:
1714
1820
  all: Match all of these rules
1715
1821
  any: Match any of these rules
1716
1822
  promotion_rule: Promotion Rule
1717
- promotions: Promotions
1718
1823
  promotion_successfully_created: Promotion has been successfully created!
1719
- promotion_total_changed_before_complete: "One or more of the promotions on your order have become ineligible and were removed. Please check the new order amounts and try again."
1824
+ promotion_total_changed_before_complete: One or more of the promotions on your
1825
+ order have become ineligible and were removed. Please check the new order amounts
1826
+ and try again.
1720
1827
  promotion_uses: Promotion uses
1828
+ promotionable: Promotable
1829
+ promotions: Promotions
1721
1830
  propagate_all_variants: Propagate all variants
1722
1831
  properties: Property Types
1723
1832
  property: Property Type
1724
1833
  provider: Provider
1725
- payment_method_settings_warning: If you are changing the payment method type, you must save first before you can edit the payment method settings
1726
1834
  qty: Qty
1727
1835
  quantity: Quantity
1728
1836
  quantity_returned: Quantity Returned
@@ -1731,12 +1839,12 @@ en:
1731
1839
  ready_to_ship: Ready to ship
1732
1840
  reason: Reason
1733
1841
  receive: receive
1734
- received: Received
1735
1842
  receive_stock: Receive Stock
1843
+ received: Received
1736
1844
  received_items: Received Items
1737
1845
  received_successfully: Received Successfully
1738
1846
  receiving: Receiving
1739
- receiving_match: Receiving match
1847
+ receiving_match: Receiving Match
1740
1848
  reception_states:
1741
1849
  awaiting: Awaiting
1742
1850
  cancelled: Canceled
@@ -1755,13 +1863,22 @@ en:
1755
1863
  refund_reasons: Refund Reasons
1756
1864
  refunded_amount: Refunded Amount
1757
1865
  refunds: Refunds
1758
- refund_amount_must_be_greater_than_zero: Refund amount must be greater than zero
1759
1866
  register: Register
1760
1867
  registration: Registration
1761
1868
  reimburse: Reimburse
1762
1869
  reimbursed: Reimbursed
1763
1870
  reimbursement: Reimbursement
1764
- reimbursement_perform_failed: "Reimbursement could not be performed. Error: %{error}"
1871
+ reimbursement_mailer:
1872
+ reimbursement_email:
1873
+ days_to_send: You have %{days} days to send back any items awaiting exchange.
1874
+ dear_customer: Dear Customer,
1875
+ exchange_summary: Exchange Summary
1876
+ for: for
1877
+ instructions: Your reimbursement has been processed.
1878
+ refund_summary: Refund Summary
1879
+ subject: Reimbursement Notification
1880
+ total_refunded: 'Total refunded: %{total}'
1881
+ reimbursement_perform_failed: 'Reimbursement could not be performed. Error: %{error}'
1765
1882
  reimbursement_states:
1766
1883
  errored: Errored
1767
1884
  pending: Pending
@@ -1776,7 +1893,6 @@ en:
1776
1893
  remember_me: Remember me
1777
1894
  remove: Remove
1778
1895
  rename: Rename
1779
- reports: Reports
1780
1896
  resend: Resend
1781
1897
  reset_password: Reset my password
1782
1898
  response_code: Response Code
@@ -1785,30 +1901,24 @@ en:
1785
1901
  resumed: Resumed
1786
1902
  return: return
1787
1903
  return_authorization: Return Merchandise Authorization
1904
+ return_authorization_fire_error: Cannot perform this action on return merchandise
1905
+ authorization
1788
1906
  return_authorization_states:
1789
1907
  authorized: Authorized
1790
1908
  canceled: Canceled
1791
- return_authorizations: Return Merchandise Authorizations
1792
- return_authorization_fire_error: Cannot perform this action on return merchandise authorization
1793
1909
  return_authorization_updated: Return merchandise authorization updated
1910
+ return_authorizations: Return Merchandise Authorizations
1794
1911
  return_item_inventory_unit_ineligible: Return item's inventory unit must be shipped
1795
- return_item_inventory_unit_reimbursed: Return item's inventory unit is already reimbursed
1912
+ return_item_inventory_unit_reimbursed: Return item's inventory unit is already
1913
+ reimbursed
1796
1914
  return_item_order_not_completed: Return item's order must be completed
1797
1915
  return_item_rma_ineligible: Return item requires an RMA
1798
1916
  return_item_time_period_ineligible: Return item is outside the eligible time period
1799
1917
  return_items: Return Items
1800
- return_items_cannot_be_associated_with_multiple_orders: Return items cannot be associated with multiple orders.
1801
- return_items_cannot_be_created_for_inventory_units_that_are_already_awaiting_exchange: Return items cannot be created for inventory units that are already awaiting exchange.
1802
- reimbursement_mailer:
1803
- reimbursement_email:
1804
- days_to_send: ! 'You have %{days} days to send back any items awaiting exchange.'
1805
- dear_customer: Dear Customer,
1806
- exchange_summary: Exchange Summary
1807
- for: for
1808
- instructions: Your reimbursement has been processed.
1809
- refund_summary: Refund Summary
1810
- subject: Reimbursement Notification
1811
- total_refunded: ! 'Total refunded: %{total}'
1918
+ return_items_cannot_be_associated_with_multiple_orders: Return items cannot be
1919
+ associated with multiple orders.
1920
+ return_items_cannot_be_created_for_inventory_units_that_are_already_awaiting_exchange: Return
1921
+ items cannot be created for inventory units that are already awaiting exchange.
1812
1922
  return_number: Return Number
1813
1923
  return_quantity: Return Quantity
1814
1924
  return_reasons: Return Reasons
@@ -1839,7 +1949,7 @@ en:
1839
1949
  select_a_reason: Select a reason
1840
1950
  select_a_stock_location: Select a stock location
1841
1951
  select_stock: Select stock
1842
- selected_quantity_not_available: ! 'selected of %{item} is not available.'
1952
+ selected_quantity_not_available: selected of %{item} is not available.
1843
1953
  send_copy_of_all_mails_to: Send Copy of All Mails To
1844
1954
  send_mailer: Send Mailer
1845
1955
  send_mails_as: Send Mails As
@@ -1850,10 +1960,10 @@ en:
1850
1960
  ship_address: Ship Address
1851
1961
  ship_address_required: Valid shipping address required
1852
1962
  ship_total: Ship Total
1853
- shipped_at: Shipped At
1854
1963
  shipment: Shipment
1855
- shipment_adjustments: "Shipment adjustments"
1856
- shipment_details: "From %{stock_location} via %{shipping_method}"
1964
+ shipment_adjustments: Shipment adjustments
1965
+ shipment_date: Shipment date
1966
+ shipment_details: From %{stock_location} via %{shipping_method}
1857
1967
  shipment_mailer:
1858
1968
  shipped_email:
1859
1969
  dear_customer: Dear Customer,
@@ -1861,9 +1971,8 @@ en:
1861
1971
  shipment_summary: Shipment Summary
1862
1972
  subject: Shipment Notification
1863
1973
  thanks: Thank you for your business.
1864
- track_information: ! 'Tracking Information: %{tracking}'
1865
- track_link: ! 'Tracking Link: %{url}'
1866
- shipment_date: Shipment date
1974
+ track_information: 'Tracking Information: %{tracking}'
1975
+ track_link: 'Tracking Link: %{url}'
1867
1976
  shipment_number: Shipment Number
1868
1977
  shipment_numbers: Shipment numbers
1869
1978
  shipment_state: Shipment State
@@ -1874,17 +1983,18 @@ en:
1874
1983
  pending: Pending
1875
1984
  ready: Ready
1876
1985
  shipped: Shipped
1877
- shipment_transfer_success: 'Variants successfully transferred'
1878
- shipment_transfer_error: 'There was an error transferring variants'
1986
+ shipment_transfer_error: There was an error transferring variants
1987
+ shipment_transfer_success: Variants successfully transferred
1879
1988
  shipments: Shipments
1880
1989
  shipped: Shipped
1990
+ shipped_at: Shipped At
1881
1991
  shipping: Shipping
1882
1992
  shipping_address: Shipping Address
1883
1993
  shipping_categories: Shipping Categories
1884
1994
  shipping_category: Shipping Category
1885
- shipping_flat_rate_per_item: Flat rate per package item
1886
- shipping_flat_rate_per_order: Flat rate
1887
- shipping_flexible_rate: Flexible Rate per package item
1995
+ shipping_flat_rate_per_item: Flat Rate per Package Item
1996
+ shipping_flat_rate_per_order: Flat Rate
1997
+ shipping_flexible_rate: Flexible Rate per Package Item
1888
1998
  shipping_instructions: Shipping Instructions
1889
1999
  shipping_method: Shipping Method
1890
2000
  shipping_methods: Shipping Methods
@@ -1896,7 +2006,7 @@ en:
1896
2006
  shipping_rate_tax:
1897
2007
  label:
1898
2008
  sales_tax: "+ %{amount} %{tax_rate_name}"
1899
- vat: "incl. %{amount} %{tax_rate_name}"
2009
+ vat: incl. %{amount} %{tax_rate_name}
1900
2010
  shipping_total: Shipping total
1901
2011
  shop_by_taxonomy: Shop by %{taxonomy}
1902
2012
  shopping_cart: Shopping Cart
@@ -1915,9 +2025,11 @@ en:
1915
2025
  special_instructions: Special Instructions
1916
2026
  split: Split
1917
2027
  split_failed: Unable to complete split
1918
- spree_gateway_error_flash_for_checkout: There was a problem with your payment information. Please check your information and try again.
2028
+ spree_gateway_error_flash_for_checkout: There was a problem with your payment
2029
+ information. Please check your information and try again.
1919
2030
  ssl:
1920
- change_protocol: "Please switch to using HTTP (rather than HTTPS) and retry this request."
2031
+ change_protocol: Please switch to using HTTP (rather than HTTPS) and retry this
2032
+ request.
1921
2033
  start: Start
1922
2034
  state: State
1923
2035
  state_based: State Based
@@ -1927,50 +2039,54 @@ en:
1927
2039
  other: "%{count} States"
1928
2040
  states_required: States Required
1929
2041
  status: Status
2042
+ stock: Stock
1930
2043
  stock_location: Stock Location
1931
2044
  stock_location_info: Stock location info
1932
2045
  stock_locations: Stock Locations
1933
- stock_locations_need_a_default_country: You must create a default country before creating a stock location.
2046
+ stock_locations_need_a_default_country: You must create a default country before
2047
+ creating a stock location.
1934
2048
  stock_management: Product Stock
1935
- stock_management_requires_a_stock_location: Please create a stock location in order to manage stock.
2049
+ stock_management_requires_a_stock_location: Please create a stock location in
2050
+ order to manage stock.
1936
2051
  stock_movements: Stock Movements
1937
2052
  stock_movements_for_stock_location: Stock Movements for %{stock_location_name}
1938
2053
  stock_not_below_zero: Stock must not be below zero.
1939
2054
  stock_successfully_transferred: Stock was successfully transferred between locations.
1940
- stock: Stock
1941
2055
  stop: Stop
1942
2056
  store: Store
1943
2057
  store_credit:
1944
2058
  actions:
1945
2059
  invalidate: Invalidate
1946
- credit_allocation_memo: "This is a credit from store credit ID %{id}"
1947
- currency_mismatch: "Store credit currency does not match order currency"
2060
+ credit_allocation_memo: This is a credit from store credit ID %{id}
2061
+ currency_mismatch: Store credit currency does not match order currency
1948
2062
  display_action:
1949
2063
  adjustment: Adjustment
2064
+ admin:
2065
+ authorize: Authorized
2066
+ eligible: Eligibility Verified
2067
+ void: Voided
1950
2068
  allocation: Added
1951
2069
  capture: Used
1952
2070
  credit: Credit
1953
2071
  invalidate: Invalidated
1954
2072
  void: Credit
1955
- admin:
1956
- authorize: "Authorized"
1957
- eligible: "Eligibility Verified"
1958
- void: "Voided"
1959
2073
  errors:
1960
- unable_to_fund: "Unable to pay for order using store credits"
1961
- cannot_invalidate_uncaptured_authorization: "Cannot invalidate a store credit with an uncaptured authorization"
2074
+ cannot_invalidate_uncaptured_authorization: Cannot invalidate a store credit
2075
+ with an uncaptured authorization
2076
+ unable_to_fund: Unable to pay for order using store credits
1962
2077
  expiring: Expiring
1963
- insufficient_authorized_amount: "Unable to capture more than authorized amount"
1964
- insufficient_funds: "Store credit amount remaining is not sufficient"
2078
+ insufficient_authorized_amount: Unable to capture more than authorized amount
2079
+ insufficient_funds: Store credit amount remaining is not sufficient
1965
2080
  non_expiring: Non-expiring
1966
- select_one_store_credit: "Select store credit to go towards remaining balance"
2081
+ select_one_store_credit: Select store credit to go towards remaining balance
1967
2082
  store_credit: Store Credit
1968
- successful_action: "Successful store credit %{action}"
1969
- unable_to_credit: "Unable to credit code: %{auth_code}"
1970
- unable_to_void: "Unable to void code: %{auth_code}"
1971
- unable_to_find: "Could not find store credit"
1972
- unable_to_find_for_action: "Could not find store credit for auth code: %{auth_code} for action: %{action}"
1973
- user_has_no_store_credits: "User does not have any available store credit"
2083
+ successful_action: Successful store credit %{action}
2084
+ unable_to_credit: 'Unable to credit code: %{auth_code}'
2085
+ unable_to_find: Could not find store credit
2086
+ unable_to_find_for_action: 'Could not find store credit for auth code: %{auth_code}
2087
+ for action: %{action}'
2088
+ unable_to_void: 'Unable to void code: %{auth_code}'
2089
+ user_has_no_store_credits: User does not have any available store credit
1974
2090
  store_credit_category:
1975
2091
  default: Default
1976
2092
  store_rule:
@@ -1980,17 +2096,18 @@ en:
1980
2096
  subtotal: Subtotal
1981
2097
  subtract: Subtract
1982
2098
  success: Success
1983
- successfully_created: ! '%{resource} has been successfully created!'
1984
- successfully_refunded: ! '%{resource} has been successfully refunded!'
1985
- successfully_removed: ! '%{resource} has been successfully removed!'
2099
+ successfully_created: "%{resource} has been successfully created!"
2100
+ successfully_refunded: "%{resource} has been successfully refunded!"
2101
+ successfully_removed: "%{resource} has been successfully removed!"
1986
2102
  successfully_signed_up_for_analytics: Successfully signed up for Spree Analytics
1987
- successfully_updated: ! '%{resource} has been successfully updated!'
2103
+ successfully_updated: "%{resource} has been successfully updated!"
1988
2104
  tax: Tax
1989
- tax_included: "Tax (incl.)"
1990
2105
  tax_categories: Tax Categories
1991
2106
  tax_category: Tax Category
1992
2107
  tax_code: Tax Code
1993
- tax_rate_amount_explanation: Tax rates are a decimal amount to aid in calculations, (i.e. if the tax rate is 5% then enter 0.05)
2108
+ tax_included: Tax (incl.)
2109
+ tax_rate_amount_explanation: Tax rates are a decimal amount to aid in calculations,
2110
+ (i.e. if the tax rate is 5% then enter 0.05)
1994
2111
  tax_rates: Tax Rates
1995
2112
  taxon: Taxon
1996
2113
  taxon_edit: Edit Taxon
@@ -2004,8 +2121,10 @@ en:
2004
2121
  taxonomies: Taxonomies
2005
2122
  taxonomy: Taxonomy
2006
2123
  taxonomy_edit: Edit taxonomy
2007
- taxonomy_tree_error: The requested change has not been accepted and the tree has been returned to its previous state, please try again.
2008
- taxonomy_tree_instruction: ! '* Right click a child in the tree to access the menu for adding, deleting or sorting a child.'
2124
+ taxonomy_tree_error: The requested change has not been accepted and the tree has
2125
+ been returned to its previous state, please try again.
2126
+ taxonomy_tree_instruction: "* Right click a child in the tree to access the menu
2127
+ for adding, deleting or sorting a child."
2009
2128
  taxons: Taxons
2010
2129
  test: Test
2011
2130
  test_mailer:
@@ -2014,22 +2133,25 @@ en:
2014
2133
  message: If you have received this email, then your email settings are correct.
2015
2134
  subject: Test Mail
2016
2135
  test_mode: Test Mode
2017
- thank_you_for_your_order: Thank you for your business. Please print out a copy of this confirmation page for your records.
2018
- there_are_no_items_for_this_order: There are no items for this order. Please add an item to the order to continue.
2019
- there_were_problems_with_the_following_fields: There were problems with the following fields
2136
+ thank_you_for_your_order: Thank you for your business. Please print out a copy
2137
+ of this confirmation page for your records.
2138
+ there_are_no_items_for_this_order: There are no items for this order. Please add
2139
+ an item to the order to continue.
2140
+ there_were_problems_with_the_following_fields: There were problems with the following
2141
+ fields
2020
2142
  this_order_has_already_received_a_refund: This order has already received a refund
2021
2143
  thumbnail: Thumbnail
2022
- tiers: Tiers
2023
2144
  tiered_flat_rate: Tiered Flat Rate
2024
2145
  tiered_percent: Tiered Percent
2146
+ tiers: Tiers
2025
2147
  time: Time
2026
2148
  to: to
2027
2149
  to_add_variants_you_must_first_define: To add variants, you must first define
2028
2150
  total: Total
2029
2151
  total_excluding_vat: Pre-Tax Total
2030
- total_per_item: Total per item
2152
+ total_per_item: Total per Item
2031
2153
  total_pre_tax_refund: Total Pre-Tax Refund
2032
- total_price: Total price
2154
+ total_price: Total Price
2033
2155
  total_sales: Total Sales
2034
2156
  track_inventory: Track Inventory
2035
2157
  tracking: Tracking
@@ -2039,23 +2161,24 @@ en:
2039
2161
  tracking_url_placeholder: e.g. http://quickship.com/package?num=:tracking
2040
2162
  transaction_id: Transaction ID
2041
2163
  transfer_from_location: Transfer From
2164
+ transfer_number: Transfer Number
2042
2165
  transfer_stock: Transfer Stock
2043
2166
  transfer_to_location: Transfer To
2044
- transfer_number: Transfer Number
2045
2167
  tree: Tree
2046
2168
  try_changing_search_values: Try changing the search values.
2047
2169
  type: Type
2048
2170
  type_to_search: Type to search
2049
- unable_to_find_all_inventory_units: Unable to find all specified inventory units
2050
2171
  unable_to_connect_to_gateway: Unable to connect to gateway.
2051
- unable_to_create_reimbursements: Unable to create reimbursements because there are items pending manual intervention.
2052
- unfinalize_all_adjustments: Unfinalize All Adjustments
2172
+ unable_to_create_reimbursements: Unable to create reimbursements because there
2173
+ are items pending manual intervention.
2174
+ unable_to_find_all_inventory_units: Unable to find all specified inventory units
2053
2175
  under_price: Under %{price}
2176
+ unfinalize_all_adjustments: Unfinalize All Adjustments
2054
2177
  unlock: Unlock
2055
- unrecognized_card_type: Unrecognized card type
2178
+ unrecognized_card_type: Unrecognized Card Type
2056
2179
  unshippable_items: Unshippable Items
2057
2180
  update: Update
2058
- updated_successfully: Updated successfully
2181
+ updated_successfully: Updated Successfully
2059
2182
  updating: Updating
2060
2183
  usage_limit: Usage Limit
2061
2184
  use_app_default: Use App Default
@@ -2064,45 +2187,56 @@ en:
2064
2187
  use_new_cc: Use a new card
2065
2188
  use_new_cc_or_payment_method: Use a new card / payment method
2066
2189
  user: User
2067
- user_rule:
2068
- choose_users: Choose users
2069
2190
  user_role_rule:
2070
2191
  choose_roles: Choose Roles
2071
2192
  label: User must contain %{select} of these roles
2072
2193
  match_all: all
2073
2194
  match_any: at least one
2195
+ user_rule:
2196
+ choose_users: Choose Users
2074
2197
  users: Users
2075
2198
  validation:
2076
- unpaid_amount_not_zero: "Amount was not fully reimbursed. Still due: %{amount}"
2077
- cannot_be_less_than_shipped_units: cannot be less than the number of shipped units.
2078
- cannot_destroy_line_item_as_inventory_units_have_shipped: Cannot destroy line item as some inventory units have shipped.
2079
- exceeds_available_stock: exceeds available stock. Please ensure line items have a valid quantity.
2199
+ cannot_be_less_than_shipped_units: cannot be less than the number of shipped
2200
+ units.
2201
+ cannot_destroy_line_item_as_inventory_units_have_shipped: Cannot destroy line
2202
+ item as some inventory units have shipped.
2203
+ exceeds_available_stock: exceeds available stock. Please ensure line items have
2204
+ a valid quantity.
2080
2205
  is_too_large: is too large -- stock on hand cannot cover requested quantity!
2081
2206
  must_be_int: must be an integer
2082
2207
  must_be_non_negative: must be a non-negative value
2208
+ unpaid_amount_not_zero: 'Amount was not fully reimbursed. Still due: %{amount}'
2083
2209
  validity_period: Validity Period
2084
2210
  value: Value
2085
2211
  variant: Variant
2086
- variant_placeholder: Choose a variant
2212
+ variant_placeholder: Choose a Variant
2087
2213
  variant_pricing: Variant Pricing
2088
2214
  variant_properties: Variant Properties
2089
2215
  variant_search: Variant Search
2090
- variant_search_placeholder: "SKU or Option Value"
2216
+ variant_search_placeholder: SKU or Option Value
2091
2217
  variant_to_add: Variant to add
2092
2218
  variant_to_be_received: Variant to be received
2093
2219
  variants: Variants
2094
2220
  version: Version
2221
+ view_product: View Product On Store
2222
+ view_promotion_codes_list: View codes list
2095
2223
  void: Void
2096
2224
  weight: Weight
2097
2225
  what_is_a_cvv: What is a (CVV) Credit Card Code?
2098
2226
  what_is_this: What's This?
2099
2227
  width: Width
2100
2228
  year: Year
2101
- you_have_no_orders_yet: You have no orders yet
2102
2229
  you_cannot_undo_action: You will not be able to undo this action
2230
+ you_have_no_orders_yet: You have no orders yet
2103
2231
  your_cart_is_empty: Your cart is empty
2104
- your_order_is_empty_add_product: Your order is empty, please search for and add a product above
2232
+ your_order_is_empty_add_product: Your order is empty, please search for and add
2233
+ a product above
2105
2234
  zip: Zip
2106
2235
  zipcode: Zip Code
2107
2236
  zone: Zone
2108
2237
  zones: Zones
2238
+ time:
2239
+ formats:
2240
+ solidus:
2241
+ long: "%B %d, %Y %-l:%M %p"
2242
+ short: "%b %-d '%y %-l:%M%P"