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