solidus_core 2.7.4 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +19 -17
- data/app/assets/images/logo/solidus.svg +18 -0
- data/app/assets/javascripts/spree.js.erb +2 -2
- data/app/helpers/spree/base_helper.rb +1 -7
- data/app/helpers/spree/taxons_helper.rb +2 -2
- data/app/mailers/spree/carton_mailer.rb +4 -4
- data/app/models/spree/calculator/flat_percent_item_total.rb +4 -1
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +5 -3
- data/app/models/spree/calculator/tiered_percent.rb +2 -1
- data/app/models/spree/country.rb +8 -0
- data/app/models/spree/fulfilment_changer.rb +9 -1
- data/app/models/spree/gallery/product_gallery.rb +18 -0
- data/app/models/spree/gallery/variant_gallery.rb +21 -0
- data/app/models/spree/image.rb +11 -1
- data/app/models/spree/inventory_unit.rb +8 -0
- data/app/models/spree/line_item.rb +1 -1
- data/app/models/spree/order.rb +0 -4
- data/app/models/spree/order_cancellations.rb +31 -10
- data/app/models/spree/order_contents.rb +1 -5
- data/app/models/spree/order_inventory.rb +5 -4
- data/app/models/spree/product.rb +9 -0
- data/app/models/spree/product/scopes.rb +3 -4
- data/app/models/spree/promotion.rb +1 -6
- data/app/models/spree/promotion_handler/coupon.rb +15 -0
- data/app/models/spree/reimbursement.rb +21 -6
- data/app/models/spree/reimbursement_performer.rb +12 -6
- data/app/models/spree/reimbursement_type.rb +1 -1
- data/app/models/spree/reimbursement_type/credit.rb +5 -2
- data/app/models/spree/reimbursement_type/exchange.rb +1 -1
- data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
- data/app/models/spree/reimbursement_type/store_credit.rb +18 -3
- data/app/models/spree/shipment.rb +11 -11
- data/app/models/spree/stock/allocator/base.rb +19 -0
- data/app/models/spree/stock/allocator/on_hand_first.rb +42 -0
- data/app/models/spree/stock/content_item.rb +1 -1
- data/app/models/spree/stock/inventory_units_finalizer.rb +47 -0
- data/app/models/spree/stock/location_sorter/base.rb +38 -0
- data/app/models/spree/stock/location_sorter/default_first.rb +15 -0
- data/app/models/spree/stock/location_sorter/unsorted.rb +14 -0
- data/app/models/spree/stock/simple_coordinator.rb +24 -10
- data/app/models/spree/stock_location.rb +2 -0
- data/app/models/spree/store_credit.rb +4 -12
- data/app/models/spree/store_credit_event.rb +2 -2
- data/app/models/spree/store_credit_reason.rb +11 -0
- data/app/models/spree/taxon.rb +8 -3
- data/app/models/spree/unit_cancel.rb +3 -0
- data/app/models/spree/variant.rb +18 -7
- data/config/initializers/money.rb +5 -0
- data/config/locales/en.yml +661 -527
- data/db/default/spree/store_credit.rb +1 -1
- data/db/default/spree/zones.rb +2 -2
- data/db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb +42 -0
- data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +41 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +0 -3
- data/lib/generators/spree/install/install_generator.rb +2 -2
- data/lib/generators/spree/install/templates/config/initializers/spree.rb.tt +2 -2
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +1 -1
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +1 -1
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +66 -0
- data/lib/spree/app_configuration.rb +20 -4
- data/lib/spree/core/controller_helpers/common.rb +1 -1
- data/lib/spree/core/stock_configuration.rb +12 -0
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/i18n.rb +4 -0
- data/lib/spree/money.rb +13 -11
- data/lib/spree/permission_sets.rb +0 -1
- data/lib/spree/permission_sets/promotion_management.rb +1 -0
- data/lib/spree/testing_support/dummy_app.rb +13 -2
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +1 -1
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +5 -5
- data/lib/spree/testing_support/factories/{store_credit_update_reason_factory.rb → store_credit_reason_factory.rb} +1 -1
- data/lib/spree/testing_support/partial_double_verification.rb +13 -0
- data/lib/spree/testing_support/shared_examples/gallery.rb +18 -0
- data/spec/helpers/products_helper_spec.rb +10 -8
- data/spec/helpers/taxons_helper_spec.rb +3 -1
- data/spec/lib/i18n_spec.rb +5 -0
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +6 -2
- data/spec/lib/spree/core/stock_configuration_spec.rb +19 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +14 -0
- data/spec/lib/spree/money_spec.rb +12 -13
- data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +136 -0
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +10 -1
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +18 -6
- data/spec/models/spree/calculator/tiered_percent_spec.rb +7 -1
- data/spec/models/spree/country_spec.rb +76 -0
- data/spec/models/spree/customer_return_spec.rb +2 -1
- data/spec/models/spree/fulfilment_changer_spec.rb +33 -0
- data/spec/models/spree/gallery/product_gallery_spec.rb +21 -0
- data/spec/models/spree/gallery/variant_gallery_spec.rb +21 -0
- data/spec/models/spree/inventory_unit_spec.rb +1 -4
- data/spec/models/spree/order/checkout_spec.rb +6 -6
- data/spec/models/spree/order/finalizing_spec.rb +1 -20
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +2 -1
- data/spec/models/spree/order/updating_spec.rb +1 -1
- data/spec/models/spree/order_cancellations_spec.rb +55 -14
- data/spec/models/spree/order_inventory_spec.rb +12 -5
- data/spec/models/spree/order_merger_spec.rb +6 -3
- data/spec/models/spree/order_spec.rb +3 -7
- data/spec/models/spree/order_updater_spec.rb +3 -8
- data/spec/models/spree/payment/cancellation_spec.rb +4 -3
- data/spec/models/spree/payment_spec.rb +1 -17
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +2 -0
- data/spec/models/spree/product_spec.rb +10 -1
- data/spec/models/spree/promotion_handler/coupon_spec.rb +62 -8
- data/spec/models/spree/promotion_spec.rb +24 -10
- data/spec/models/spree/refund_spec.rb +2 -1
- data/spec/models/spree/reimbursement_performer_spec.rb +5 -4
- data/spec/models/spree/reimbursement_spec.rb +26 -2
- data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -1
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -1
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +2 -1
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +14 -2
- data/spec/models/spree/return_item_spec.rb +1 -1
- data/spec/models/spree/shipment_spec.rb +20 -13
- data/spec/models/spree/shipping_calculator_spec.rb +13 -3
- data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +146 -0
- data/spec/models/spree/stock/content_item_spec.rb +70 -0
- data/spec/models/spree/stock/estimator_spec.rb +5 -2
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +34 -0
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +20 -0
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +19 -0
- data/spec/models/spree/stock/simple_coordinator_spec.rb +17 -0
- data/spec/models/spree/store_credit_event_spec.rb +12 -12
- data/spec/models/spree/store_credit_spec.rb +2 -2
- data/spec/models/spree/unit_cancel_spec.rb +20 -1
- data/spec/models/spree/variant_spec.rb +46 -24
- data/spec/spec_helper.rb +1 -0
- metadata +30 -9
- data/.yardopts +0 -1
- data/app/models/spree/store_credit_update_reason.rb +0 -4
- data/lib/spree/permission_sets/report_display.rb +0 -11
- data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +0 -14
- data/spec/models/spree/permission_sets/report_display_spec.rb +0 -25
@@ -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(@
|
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
|
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
|
-
|
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, :
|
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.
|
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.
|
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
|
-
|
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 :
|
15
|
+
belongs_to :store_credit_reason, class_name: 'Spree::StoreCreditReason', inverse_of: :store_credit_events
|
16
16
|
|
17
|
-
validates_presence_of :
|
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
|
data/app/models/spree/taxon.rb
CHANGED
@@ -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
|
-
|
108
|
-
|
109
|
-
|
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
|
data/app/models/spree/variant.rb
CHANGED
@@ -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,
|
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
|
|
data/config/locales/en.yml
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
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
|
-
|
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
|
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:
|
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
|
258
|
-
acceptance_status_errors: Acceptance
|
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
|
269
|
+
exchange_variant: Exchange For
|
262
270
|
inventory_unit_state: State
|
263
|
-
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:
|
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:
|
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
|
-
|
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
|
-
|
333
|
-
|
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
|
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
|
-
|
366
|
+
expires_at: Expiration Date
|
367
|
+
included_in_price: Included in Price
|
358
368
|
name: Name
|
359
|
-
show_rate_in_label: Show Rate
|
360
|
-
starts_at: Start
|
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
|
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
|
453
|
-
other: Flat
|
538
|
+
one: Flat Rate
|
539
|
+
other: Flat Rate
|
454
540
|
spree/calculator/shipping/flexi_rate:
|
455
|
-
one: Flexible Rate per
|
456
|
-
other: Flexible Rate per
|
541
|
+
one: Flexible Rate per Package Item
|
542
|
+
other: Flexible Rate per Package Item
|
457
543
|
spree/calculator/shipping/per_item:
|
458
|
-
one: Flat
|
459
|
-
other: Flat
|
544
|
+
one: Flat Rate per Package Item
|
545
|
+
other: Flat Rate per Package Item
|
460
546
|
spree/calculator/shipping/price_sack:
|
461
|
-
one: Price
|
462
|
-
other: Price
|
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
|
528
|
-
spree/promotion/rules/first_order: First
|
529
|
-
spree/promotion/rules/
|
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
|
-
|
629
|
-
|
630
|
-
|
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
|
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
|
741
|
+
subject: Confirmation Instructions
|
727
742
|
reset_password_instructions:
|
728
|
-
subject: Reset
|
743
|
+
subject: Reset Password Instructions
|
729
744
|
unlock_instructions:
|
730
745
|
subject: Unlock Instructions
|
731
746
|
oauth_callbacks:
|
732
|
-
failure:
|
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
|
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
|
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
|
744
|
-
|
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:
|
757
|
-
other:
|
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:
|
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:
|
817
|
-
order:
|
835
|
+
line_item: "%{promotion} (%{promotion_name})"
|
836
|
+
order: "%{promotion} (%{promotion_name})"
|
818
837
|
tax_rates:
|
819
|
-
sales_tax:
|
820
|
-
|
821
|
-
|
822
|
-
vat_with_rate:
|
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:
|
858
|
+
not_supported: Creating store credit payments via the admin is not currently
|
859
|
+
supported.
|
842
860
|
prices:
|
843
|
-
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
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
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
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
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:
|
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
|
-
|
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
|
-
|
886
|
-
|
887
|
-
|
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
|
-
|
915
|
-
|
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:
|
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
|
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
|
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
|
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:
|
1061
|
-
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
|
-
|
1072
|
-
|
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:
|
1082
|
-
other:
|
1113
|
+
one: Subtotal (1 item)
|
1114
|
+
other: Subtotal (%{count} items)
|
1083
1115
|
carton_external_number: External Number
|
1084
|
-
carton_orders:
|
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
|
1092
|
-
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
|
1096
|
-
choose_promotion_action: Choose
|
1097
|
-
choose_promotion_rule: Choose
|
1098
|
-
choose_reason: Choose
|
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
|
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
|
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.
|
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
|
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
|
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
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
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:
|
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
|
1174
|
-
|
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:
|
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
|
-
|
1247
|
+
download_promotion_codes_list: Download codes list
|
1202
1248
|
edit: Edit
|
1203
|
-
|
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
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
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
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
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
|
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
|
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:
|
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
|
1273
|
-
|
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:
|
1369
|
-
|
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
|
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:
|
1378
|
-
other:
|
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
|
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
|
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:
|
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:
|
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
|
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
|
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
|
-
|
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
|
1541
|
-
|
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:
|
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:
|
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:
|
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
|
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:
|
1581
|
-
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
|
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:
|
1687
|
+
subtotal: 'Subtotal:'
|
1588
1688
|
thanks: Thank you for your business.
|
1589
|
-
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
|
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 »
|
1626
|
-
previous_page:
|
1627
|
-
truncate:
|
1727
|
+
previous_page: "« previous page"
|
1728
|
+
truncate: "…"
|
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
|
-
|
1643
|
-
|
1644
|
-
payment_processor_choose_banner_text: If you need help choosing a payment processor,
|
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
|
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
|
-
|
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:
|
1710
|
-
finished:
|
1711
|
-
processing:
|
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:
|
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
|
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
|
-
|
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
|
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
|
1801
|
-
|
1802
|
-
|
1803
|
-
|
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:
|
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:
|
1856
|
-
|
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:
|
1865
|
-
track_link:
|
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
|
-
|
1878
|
-
|
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
|
1886
|
-
shipping_flat_rate_per_order: Flat
|
1887
|
-
shipping_flexible_rate: Flexible Rate per
|
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:
|
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
|
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:
|
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
|
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
|
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:
|
1947
|
-
currency_mismatch:
|
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
|
-
|
1961
|
-
|
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:
|
1964
|
-
insufficient_funds:
|
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:
|
2081
|
+
select_one_store_credit: Select store credit to go towards remaining balance
|
1967
2082
|
store_credit: Store Credit
|
1968
|
-
successful_action:
|
1969
|
-
unable_to_credit:
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
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:
|
1984
|
-
successfully_refunded:
|
1985
|
-
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:
|
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
|
-
|
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
|
2008
|
-
|
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
|
2018
|
-
|
2019
|
-
|
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
|
2152
|
+
total_per_item: Total per Item
|
2031
2153
|
total_pre_tax_refund: Total Pre-Tax Refund
|
2032
|
-
total_price: Total
|
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
|
2052
|
-
|
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
|
2178
|
+
unrecognized_card_type: Unrecognized Card Type
|
2056
2179
|
unshippable_items: Unshippable Items
|
2057
2180
|
update: Update
|
2058
|
-
updated_successfully: Updated
|
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
|
-
|
2077
|
-
|
2078
|
-
cannot_destroy_line_item_as_inventory_units_have_shipped: Cannot destroy line
|
2079
|
-
|
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
|
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:
|
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
|
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"
|