solidus_core 1.3.2 → 1.4.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +15 -0
- data/app/helpers/spree/base_helper.rb +6 -2
- data/app/mailers/spree/base_mailer.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +1 -1
- data/app/mailers/spree/order_mailer.rb +2 -2
- data/app/mailers/spree/reimbursement_mailer.rb +7 -7
- data/app/mailers/spree/test_mailer.rb +3 -2
- data/app/models/concerns/spree/user_payment_source.rb +1 -1
- data/app/models/spree/address.rb +14 -4
- data/app/models/spree/adjustment.rb +11 -19
- data/app/models/spree/app_configuration.rb +23 -1
- data/app/models/spree/base.rb +9 -0
- data/app/models/spree/country.rb +2 -2
- data/app/models/spree/exchange.rb +1 -1
- data/app/models/spree/gateway.rb +1 -1
- data/app/models/spree/item_adjustments.rb +7 -0
- data/app/models/spree/line_item.rb +1 -13
- data/app/models/spree/order/checkout.rb +19 -16
- data/app/models/spree/order/payments.rb +0 -2
- data/app/models/spree/order.rb +7 -21
- data/app/models/spree/order_contents.rb +60 -4
- data/app/models/spree/order_merger.rb +2 -4
- data/app/models/spree/order_shipping.rb +1 -1
- data/app/models/spree/order_update_attributes.rb +0 -2
- data/app/models/spree/order_updater.rb +14 -11
- data/app/models/spree/payment.rb +2 -3
- data/app/models/spree/payment_create.rb +5 -2
- data/app/models/spree/payment_method/store_credit.rb +6 -5
- data/app/models/spree/product/scopes.rb +2 -1
- data/app/models/spree/product.rb +2 -5
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +5 -3
- data/app/models/spree/promotion/actions/free_shipping.rb +1 -1
- data/app/models/spree/promotion/rules/option_value.rb +2 -3
- data/app/models/spree/promotion/rules/product.rb +9 -3
- data/app/models/spree/promotion/rules/taxon.rb +33 -7
- data/app/models/spree/promotion/rules/user.rb +2 -3
- data/app/models/spree/promotion.rb +16 -6
- data/app/models/spree/promotion_handler/coupon.rb +1 -1
- data/app/models/spree/shipment.rb +12 -16
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/package.rb +0 -1
- data/app/models/spree/stock_item.rb +2 -6
- data/app/models/spree/store.rb +2 -1
- data/app/models/spree/tax_rate.rb +1 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +29 -0
- data/app/models/spree/wallet/default_payment_builder.rb +26 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +46 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +1 -1
- data/app/views/spree/shared/_base_mailer_footer.html.erb +1 -20
- data/app/views/spree/shared/_base_mailer_header.html.erb +1 -31
- data/config/initializers/spree_user.rb +1 -1
- data/config/locales/en.yml +58 -34
- data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +1 -1
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +15 -3
- data/db/migrate/20160527070401_rename_shipment_address_field.rb +7 -0
- data/db/migrate/20160616232103_remove_user_id_from_promotion_rules.rb +11 -0
- data/db/migrate/20160718205341_add_payment_id_index_to_spree_refunds.rb +5 -0
- data/db/migrate/20160718205859_add_reimbursement_id_index_to_spree_refunds.rb +5 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +3 -1
- data/lib/generators/spree/dummy/templates/rails/test.rb +4 -2
- data/lib/generators/spree/install/install_generator.rb +6 -16
- data/lib/spree/core/controller_helpers/auth.rb +1 -1
- data/lib/spree/core/controller_helpers/common.rb +1 -1
- data/lib/spree/core/controller_helpers/order.rb +2 -2
- data/lib/spree/core/current_store.rb +5 -1
- data/lib/spree/core/delegate_belongs_to.rb +1 -1
- data/lib/spree/core/routes.rb +6 -32
- data/lib/spree/core/search/base.rb +2 -2
- data/lib/spree/core/stock_configuration.rb +6 -0
- data/lib/spree/core/version.rb +2 -2
- data/lib/spree/core.rb +2 -1
- data/lib/spree/i18n.rb +7 -0
- data/lib/spree/mailer_previews/carton_preview.rb +2 -1
- data/lib/spree/mailer_previews/order_preview.rb +8 -3
- data/lib/spree/mailer_previews/reimbursement_preview.rb +11 -0
- data/lib/spree/migrations.rb +13 -7
- data/lib/spree/permitted_attributes.rb +1 -1
- data/lib/spree/testing_support/capybara_ext.rb +6 -1
- data/lib/spree/testing_support/common_rake.rb +3 -7
- data/lib/spree/testing_support/controller_requests.rb +8 -0
- data/lib/spree/testing_support/factories/order_factory.rb +30 -8
- data/lib/spree/testing_support/factories/payment_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_factory.rb +6 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -0
- data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +3 -1
- data/solidus_core.gemspec +3 -3
- data/spec/helpers/base_helper_spec.rb +18 -2
- data/spec/lib/i18n_spec.rb +4 -0
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +16 -4
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +75 -59
- data/spec/lib/spree/core/delegate_belongs_to_spec.rb +1 -1
- data/spec/lib/spree/core/importer/order_spec.rb +4 -2
- data/spec/lib/spree/core/stock_configuration_spec.rb +17 -0
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +195 -0
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +6 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +6 -0
- data/spec/lib/spree/migrations_spec.rb +3 -9
- data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +1 -1
- data/spec/mailers/carton_mailer_spec.rb +1 -1
- data/spec/mailers/order_mailer_spec.rb +2 -2
- data/spec/mailers/reimbursement_mailer_spec.rb +1 -1
- data/spec/models/spree/address_spec.rb +22 -0
- data/spec/models/spree/adjustment_spec.rb +0 -10
- data/spec/models/spree/carton_spec.rb +1 -1
- data/spec/models/spree/country_spec.rb +9 -1
- data/spec/models/spree/gateway/bogus_spec.rb +1 -1
- data/spec/models/spree/item_adjustments_spec.rb +33 -0
- data/spec/models/spree/line_item_spec.rb +2 -21
- data/spec/models/spree/order/checkout_spec.rb +32 -45
- data/spec/models/spree/order/payment_spec.rb +1 -16
- data/spec/models/spree/order_cancellations_spec.rb +8 -3
- data/spec/models/spree/order_contents_spec.rb +48 -0
- data/spec/models/spree/order_merger_spec.rb +8 -5
- data/spec/models/spree/order_shipping_spec.rb +3 -4
- data/spec/models/spree/order_spec.rb +23 -59
- data/spec/models/spree/order_update_attributes_spec.rb +1 -5
- data/spec/models/spree/order_updater_spec.rb +39 -11
- data/spec/models/spree/payment_create_spec.rb +61 -0
- data/spec/models/spree/payment_method/store_credit_spec.rb +23 -10
- data/spec/models/spree/payment_spec.rb +17 -4
- data/spec/models/spree/product_spec.rb +1 -1
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +8 -13
- data/spec/models/spree/promotion/rules/product_spec.rb +33 -0
- data/spec/models/spree/promotion/rules/taxon_spec.rb +52 -8
- data/spec/models/spree/promotion_spec.rb +18 -12
- data/spec/models/spree/return_authorization_spec.rb +0 -16
- data/spec/models/spree/shipment_spec.rb +57 -36
- data/spec/models/spree/stock/coordinator_spec.rb +0 -5
- data/spec/models/spree/stock/package_spec.rb +0 -1
- data/spec/models/spree/stock_item_spec.rb +35 -145
- data/spec/models/spree/store_spec.rb +24 -10
- data/spec/models/spree/tax_rate_spec.rb +2 -2
- data/spec/models/spree/user_spec.rb +1 -1
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +20 -12
- data/spec/support/concerns/working_factories.rb +4 -0
- metadata +30 -10
- data/config/routes.rb +0 -1
data/app/models/spree/store.rb
CHANGED
@@ -15,7 +15,8 @@ module Spree
|
|
15
15
|
scope :by_url, lambda { |url| where("url like ?", "%#{url}%") }
|
16
16
|
|
17
17
|
def self.current(store_key = nil)
|
18
|
-
|
18
|
+
Spree::Deprecation.warn "Spree::Store.current needs a code or URL as an argument. If you want the default store use Spree::Store.default", caller if !store_key
|
19
|
+
current_store = Store.find_by(code: store_key) || Store.by_url(store_key).first if store_key
|
19
20
|
current_store || Store.default
|
20
21
|
end
|
21
22
|
|
@@ -72,7 +72,7 @@ module Spree
|
|
72
72
|
# @param [Spree::Zone] order_tax_zone is the smalles applicable zone to the order's tax address
|
73
73
|
# @param [Array<Spree::LineItem,Spree::Shipment>] items to be adjusted
|
74
74
|
def self.adjust(order_tax_zone, items)
|
75
|
-
|
75
|
+
Spree::Deprecation.warn("Please use Spree::Tax::OrderAdjuster or Spree::Tax::ItemAdjuster instead", caller)
|
76
76
|
items.map do |item|
|
77
77
|
Spree::Tax::ItemAdjuster.new(item, rates_for_order_zone: for_zone(order_tax_zone)).adjust!
|
78
78
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# This class is responsible for saving payment sources in the user's "wallet"
|
2
|
+
# for future use. You can substitute your own class via
|
3
|
+
# `Spree::Config.add_payment_sources_to_wallet_class`.
|
4
|
+
class Spree::Wallet::AddPaymentSourcesToWallet
|
5
|
+
def initialize(order)
|
6
|
+
@order = order
|
7
|
+
end
|
8
|
+
|
9
|
+
# This is called after an order transistions to complete and should save the
|
10
|
+
# order's payment source/s in the user's "wallet" for future use.
|
11
|
+
#
|
12
|
+
# @return [undefined]
|
13
|
+
def add_to_wallet
|
14
|
+
if !order.temporary_credit_card &&
|
15
|
+
order.user_id &&
|
16
|
+
order.valid_credit_cards.present?
|
17
|
+
# arbitrarily pick the first one for the default
|
18
|
+
default_cc = order.valid_credit_cards.first
|
19
|
+
# TODO: target for refactoring -- why is order checkout responsible for the user -> credit_card relationship?
|
20
|
+
default_cc.user_id = order.user_id
|
21
|
+
default_cc.default = true
|
22
|
+
default_cc.save
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :order
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This class is responsible for building a default payment on an order, using a
|
2
|
+
# payment source that is already in the user's "wallet".
|
3
|
+
class Spree::Wallet::DefaultPaymentBuilder
|
4
|
+
def initialize(order)
|
5
|
+
@order = order
|
6
|
+
end
|
7
|
+
|
8
|
+
# Build a payment to be added to an order prior to moving into the "payment"
|
9
|
+
# state.
|
10
|
+
#
|
11
|
+
# @return [Payment] the unsaved payment to be added, or nil if none.
|
12
|
+
def build
|
13
|
+
credit_card = order.user.try!(:default_credit_card)
|
14
|
+
|
15
|
+
if credit_card.try!(:valid?) && order.payments.from_credit_card.count == 0
|
16
|
+
Spree::Payment.new(
|
17
|
+
payment_method_id: credit_card.payment_method_id,
|
18
|
+
source: credit_card,
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
attr_reader :order
|
26
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td>
|
4
|
+
<p class="lede">
|
5
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.dear_customer') %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.instructions') %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.refund_summary') %>
|
12
|
+
</p>
|
13
|
+
<p>
|
14
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.total_refunded', total: @reimbursement.display_total) %>
|
15
|
+
</p>
|
16
|
+
<% if @reimbursement.return_items.exchange_requested.present? %>
|
17
|
+
<p>
|
18
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.exchange_summary') %>
|
19
|
+
</p>
|
20
|
+
<table>
|
21
|
+
<% @reimbursement.return_items.exchange_requested.each do |return_item| %>
|
22
|
+
<tr>
|
23
|
+
<td>
|
24
|
+
<%= return_item.variant.sku %> <%= raw(return_item.variant.name) %> <%= "(#{raw(return_item.variant.options_text)})" if return_item.variant.options_text.present? %>
|
25
|
+
</td>
|
26
|
+
<td>
|
27
|
+
->
|
28
|
+
</td>
|
29
|
+
<td>
|
30
|
+
<%= return_item.exchange_variant.sku %> <%= raw(return_item.exchange_variant.name) %> <%= "(#{raw(return_item.exchange_variant.options_text)})" if return_item.exchange_variant.options_text.present? %>
|
31
|
+
</td>
|
32
|
+
</tr>
|
33
|
+
<% end %>
|
34
|
+
<% if @reimbursement.return_items.awaiting_return.present? && Spree::Config[:expedited_exchanges] %>
|
35
|
+
<tr>
|
36
|
+
<td colspan="3">
|
37
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.days_to_send', days: Spree::Config[:expedited_exchanges_days_window]) %>
|
38
|
+
</td>
|
39
|
+
</tr>
|
40
|
+
<% end %>
|
41
|
+
</table>
|
42
|
+
<% end %>
|
43
|
+
</td>
|
44
|
+
<td class="expander"></td>
|
45
|
+
</tr>
|
46
|
+
</table>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<%= Spree.t('reimbursement_mailer.reimbursement_email.exchange_summary') %>
|
13
13
|
============================================================
|
14
14
|
<% @reimbursement.return_items.exchange_requested.each do |return_item| %>
|
15
|
-
<%= return_item.variant.sku %> <%= raw(return_item.variant.
|
15
|
+
<%= return_item.variant.sku %> <%= raw(return_item.variant.name) %> <%= "(#{raw(return_item.variant.options_text)})" if return_item.variant.options_text.present? %> -> <%= return_item.exchange_variant.sku %> <%= raw(return_item.exchange_variant.name) %> <%= "(#{raw(return_item.exchange_variant.options_text)})" if return_item.exchange_variant.options_text.present? %>
|
16
16
|
<% end %>
|
17
17
|
|
18
18
|
|
@@ -1,20 +1 @@
|
|
1
|
-
<!-- You can override this template to design your own footer.
|
2
|
-
<table class="row footer">
|
3
|
-
<tr>
|
4
|
-
<td class="wrapper last">
|
5
|
-
|
6
|
-
<table class="twelve columns">
|
7
|
-
<tr>
|
8
|
-
<td align="center">
|
9
|
-
<center>
|
10
|
-
<p style="text-align:center;"><a href="#">Terms</a> | <a href="#">Privacy</a> | <a href="#">Unsubscribe</a></p>
|
11
|
-
</center>
|
12
|
-
</td>
|
13
|
-
<td class="expander"></td>
|
14
|
-
</tr>
|
15
|
-
</table>
|
16
|
-
|
17
|
-
</td>
|
18
|
-
</tr>
|
19
|
-
</table>
|
20
|
-
-->
|
1
|
+
<!-- You can override this template to design your own footer. -->
|
@@ -1,31 +1 @@
|
|
1
|
-
<!-- You can override this template to design your own header.
|
2
|
-
<table class="row header">
|
3
|
-
<tr>
|
4
|
-
<td class="center" align="center">
|
5
|
-
<center>
|
6
|
-
|
7
|
-
<table class="container">
|
8
|
-
<tr>
|
9
|
-
<td class="wrapper last">
|
10
|
-
|
11
|
-
<table class="twelve columns">
|
12
|
-
<tr>
|
13
|
-
<td class="six sub-columns">
|
14
|
-
<%= image_tag(Spree::Config.logo) %>
|
15
|
-
</td>
|
16
|
-
<td class="six sub-columns last" style="text-align:right; vertical-align:middle;">
|
17
|
-
<span class="template-label"><%= Spree::Store.current.name %></span>
|
18
|
-
</td>
|
19
|
-
<td class="expander"></td>
|
20
|
-
</tr>
|
21
|
-
</table>
|
22
|
-
|
23
|
-
</td>
|
24
|
-
</tr>
|
25
|
-
</table>
|
26
|
-
|
27
|
-
</center>
|
28
|
-
</td>
|
29
|
-
</tr>
|
30
|
-
</table>
|
31
|
-
-->
|
1
|
+
<!-- You can override this template to design your own header. -->
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Spree::Core::Engine.config.to_prepare do
|
6
6
|
if Spree.user_class && !Spree.user_class.included_modules.include?(Spree::UserMethods)
|
7
|
-
|
7
|
+
Spree::Deprecation.warn "#{Spree.user_class} must include Spree::UserMethods"
|
8
8
|
Spree.user_class.include Spree::UserMethods
|
9
9
|
end
|
10
10
|
end
|
data/config/locales/en.yml
CHANGED
@@ -345,6 +345,10 @@ en:
|
|
345
345
|
name: Name
|
346
346
|
default_tax: Default Tax Zone
|
347
347
|
models:
|
348
|
+
# LegacyUser maps to this model_name so we want to provide translations for it
|
349
|
+
user:
|
350
|
+
one: User
|
351
|
+
other: Users
|
348
352
|
spree/address:
|
349
353
|
one: Address
|
350
354
|
other: Addresses
|
@@ -369,6 +373,9 @@ en:
|
|
369
373
|
spree/exchange:
|
370
374
|
one: Exchange
|
371
375
|
other: Exchanges
|
376
|
+
spree/image:
|
377
|
+
one: Image
|
378
|
+
other: Images
|
372
379
|
spree/inventory_unit:
|
373
380
|
one: Inventory Unit
|
374
381
|
other: Inventory Units
|
@@ -415,8 +422,8 @@ en:
|
|
415
422
|
one: Promotion Category
|
416
423
|
other: Promotion Categories
|
417
424
|
spree/property:
|
418
|
-
one: Property
|
419
|
-
other:
|
425
|
+
one: Property Type
|
426
|
+
other: Property Types
|
420
427
|
spree/prototype:
|
421
428
|
one: Prototype
|
422
429
|
other: Prototypes
|
@@ -436,8 +443,8 @@ en:
|
|
436
443
|
one: Return Authorization
|
437
444
|
other: Return Authorizations
|
438
445
|
spree/return_reason:
|
439
|
-
one:
|
440
|
-
other:
|
446
|
+
one: RMA Reason
|
447
|
+
other: RMA Reasons
|
441
448
|
spree/role:
|
442
449
|
one: Roles
|
443
450
|
other: Roles
|
@@ -466,6 +473,9 @@ en:
|
|
466
473
|
spree/stock_transfer:
|
467
474
|
one: Stock Transfer
|
468
475
|
other: Stock Transfers
|
476
|
+
spree/store_credit:
|
477
|
+
one: Store Credit
|
478
|
+
other: Store Credits
|
469
479
|
spree/store_credit_category:
|
470
480
|
one: Category
|
471
481
|
other: Categories
|
@@ -688,10 +698,11 @@ en:
|
|
688
698
|
adjustments: Adjustments
|
689
699
|
admin:
|
690
700
|
tab:
|
691
|
-
areas:
|
692
|
-
checkout:
|
701
|
+
areas: Locations
|
702
|
+
checkout: Refunds and Returns
|
693
703
|
configuration: Configuration
|
694
|
-
|
704
|
+
display_order: Display Order
|
705
|
+
general: Store
|
695
706
|
option_types: Option Types
|
696
707
|
orders: Orders
|
697
708
|
overview: Overview
|
@@ -699,15 +710,15 @@ en:
|
|
699
710
|
products: Products
|
700
711
|
promotions: Promotions
|
701
712
|
promotion_categories: Promotion Categories
|
702
|
-
properties:
|
713
|
+
properties: Property Types
|
703
714
|
prototypes: Prototypes
|
704
715
|
reports: Reports
|
705
716
|
rma: RMA
|
706
717
|
settings: Settings
|
707
718
|
shipping: Shipping
|
708
719
|
stock: Stock
|
709
|
-
stock_items:
|
710
|
-
stock_transfers: Transfers
|
720
|
+
stock_items: Store Stock
|
721
|
+
stock_transfers: Stock Transfers
|
711
722
|
taxes: Taxes
|
712
723
|
taxonomies: Taxonomies
|
713
724
|
taxons: Taxons
|
@@ -762,8 +773,10 @@ en:
|
|
762
773
|
amount_authorized_exceeds_total_credit: " exceeds the available credit"
|
763
774
|
amount_used_not_zero: "is greater than zero. Can not delete store credit"
|
764
775
|
update_reason_required: "A reason for the change must be selected"
|
776
|
+
taxons:
|
777
|
+
display_order: Display Order
|
765
778
|
variants:
|
766
|
-
|
779
|
+
table_filter:
|
767
780
|
show_deleted: Show deleted variants
|
768
781
|
new:
|
769
782
|
new_variant: New variant
|
@@ -804,6 +817,7 @@ en:
|
|
804
817
|
analytics_desc_list_4: It's completely free!
|
805
818
|
analytics_trackers: Analytics Trackers
|
806
819
|
and: and
|
820
|
+
apply_code: Apply Code
|
807
821
|
approve: approve
|
808
822
|
approver: Approver
|
809
823
|
approved_at: Approved at
|
@@ -834,12 +848,12 @@ en:
|
|
834
848
|
back_to_products_list: Back To Products List
|
835
849
|
back_to_promotions_list: Back To Promotions List
|
836
850
|
back_to_promotion_categories_list: Back To Promotions Categories List
|
837
|
-
back_to_properties_list: Back To
|
851
|
+
back_to_properties_list: Back To Property Types List
|
838
852
|
back_to_prototypes_list: Back To Prototypes List
|
839
853
|
back_to_reports_list: Back To Reports List
|
840
854
|
back_to_refund_reason_list: Back To Refund Reason List
|
841
855
|
back_to_reimbursement_type_list: Back To Reimbursement Type List
|
842
|
-
back_to_return_authorizations_list: Back To
|
856
|
+
back_to_return_authorizations_list: Back To RMA List
|
843
857
|
back_to_rma_reason_list: Back To RMA Reason List
|
844
858
|
back_to_shipping_categories: Back To Shipping Categories
|
845
859
|
back_to_shipping_categories_list: Back To Shipping Categories List
|
@@ -870,7 +884,7 @@ en:
|
|
870
884
|
calculator: Calculator
|
871
885
|
calculator_settings_warning: If you are changing the calculator type or preference source, you must save first before you can edit the calculator settings
|
872
886
|
cancel: cancel
|
873
|
-
cancel_inventory: 'Cancel
|
887
|
+
cancel_inventory: 'Cancel Items'
|
874
888
|
canceled: canceled
|
875
889
|
canceled_at: Canceled at
|
876
890
|
canceler: Canceler
|
@@ -1021,7 +1035,7 @@ en:
|
|
1021
1035
|
editing_product: Editing Product
|
1022
1036
|
editing_promotion: Editing Promotion
|
1023
1037
|
editing_promotion_category: Editing Promotion Category
|
1024
|
-
editing_property: Editing Property
|
1038
|
+
editing_property: Editing Property Type
|
1025
1039
|
editing_prototype: Editing Prototype
|
1026
1040
|
edit_refund_reason: Edit Refund Reason
|
1027
1041
|
editing_refund: Editing Refund
|
@@ -1097,6 +1111,15 @@ en:
|
|
1097
1111
|
expiration: Expiration
|
1098
1112
|
extension: Extension
|
1099
1113
|
existing_shipments: Existing shipments
|
1114
|
+
hints:
|
1115
|
+
spree/price:
|
1116
|
+
country: "This determines in what country the price is valid.<br/>Default: Any Country"
|
1117
|
+
spree/product:
|
1118
|
+
promotionable: "This determines whether or not promotions can apply to this product.<br/>Default: Checked"
|
1119
|
+
shipping_category: "This determines what kind of shipping this product requires.<br/> Default: Default"
|
1120
|
+
tax_category: "This determines what kind of taxation is applied to this product.<br/> Default: None"
|
1121
|
+
spree/variant:
|
1122
|
+
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"
|
1100
1123
|
failed_payment_attempts: Failed Payment Attempts
|
1101
1124
|
failure: Failure
|
1102
1125
|
filename: Filename
|
@@ -1125,7 +1148,7 @@ en:
|
|
1125
1148
|
gateway_config_unavailable: Gateway unavailable for environment
|
1126
1149
|
gateway_error: Gateway Error
|
1127
1150
|
general: General
|
1128
|
-
general_settings:
|
1151
|
+
general_settings: Store
|
1129
1152
|
google_analytics: Google Analytics
|
1130
1153
|
google_analytics_id: Analytics ID
|
1131
1154
|
group_size: Group size
|
@@ -1202,7 +1225,7 @@ en:
|
|
1202
1225
|
gt: greater than
|
1203
1226
|
gte: greater than or equal to
|
1204
1227
|
items_cannot_be_shipped: We are unable to calculate shipping rates for the selected items.
|
1205
|
-
items_in_rmas: Items in Return Authorizations
|
1228
|
+
items_in_rmas: Items in RMA's (Return Merchandise Authorizations)
|
1206
1229
|
items_to_be_reimbursed: Items to be reimbursed
|
1207
1230
|
items_reimbursed: Items reimbursed
|
1208
1231
|
jirafe: Jirafe
|
@@ -1214,12 +1237,12 @@ en:
|
|
1214
1237
|
lifetime_stats: Lifetime Stats
|
1215
1238
|
line_item_adjustments: "Line item adjustments"
|
1216
1239
|
list: List
|
1217
|
-
listing_countries:
|
1218
|
-
listing_orders:
|
1219
|
-
listing_products:
|
1220
|
-
listing_reports:
|
1221
|
-
listing_tax_categories:
|
1222
|
-
listing_users:
|
1240
|
+
listing_countries: Countries
|
1241
|
+
listing_orders: Orders
|
1242
|
+
listing_products: Products
|
1243
|
+
listing_reports: Reports
|
1244
|
+
listing_tax_categories: Tax Categories
|
1245
|
+
listing_users: Users
|
1223
1246
|
loading: Loading
|
1224
1247
|
locale_changed: Locale Changed
|
1225
1248
|
location: Location
|
@@ -1238,7 +1261,7 @@ en:
|
|
1238
1261
|
make_refund: Make refund
|
1239
1262
|
make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
|
1240
1263
|
manage_promotion_categories: Manage Promotion Categories
|
1241
|
-
manage_stock:
|
1264
|
+
manage_stock: Store Stock
|
1242
1265
|
manual_intervention_required: Manual intervention required
|
1243
1266
|
manage_variants: Manage Variants
|
1244
1267
|
master_price: Master Price
|
@@ -1277,12 +1300,12 @@ en:
|
|
1277
1300
|
new_product: New Product
|
1278
1301
|
new_promotion: New Promotion
|
1279
1302
|
new_promotion_category: New Promotion Category
|
1280
|
-
new_property: New Property
|
1303
|
+
new_property: New Property Type
|
1281
1304
|
new_prototype: New Prototype
|
1282
1305
|
new_refund: New Refund
|
1283
1306
|
new_refund_reason: New Refund Reason
|
1284
1307
|
new_rma_reason: New RMA Reason
|
1285
|
-
new_return_authorization: New
|
1308
|
+
new_return_authorization: New RMA
|
1286
1309
|
new_shipping_category: New Shipping Category
|
1287
1310
|
new_shipping_method: New Shipping Method
|
1288
1311
|
new_shipment_at_location: New shipment at location
|
@@ -1290,11 +1313,12 @@ en:
|
|
1290
1313
|
new_stock_location: New Stock Location
|
1291
1314
|
new_stock_movement: New Stock Movement
|
1292
1315
|
new_stock_transfer: New Stock Transfer
|
1316
|
+
new_store_credit: New Store Credit
|
1293
1317
|
new_tax_category: New Tax Category
|
1294
1318
|
new_tax_rate: New Tax Rate
|
1295
1319
|
new_taxon: New Taxon
|
1296
1320
|
new_taxonomy: New Taxonomy
|
1297
|
-
new_tracker: New Tracker
|
1321
|
+
new_tracker: New Analytics Tracker
|
1298
1322
|
new_user: New User
|
1299
1323
|
new_variant: New Variant
|
1300
1324
|
new_zone: New Zone
|
@@ -1546,8 +1570,8 @@ en:
|
|
1546
1570
|
promotion_total_changed_before_complete: "One or more of the promotions on your order have become ineligible and were removed. Please check the new order amounts and try again."
|
1547
1571
|
promotion_uses: Promotion uses
|
1548
1572
|
propagate_all_variants: Propagate all variants
|
1549
|
-
properties:
|
1550
|
-
property: Property
|
1573
|
+
properties: Property Types
|
1574
|
+
property: Property Type
|
1551
1575
|
prototype: Prototype
|
1552
1576
|
prototypes: Prototypes
|
1553
1577
|
provider: Provider
|
@@ -1598,10 +1622,9 @@ en:
|
|
1598
1622
|
resume: resume
|
1599
1623
|
resumed: Resumed
|
1600
1624
|
return: return
|
1601
|
-
return_authorization: Return Authorization
|
1602
|
-
|
1603
|
-
return_authorization_updated: Return authorization updated
|
1604
|
-
return_authorizations: Return Authorizations
|
1625
|
+
return_authorization: Return Merchandise Authorization
|
1626
|
+
return_authorizations: Return Merchandise Authorizations
|
1627
|
+
return_authorization_updated: Return merchandise authorization updated
|
1605
1628
|
return_item_inventory_unit_ineligible: Return item's inventory unit must be shipped
|
1606
1629
|
return_item_inventory_unit_reimbursed: Return item's inventory unit is already reimbursed
|
1607
1630
|
return_item_order_not_completed: Return item's order must be completed
|
@@ -1622,6 +1645,7 @@ en:
|
|
1622
1645
|
total_refunded: ! 'Total refunded: %{total}'
|
1623
1646
|
return_number: Return Number
|
1624
1647
|
return_quantity: Return Quantity
|
1648
|
+
return_reasons: Return Reasons
|
1625
1649
|
returned: Returned
|
1626
1650
|
review: Review
|
1627
1651
|
risk: Risk
|
@@ -1741,7 +1765,7 @@ en:
|
|
1741
1765
|
stock_location_info: Stock location info
|
1742
1766
|
stock_locations: Stock Locations
|
1743
1767
|
stock_locations_need_a_default_country: You must create a default country before creating a stock location.
|
1744
|
-
stock_management: Stock
|
1768
|
+
stock_management: Product Stock
|
1745
1769
|
stock_management_requires_a_stock_location: Please create a stock location in order to manage stock.
|
1746
1770
|
stock_movements: Stock Movements
|
1747
1771
|
stock_movements_for_stock_location: Stock Movements for %{stock_location_name}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class UpdateNameFieldsOnSpreeCreditCards < ActiveRecord::Migration
|
2
2
|
def up
|
3
3
|
if ActiveRecord::Base.connection.adapter_name.downcase.include? "mysql"
|
4
|
-
execute "UPDATE spree_credit_cards SET name =
|
4
|
+
execute "UPDATE spree_credit_cards SET name = CONCAT_WS(' ', first_name, last_name)"
|
5
5
|
else
|
6
6
|
execute "UPDATE spree_credit_cards SET name = first_name || ' ' || last_name"
|
7
7
|
end
|
@@ -3,8 +3,20 @@ class SetShipmentTotalForUsersUpgrading < ActiveRecord::Migration
|
|
3
3
|
# NOTE You might not need this at all unless you're upgrading from Spree 2.1.x
|
4
4
|
# or below. For those upgrading this should populate the Order#shipment_total
|
5
5
|
# for legacy orders
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
execute <<-EOS.squish
|
7
|
+
UPDATE spree_orders
|
8
|
+
SET shipment_total =
|
9
|
+
COALESCE(
|
10
|
+
(
|
11
|
+
SELECT SUM(spree_shipments.cost)
|
12
|
+
FROM spree_shipments
|
13
|
+
WHERE spree_shipments.order_id = spree_orders.id
|
14
|
+
),
|
15
|
+
0
|
16
|
+
)
|
17
|
+
WHERE
|
18
|
+
spree_orders.completed_at IS NOT NULL
|
19
|
+
AND spree_orders.shipment_total = 0
|
20
|
+
EOS
|
9
21
|
end
|
10
22
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class RemoveUserIdFromPromotionRules < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
remove_index :spree_promotion_rules, name: 'index_promotion_rules_on_user_id'
|
4
|
+
remove_column :spree_promotion_rules, :user_id
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
add_column :spree_promotion_rules, :user_id, :integer
|
9
|
+
add_index :spree_promotion_rules, [:user_id], name: 'index_promotion_rules_on_user_id'
|
10
|
+
end
|
11
|
+
end
|
@@ -52,7 +52,7 @@ production:
|
|
52
52
|
<% unless db_host.blank? %>
|
53
53
|
host: <%= db_host %>
|
54
54
|
<% end %>
|
55
|
-
<%
|
55
|
+
<% when 'sqlite', '', nil %>
|
56
56
|
development:
|
57
57
|
adapter: sqlite3
|
58
58
|
database: db/spree_development.sqlite3
|
@@ -62,4 +62,6 @@ test:
|
|
62
62
|
production:
|
63
63
|
adapter: sqlite3
|
64
64
|
database: db/spree_production.sqlite3
|
65
|
+
<% else %>
|
66
|
+
<% raise "Invalid DB specified: #{ENV['DB']}" %>
|
65
67
|
<% end %>
|
@@ -29,6 +29,8 @@ Dummy::Application.configure do
|
|
29
29
|
config.action_mailer.delivery_method = :test
|
30
30
|
ActionMailer::Base.default :from => "spree@example.com"
|
31
31
|
|
32
|
-
#
|
33
|
-
|
32
|
+
# Raise on deprecation warnings
|
33
|
+
if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
|
34
|
+
Spree::Deprecation.behavior = :raise
|
35
|
+
end
|
34
36
|
end
|
@@ -108,24 +108,19 @@ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
|
|
108
108
|
|
109
109
|
def install_migrations
|
110
110
|
say_status :copying, "migrations"
|
111
|
-
|
112
|
-
silence_warnings { rake 'railties:install:migrations' }
|
113
|
-
end
|
111
|
+
`rake railties:install:migrations`
|
114
112
|
end
|
115
113
|
|
116
114
|
def create_database
|
117
115
|
say_status :creating, "database"
|
118
|
-
|
119
|
-
silence_stream(STDERR) do
|
120
|
-
silence_warnings { rake 'db:create' }
|
121
|
-
end
|
122
|
-
end
|
116
|
+
rake 'db:create'
|
123
117
|
end
|
124
118
|
|
125
119
|
def run_migrations
|
126
120
|
if @run_migrations
|
127
121
|
say_status :running, "migrations"
|
128
|
-
|
122
|
+
|
123
|
+
rake 'db:migrate VERBOSE=false'
|
129
124
|
else
|
130
125
|
say_status :skipping, "migrations (don't forget to run rake db:migrate)"
|
131
126
|
end
|
@@ -139,12 +134,7 @@ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
|
|
139
134
|
rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
|
140
135
|
rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
|
141
136
|
|
142
|
-
|
143
|
-
if options[:auto_accept] || (options[:admin_email] && options[:admin_password])
|
144
|
-
quietly(&cmd)
|
145
|
-
else
|
146
|
-
cmd.call
|
147
|
-
end
|
137
|
+
rake("db:seed #{rake_options.join(' ')}")
|
148
138
|
else
|
149
139
|
say_status :skipping, "seed data (you can always run rake db:seed)"
|
150
140
|
end
|
@@ -153,7 +143,7 @@ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
|
|
153
143
|
def load_sample_data
|
154
144
|
if @load_sample_data
|
155
145
|
say_status :loading, "sample data"
|
156
|
-
|
146
|
+
rake 'spree_sample:load'
|
157
147
|
else
|
158
148
|
say_status :skipping, "sample data (you can always run rake spree_sample:load)"
|
159
149
|
end
|