spree_core 2.3.13 → 2.4.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree.js.coffee.erb +1 -5
- data/app/helpers/spree/base_helper.rb +22 -11
- data/app/helpers/spree/products_helper.rb +8 -7
- data/app/mailers/spree/base_mailer.rb +1 -0
- data/app/mailers/spree/reimbursement_mailer.rb +10 -0
- data/app/mailers/spree/test_mailer.rb +2 -3
- data/app/models/concerns/spree/adjustment_source.rb +24 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +33 -0
- data/app/models/concerns/spree/named_type.rb +12 -0
- data/app/models/concerns/spree/user_address.rb +30 -0
- data/app/models/concerns/spree/user_payment_source.rb +19 -0
- data/app/models/spree/address.rb +13 -6
- data/app/models/spree/adjustment.rb +5 -5
- data/app/models/spree/app_configuration.rb +8 -4
- data/app/models/spree/asset.rb +1 -1
- data/app/models/spree/base.rb +0 -3
- data/app/models/spree/calculator/flat_rate.rb +1 -5
- data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
- data/app/models/spree/classification.rb +1 -1
- data/app/models/spree/credit_card.rb +18 -22
- data/app/models/spree/customer_return.rb +70 -0
- data/app/models/spree/exchange.rb +42 -0
- data/app/models/spree/gateway/bogus.rb +3 -3
- data/app/models/spree/image.rb +1 -1
- data/app/models/spree/inventory_unit.rb +32 -8
- data/app/models/spree/item_adjustments.rb +7 -11
- data/app/models/spree/legacy_user.rb +2 -2
- data/app/models/spree/line_item.rb +25 -12
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +1 -8
- data/app/models/spree/order.rb +163 -145
- data/app/models/spree/order/checkout.rb +35 -23
- data/app/models/spree/order/payments.rb +66 -0
- data/app/models/spree/order_contents.rb +34 -24
- data/app/models/spree/order_populator.rb +6 -4
- data/app/models/spree/order_updater.rb +10 -1
- data/app/models/spree/payment.rb +19 -16
- data/app/models/spree/payment/processing.rb +40 -72
- data/app/models/spree/payment_method.rb +1 -1
- data/app/models/spree/payment_method/check.rb +0 -2
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/preferences/preferable.rb +20 -0
- data/app/models/spree/price.rb +13 -3
- data/app/models/spree/product.rb +24 -29
- data/app/models/spree/product_property.rb +0 -2
- data/app/models/spree/promotion.rb +66 -24
- data/app/models/spree/promotion/actions/create_adjustment.rb +2 -2
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +15 -11
- data/app/models/spree/promotion/actions/create_line_items.rb +2 -12
- data/app/models/spree/promotion/rules/first_order.rb +6 -2
- data/app/models/spree/promotion/rules/item_total.rb +42 -4
- data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
- data/app/models/spree/promotion/rules/product.rb +13 -11
- data/app/models/spree/promotion/rules/taxon.rb +61 -0
- data/app/models/spree/promotion/rules/user.rb +1 -1
- data/app/models/spree/promotion/rules/user_logged_in.rb +4 -1
- data/app/models/spree/promotion_category.rb +6 -0
- data/app/models/spree/promotion_handler/cart.rb +14 -18
- data/app/models/spree/promotion_handler/coupon.rb +25 -16
- data/app/models/spree/promotion_rule.rb +13 -0
- data/app/models/spree/property.rb +1 -3
- data/app/models/spree/refund.rb +91 -0
- data/app/models/spree/refund_reason.rb +13 -0
- data/app/models/spree/reimbursement.rb +148 -0
- data/app/models/spree/reimbursement/credit.rb +25 -0
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
- data/app/models/spree/reimbursement/reimbursement_type_validator.rb +12 -0
- data/app/models/spree/reimbursement_performer.rb +43 -0
- data/app/models/spree/reimbursement_tax_calculator.rb +38 -0
- data/app/models/spree/reimbursement_type.rb +16 -0
- data/app/models/spree/reimbursement_type/credit.rb +13 -0
- data/app/models/spree/reimbursement_type/exchange.rb +9 -0
- data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +50 -0
- data/app/models/spree/return_authorization.rb +52 -68
- data/app/models/spree/return_authorization_reason.rb +7 -0
- data/app/models/spree/return_item.rb +230 -0
- data/app/models/spree/return_item/default_eligibility_validator.rb +27 -0
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +10 -0
- data/app/models/spree/returns_calculator.rb +8 -0
- data/app/models/spree/shipment.rb +209 -154
- data/app/models/spree/shipment_handler.rb +43 -0
- data/app/models/spree/shipping_calculator.rb +1 -1
- data/app/models/spree/shipping_category.rb +2 -2
- data/app/models/spree/shipping_method.rb +1 -1
- data/app/models/spree/shipping_method_category.rb +1 -1
- data/app/models/spree/shipping_rate.rb +4 -0
- data/app/models/spree/stock/adjuster.rb +10 -11
- data/app/models/spree/stock/availability_validator.rb +6 -10
- data/app/models/spree/stock/content_item.rb +48 -0
- data/app/models/spree/stock/coordinator.rb +14 -7
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +21 -0
- data/app/models/spree/stock/package.rb +38 -51
- data/app/models/spree/stock/packer.rb +13 -11
- data/app/models/spree/stock/prioritizer.rb +7 -7
- data/app/models/spree/stock/splitter/base.rb +2 -2
- data/app/models/spree/stock_item.rb +6 -9
- data/app/models/spree/stock_location.rb +17 -25
- data/app/models/spree/stock_movement.rb +1 -8
- data/app/models/spree/stock_transfer.rb +0 -2
- data/app/models/spree/store.rb +1 -1
- data/app/models/spree/tax_category.rb +2 -2
- data/app/models/spree/tax_rate.rb +16 -22
- data/app/models/spree/taxon.rb +1 -1
- data/app/models/spree/variant.rb +45 -23
- data/app/models/spree/zone.rb +17 -17
- data/app/models/spree/zone_member.rb +1 -1
- data/app/views/layouts/spree/base_mailer.html.erb +784 -0
- data/app/views/spree/order_mailer/cancel_email.html.erb +45 -0
- data/app/views/spree/order_mailer/cancel_email.text.erb +2 -2
- data/app/views/spree/order_mailer/confirm_email.html.erb +84 -0
- data/app/views/spree/order_mailer/confirm_email.text.erb +2 -2
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
- data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
- data/app/views/spree/shared/_base_mailer_header.html.erb +31 -0
- data/app/views/spree/shipment_mailer/shipped_email.html.erb +34 -0
- data/app/views/spree/test_mailer/test_email.html.erb +40 -0
- data/app/views/spree/test_mailer/test_email.text.erb +2 -2
- data/config/initializers/friendly_id.rb +88 -0
- data/config/initializers/premailer_assets.rb +1 -0
- data/config/initializers/user_class_extensions.rb +9 -22
- data/config/locales/en.yml +180 -12
- data/db/default/spree/states.rb +73 -55
- data/db/migrate/20130213191427_create_default_stock.rb +1 -0
- data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -5
- data/db/migrate/20140309033438_create_store_from_preferences.rb +0 -7
- data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +5 -3
- data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
- data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
- data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
- data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
- data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
- data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
- data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
- data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
- data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
- data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
- data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
- data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
- data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
- data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
- data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +5 -0
- data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
- data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
- data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
- data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
- data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
- data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
- data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
- data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
- data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
- data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
- data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
- data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
- data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
- data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
- data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
- data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
- data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
- data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
- data/lib/generators/spree/install/install_generator.rb +7 -3
- data/lib/spree/core.rb +11 -10
- data/lib/spree/core/controller_helpers/common.rb +3 -10
- data/lib/spree/core/controller_helpers/order.rb +15 -12
- data/lib/spree/core/controller_helpers/strong_parameters.rb +9 -9
- data/lib/spree/core/engine.rb +8 -1
- data/lib/spree/core/importer/order.rb +5 -17
- data/lib/spree/core/search/base.rb +1 -1
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/instrumentation.rb +41 -0
- data/lib/spree/migrations.rb +3 -7
- data/lib/spree/money.rb +2 -2
- data/lib/spree/permitted_attributes.rb +10 -9
- data/lib/spree/testing_support/ability_helpers.rb +25 -25
- data/lib/spree/testing_support/authorization_helpers.rb +3 -5
- data/lib/spree/testing_support/capybara_ext.rb +2 -2
- data/lib/spree/testing_support/factories/calculator_factory.rb +0 -8
- data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
- data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +1 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -1
- data/lib/spree/testing_support/factories/order_factory.rb +11 -6
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +9 -7
- data/lib/spree/testing_support/factories/refund_factory.rb +14 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +9 -3
- data/lib/spree/testing_support/factories/return_item_factory.rb +10 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +1 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +3 -2
- data/lib/spree/testing_support/factories/stock_factory.rb +12 -11
- data/lib/spree/testing_support/flash.rb +2 -2
- data/lib/tasks/email.rake +7 -0
- data/lib/tasks/exchanges.rake +70 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_et.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_eu.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_hr.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ka.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ko.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_my.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_pt_BR.js +26 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_pt_PT.js +26 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_sl.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_sv.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_uk.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_zh.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_zh_TW.js +26 -0
- metadata +163 -47
- data/app/models/concerns/spree/ransackable_attributes.rb +0 -19
- data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
- data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +0 -13
- data/db/migrate/20141105213646_update_classifications_positions.rb +0 -9
- data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +0 -5
- data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -70
- data/lib/spree/core/adjustment_source.rb +0 -26
- data/lib/spree/core/calculated_adjustments.rb +0 -35
- data/lib/spree/core/controller_helpers.rb +0 -20
- data/lib/spree/core/user_address.rb +0 -32
- data/lib/spree/core/user_payment_source.rb +0 -20
- data/lib/spree/localized_number.rb +0 -20
@@ -0,0 +1,45 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td>
|
4
|
+
<p class="lede">
|
5
|
+
<%= Spree.t('order_mailer.cancel_email.dear_customer') %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= Spree.t('order_mailer.cancel_email.instructions') %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= Spree.t('order_mailer.cancel_email.order_summary_canceled') %>
|
12
|
+
</p>
|
13
|
+
<table>
|
14
|
+
<% @order.line_items.each do |item| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= item.variant.sku %></td>
|
17
|
+
<td>
|
18
|
+
<%= raw(item.variant.product.name) %>
|
19
|
+
<%= raw(item.variant.options_text) -%>
|
20
|
+
</td>
|
21
|
+
<td>(<%=item.quantity%>) @ <%= item.single_money %> = <%= item.display_amount %></td>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
<tr>
|
25
|
+
<td></td>
|
26
|
+
<td><%= Spree.t('order_mailer.cancel_email.subtotal') %></td>
|
27
|
+
<td><%= @order.display_item_total %></td>
|
28
|
+
</tr>
|
29
|
+
<% @order.adjustments.eligible.each do |adjustment| %>
|
30
|
+
<tr>
|
31
|
+
<td></td>
|
32
|
+
<td><%= raw(adjustment.label) %></td>
|
33
|
+
<td><%= adjustment.display_amount %></td>
|
34
|
+
</tr>
|
35
|
+
<% end %>
|
36
|
+
<tr>
|
37
|
+
<td></td>
|
38
|
+
<td><%= Spree.t('order_mailer.cancel_email.total') %></td>
|
39
|
+
<td><%= @order.display_total %></td>
|
40
|
+
</tr>
|
41
|
+
</table>
|
42
|
+
</td>
|
43
|
+
<td class="expander"></td>
|
44
|
+
</tr>
|
45
|
+
</table>
|
@@ -9,8 +9,8 @@
|
|
9
9
|
<%= item.variant.sku %> <%= raw(item.variant.product.name) %> <%= raw(item.variant.options_text) -%> (<%=item.quantity%>) @ <%= item.single_money %> = <%= item.display_amount %>
|
10
10
|
<% end %>
|
11
11
|
============================================================
|
12
|
-
<%= Spree.t('order_mailer.cancel_email.subtotal'
|
12
|
+
<%= Spree.t('order_mailer.cancel_email.subtotal') %> <%= @order.display_item_total %>
|
13
13
|
<% @order.adjustments.eligible.each do |adjustment| %>
|
14
14
|
<%= raw(adjustment.label) %> <%= adjustment.display_amount %>
|
15
15
|
<% end %>
|
16
|
-
<%= Spree.t('order_mailer.cancel_email.total'
|
16
|
+
<%= Spree.t('order_mailer.cancel_email.total') %> <%= @order.display_total %>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td>
|
4
|
+
<p class="lede">
|
5
|
+
<%= Spree.t('order_mailer.confirm_email.dear_customer') %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= Spree.t('order_mailer.confirm_email.instructions') %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= Spree.t('order_mailer.confirm_email.order_summary') %>
|
12
|
+
</p>
|
13
|
+
<table>
|
14
|
+
<% @order.line_items.each do |item| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= item.variant.sku %></td>
|
17
|
+
<td>
|
18
|
+
<%= raw(item.variant.product.name) %>
|
19
|
+
<%= raw(item.variant.options_text) -%>
|
20
|
+
</td>
|
21
|
+
<td>(<%=item.quantity%>) @ <%= item.single_money %> = <%= item.display_amount %></td>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
<tr>
|
25
|
+
<td></td>
|
26
|
+
<td>
|
27
|
+
<%= Spree.t('order_mailer.confirm_email.subtotal') %>
|
28
|
+
</td>
|
29
|
+
<td>
|
30
|
+
<%= @order.display_item_total %>
|
31
|
+
</td>
|
32
|
+
</tr>
|
33
|
+
<% if @order.line_item_adjustments.exists? %>
|
34
|
+
<% if @order.all_adjustments.promotion.eligible.exists? %>
|
35
|
+
<% @order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
|
36
|
+
<tr>
|
37
|
+
<td></td>
|
38
|
+
<td><%= Spree.t(:promotion) %> <%= label %>:</td>
|
39
|
+
<td><%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %></td>
|
40
|
+
</tr>
|
41
|
+
<% end %>
|
42
|
+
<% end %>
|
43
|
+
<% end %>
|
44
|
+
<% @order.shipments.group_by { |s| s.selected_shipping_rate.try(:name) }.each do |name, shipments| %>
|
45
|
+
<tr>
|
46
|
+
<td></td>
|
47
|
+
<td><%= Spree.t(:shipping) %> <%= name %>:</td>
|
48
|
+
<td><%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: @order.currency) %></td>
|
49
|
+
</tr>
|
50
|
+
<% end %>
|
51
|
+
<% if @order.all_adjustments.eligible.tax.exists? %>
|
52
|
+
<% @order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
|
53
|
+
<tr>
|
54
|
+
<td></td>
|
55
|
+
<td><%= Spree.t(:tax) %> <%= label %>:</td>
|
56
|
+
<td><%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %></td>
|
57
|
+
</tr>
|
58
|
+
<% end %>
|
59
|
+
<% end %>
|
60
|
+
<% @order.adjustments.eligible.each do |adjustment| %>
|
61
|
+
<% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %>
|
62
|
+
<tr>
|
63
|
+
<td></td>
|
64
|
+
<td><%= adjustment.label %>:</td>
|
65
|
+
<td><%= adjustment.display_amount %></td>
|
66
|
+
</tr>
|
67
|
+
<% end %>
|
68
|
+
<tr>
|
69
|
+
<td></td>
|
70
|
+
<td>
|
71
|
+
<%= Spree.t('order_mailer.confirm_email.total') %>
|
72
|
+
</td>
|
73
|
+
<td>
|
74
|
+
<%= @order.display_total %>
|
75
|
+
</td>
|
76
|
+
</tr>
|
77
|
+
</table>
|
78
|
+
<p>
|
79
|
+
<%= Spree.t('order_mailer.confirm_email.thanks') %>
|
80
|
+
</p>
|
81
|
+
</td>
|
82
|
+
<td class="expander"></td>
|
83
|
+
</tr>
|
84
|
+
</table>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<%= item.variant.sku %> <%= raw(item.variant.product.name) %> <%= raw(item.variant.options_text) -%> (<%=item.quantity%>) @ <%= item.single_money %> = <%= item.display_amount %>
|
10
10
|
<% end %>
|
11
11
|
============================================================
|
12
|
-
<%= Spree.t('order_mailer.confirm_email.subtotal'
|
12
|
+
<%= Spree.t('order_mailer.confirm_email.subtotal') %> <%= @order.display_item_total %>
|
13
13
|
<% if @order.line_item_adjustments.exists? %>
|
14
14
|
<% if @order.all_adjustments.promotion.eligible.exists? %>
|
15
15
|
<% @order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
|
@@ -33,6 +33,6 @@
|
|
33
33
|
<%= adjustment.label %> <%= adjustment.display_amount %>
|
34
34
|
<% end %>
|
35
35
|
============================================================
|
36
|
-
<%= Spree.t('order_mailer.confirm_email.total'
|
36
|
+
<%= Spree.t('order_mailer.confirm_email.total') %> <%= @order.display_total %>
|
37
37
|
|
38
38
|
<%= Spree.t('order_mailer.confirm_email.thanks') %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.dear_customer') %>
|
2
|
+
|
3
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.instructions') %>
|
4
|
+
|
5
|
+
============================================================
|
6
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.refund_summary') %>
|
7
|
+
============================================================
|
8
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.total_refunded', total: @reimbursement.display_total) %>
|
9
|
+
|
10
|
+
<% if @reimbursement.return_items.exchange_requested.present? %>
|
11
|
+
============================================================
|
12
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.exchange_summary') %>
|
13
|
+
============================================================
|
14
|
+
<% @reimbursement.return_items.exchange_requested.each do |return_item| %>
|
15
|
+
<%= return_item.variant.sku %> <%= raw(return_item.variant.product.name) %> <%= "(#{raw(return_item.variant.options_text)})" if return_item.variant.options_text.present? -%> -> <%= return_item.exchange_variant.sku %> <%= raw(return_item.exchange_variant.product.name) if return_item.exchange_variant.options_text.present? %> <%= "(#{raw(return_item.exchange_variant.options_text)})" -%>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
|
19
|
+
<% if @reimbursement.return_items.awaiting_return.present? && Spree::Config[:expedited_exchanges] %>
|
20
|
+
<%= Spree.t('reimbursement_mailer.reimbursement_email.days_to_send', days: Spree::Config[:expedited_exchanges_days_window]) %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
@@ -0,0 +1,20 @@
|
|
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
|
+
-->
|
@@ -0,0 +1,31 @@
|
|
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
|
+
-->
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td>
|
4
|
+
<p class="lede">
|
5
|
+
<%= Spree.t('shipment_mailer.shipped_email.dear_customer') %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= Spree.t('shipment_mailer.shipped_email.instructions') %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
|
12
|
+
</p>
|
13
|
+
<table>
|
14
|
+
<% @shipment.manifest.each do |item| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= item.variant.sku %></td>
|
17
|
+
<td><%= item.variant.product.name %></td>
|
18
|
+
<td><%= item.variant.options_text %></td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
</table>
|
22
|
+
<p>
|
23
|
+
<%= Spree.t('shipment_mailer.shipped_email.track_information', :tracking => @shipment.tracking) if @shipment.tracking %>
|
24
|
+
</p>
|
25
|
+
<p>
|
26
|
+
<%= Spree.t('shipment_mailer.shipped_email.track_link', :url => @shipment.tracking_url) if @shipment.tracking_url %>
|
27
|
+
</p>
|
28
|
+
<p>
|
29
|
+
<%= Spree.t('shipment_mailer.shipped_email.thanks') %>
|
30
|
+
</p>
|
31
|
+
</td>
|
32
|
+
<td class="expander"></td>
|
33
|
+
</tr>
|
34
|
+
</table>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td>
|
4
|
+
|
5
|
+
<center>
|
6
|
+
<h1 class="center">
|
7
|
+
<%= Spree.t('test_mailer.test_email.greeting') %>
|
8
|
+
</h1>
|
9
|
+
</center>
|
10
|
+
|
11
|
+
</td>
|
12
|
+
<td class="expander"></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|
15
|
+
|
16
|
+
<table>
|
17
|
+
<tr>
|
18
|
+
<td>
|
19
|
+
|
20
|
+
<p class="lede">
|
21
|
+
<%= Spree.t('test_mailer.test_email.message') %>
|
22
|
+
</p>
|
23
|
+
|
24
|
+
<p>
|
25
|
+
Please remember to configure all of the emails that Spree has provided to your needs.
|
26
|
+
Spree comes shipped with <a href="http://zurb.com/ink/" target="_blank"> Ink </a>
|
27
|
+
prepackaged, but you can use your own version. Ink is not placed in the asset pipeline.
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<p>
|
31
|
+
Also take note that Gmail does not support <code><style></code> tags.
|
32
|
+
Therefore, you will need a gem that will be able to remove your <code><style></code>
|
33
|
+
tags and place them inline. Gmail only supports inline styles. We use
|
34
|
+
<a href="https://github.com/fphilipe/premailer-rails" target="_blank">Premailer for Rails</a> by default.
|
35
|
+
</p>
|
36
|
+
|
37
|
+
</td>
|
38
|
+
<td class="expander"></td>
|
39
|
+
</tr>
|
40
|
+
</table>
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# FriendlyId Global Configuration
|
2
|
+
#
|
3
|
+
# Use this to set up shared configuration options for your entire application.
|
4
|
+
# Any of the configuration options shown here can also be applied to single
|
5
|
+
# models by passing arguments to the `friendly_id` class method or defining
|
6
|
+
# methods in your model.
|
7
|
+
#
|
8
|
+
# To learn more, check out the guide:
|
9
|
+
#
|
10
|
+
# http://norman.github.io/friendly_id/file.Guide.html
|
11
|
+
|
12
|
+
FriendlyId.defaults do |config|
|
13
|
+
# ## Reserved Words
|
14
|
+
#
|
15
|
+
# Some words could conflict with Rails's routes when used as slugs, or are
|
16
|
+
# undesirable to allow as slugs. Edit this list as needed for your app.
|
17
|
+
config.use :reserved
|
18
|
+
|
19
|
+
config.reserved_words = %w(new edit index session login logout users admin
|
20
|
+
stylesheets assets javascripts images)
|
21
|
+
|
22
|
+
# ## Friendly Finders
|
23
|
+
#
|
24
|
+
# Uncomment this to use friendly finders in all models. By default, if
|
25
|
+
# you wish to find a record by its friendly id, you must do:
|
26
|
+
#
|
27
|
+
# MyModel.friendly.find('foo')
|
28
|
+
#
|
29
|
+
# If you uncomment this, you can do:
|
30
|
+
#
|
31
|
+
# MyModel.find('foo')
|
32
|
+
#
|
33
|
+
# This is significantly more convenient but may not be appropriate for
|
34
|
+
# all applications, so you must explicity opt-in to this behavior. You can
|
35
|
+
# always also configure it on a per-model basis if you prefer.
|
36
|
+
#
|
37
|
+
# Something else to consider is that using the :finders addon boosts
|
38
|
+
# performance because it will avoid Rails-internal code that makes runtime
|
39
|
+
# calls to `Module.extend`.
|
40
|
+
#
|
41
|
+
# config.use :finders
|
42
|
+
#
|
43
|
+
# ## Slugs
|
44
|
+
#
|
45
|
+
# Most applications will use the :slugged module everywhere. If you wish
|
46
|
+
# to do so, uncomment the following line.
|
47
|
+
#
|
48
|
+
# config.use :slugged
|
49
|
+
#
|
50
|
+
# By default, FriendlyId's :slugged addon expects the slug column to be named
|
51
|
+
# 'slug', but you can change it if you wish.
|
52
|
+
#
|
53
|
+
# config.slug_column = 'slug'
|
54
|
+
#
|
55
|
+
# When FriendlyId can not generate a unique ID from your base method, it appends
|
56
|
+
# a UUID, separated by a single dash. You can configure the character used as the
|
57
|
+
# separator. If you're upgrading from FriendlyId 4, you may wish to replace this
|
58
|
+
# with two dashes.
|
59
|
+
#
|
60
|
+
# config.sequence_separator = '-'
|
61
|
+
#
|
62
|
+
# ## Tips and Tricks
|
63
|
+
#
|
64
|
+
# ### Controlling when slugs are generated
|
65
|
+
#
|
66
|
+
# As of FriendlyId 5.0, new slugs are generated only when the slug field is
|
67
|
+
# nil, but if you're using a column as your base method can change this
|
68
|
+
# behavior by overriding the `should_generate_new_friendly_id` method that
|
69
|
+
# FriendlyId adds to your model. The change below makes FriendlyId 5.0 behave
|
70
|
+
# more like 4.0.
|
71
|
+
#
|
72
|
+
# config.use Module.new {
|
73
|
+
# def should_generate_new_friendly_id?
|
74
|
+
# slug.blank? || <your_column_name_here>_changed?
|
75
|
+
# end
|
76
|
+
# }
|
77
|
+
#
|
78
|
+
# FriendlyId uses Rails's `parameterize` method to generate slugs, but for
|
79
|
+
# languages that don't use the Roman alphabet, that's not usually suffient. Here
|
80
|
+
# we use the Babosa library to transliterate Russian Cyrillic slugs to ASCII. If
|
81
|
+
# you use this, don't forget to add "babosa" to your Gemfile.
|
82
|
+
#
|
83
|
+
# config.use Module.new {
|
84
|
+
# def normalize_friendly_id(text)
|
85
|
+
# text.to_slug.normalize! :transliterations => [:russian, :latin]
|
86
|
+
# end
|
87
|
+
# }
|
88
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails.application.config.assets.precompile += %w( ink.css )
|
@@ -2,38 +2,25 @@ Spree::Core::Engine.config.to_prepare do
|
|
2
2
|
if Spree.user_class
|
3
3
|
Spree.user_class.class_eval do
|
4
4
|
|
5
|
-
include Spree::UserApiAuthentication
|
6
5
|
include Spree::UserReporting
|
7
|
-
|
6
|
+
include Spree::UserApiAuthentication
|
8
7
|
has_and_belongs_to_many :spree_roles,
|
9
|
-
join_table
|
10
|
-
foreign_key
|
11
|
-
class_name
|
8
|
+
:join_table => 'spree_roles_users',
|
9
|
+
:foreign_key => "user_id",
|
10
|
+
:class_name => "Spree::Role"
|
12
11
|
|
13
|
-
has_many :spree_orders, foreign_key
|
12
|
+
has_many :spree_orders, :foreign_key => "user_id", :class_name => "Spree::Order"
|
14
13
|
|
15
|
-
belongs_to :ship_address, class_name
|
16
|
-
belongs_to :bill_address, class_name
|
17
|
-
|
18
|
-
def self.ransackable_associations(auth_object=nil)
|
19
|
-
%w[bill_address ship_address]
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.ransackable_attributes(auth_object=nil)
|
23
|
-
%w[id email]
|
24
|
-
end
|
14
|
+
belongs_to :ship_address, :class_name => 'Spree::Address'
|
15
|
+
belongs_to :bill_address, :class_name => 'Spree::Address'
|
25
16
|
|
26
17
|
# has_spree_role? simply needs to return true or false whether a user has a role or not.
|
27
18
|
def has_spree_role?(role_in_question)
|
28
|
-
spree_roles.where(name
|
19
|
+
spree_roles.where(:name => role_in_question.to_s).any?
|
29
20
|
end
|
30
21
|
|
31
22
|
def last_incomplete_spree_order
|
32
|
-
spree_orders.incomplete.where(
|
33
|
-
end
|
34
|
-
|
35
|
-
def analytics_id
|
36
|
-
id
|
23
|
+
spree_orders.incomplete.where(:created_by_id => self.id).order('created_at DESC').first
|
37
24
|
end
|
38
25
|
end
|
39
26
|
end
|