solidus_core 2.7.4 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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"