<commit_before>---
title: Spree 2.4.0
section: version
---

## Major/new features

### Return Authorization Rewrite

Return Authorizations have received a major rewrite, and can be read more about in the updated [Returning Orders](http://guides.spreecommerce.com/user/returning_orders.html) guide.

The previous return authorization code has been extracted into an extension if you would like to continue using it:
[https://github.com/spree-contrib/spree_legacy_return_authorizations](https://github.com/spree-contrib/spree_legacy_return_authorizations)

### HTML Email Templates

There are now default HTML email templates, which use [Zurb Ink](http://zurb.com/ink/templates.php) and [Premailer-Rails](https://github.com/fphilipe/premailer-rails) for responsive styling.

### Guides moved into core repository

The previous spree-guides repository has been merged into the [Spree Core](https://github.com/spree/spree) repository.  Any documentation updates to this website should now be submitted with pull requests to [https://github.com/spree/spree](https://github.com/spree/spree)

## Upgrade Tips

### Read the upgrade guide

For information about upgrading a basic spree store, please read the [2.3 to 2.4 upgrade guide](http://guides.spreecommerce.com/developer/upgrades/two-dot-three-to-two-dot-four.html).

### Other Gotchas

If you have implemented your own authentication system instead of using spree_auth_devise,
or you have implemented your own adjustment source please ensure you change your
concerns to the new namespace:

<% ruby do %>
    Spree::Core::AdjustmentSource => Spree::AdjustmentSource
    Spree::Core::CalculatedAdjustments => Spree::CalculatedAdjustments
    Spree::Core::UserAddress => Spree::UserAddress
    Spree::Core::UserPaymentSource => Spree::UserPaymentSource
<% end %>

Also please review each of the noteable changes, and ensure your customizations
or extensions are not effected. If you are effected by a change, and have any
of your own tips please submit a PR to help the next person!

## Full Changelog

You can view the full changes using [Github Compare](https://github.com/spree/spree/compare/2-3-stable...2-4-stable)

## Noteable Changes

* Add authorize_payments! and capture_payments! to the public interface of orders.

    <NAME>

* Spree no longer holds aws-sdk as a core dependency. In case you use it
  you need to add it to your Gemfile. See paperclip README for reference on
  scenarios where this is needed https://github.com/thoughtbot/paperclip/tree/v4.1.1#understanding-storage
<commit_msg>Mentioning admin order flow changes.<commit_after>---
title: Spree 2.4.0
section: version
---

## Major/new features

### Return Authorization Rewrite

Return Authorizations have received a major rewrite, and can be read more about in the updated [Returning Orders](http://guides.spreecommerce.com/user/returning_orders.html) guide.

The previous return authorization code has been extracted into an extension if you would like to continue using it:
[https://github.com/spree-contrib/spree_legacy_return_authorizations](https://github.com/spree-contrib/spree_legacy_return_authorizations)

### HTML Email Templates

There are now default HTML email templates, which use [Zurb Ink](http://zurb.com/ink/templates.php) and [Premailer-Rails](https://github.com/fphilipe/premailer-rails) for responsive styling.

### Guides moved into core repository

The previous spree-guides repository has been merged into the [Spree Core](https://github.com/spree/spree) repository.  Any documentation updates to this website should now be submitted with pull requests to [https://github.com/spree/spree](https://github.com/spree/spree)

## Upgrade Tips

### Read the upgrade guide

For information about upgrading a basic spree store, please read the [2.3 to 2.4 upgrade guide](http://guides.spreecommerce.com/developer/upgrades/two-dot-three-to-two-dot-four.html).

### Other Gotchas

If you have implemented your own authentication system instead of using spree_auth_devise,
or you have implemented your own adjustment source please ensure you change your
concerns to the new namespace:

<% ruby do %>
    Spree::Core::AdjustmentSource => Spree::AdjustmentSource
    Spree::Core::CalculatedAdjustments => Spree::CalculatedAdjustments
    Spree::Core::UserAddress => Spree::UserAddress
    Spree::Core::UserPaymentSource => Spree::UserPaymentSource
<% end %>

Also please review each of the noteable changes, and ensure your customizations
or extensions are not effected. If you are effected by a change, and have any
of your own tips please submit a PR to help the next person!

## Full Changelog

You can view the full changes using [Github Compare](https://github.com/spree/spree/compare/2-3-stable...2-4-stable)

## Noteable Changes
* The admin order creation/edit process now closely matches the frontend by allowing a separate cart and shipments page.

    <NAME> (tesserakt)


* Add authorize_payments! and capture_payments! to the public interface of orders.

    <NAME>

* Spree no longer holds aws-sdk as a core dependency. In case you use it
  you need to add it to your Gemfile. See paperclip README for reference on
  scenarios where this is needed https://github.com/thoughtbot/paperclip/tree/v4.1.1#understanding-storage

{'fraction_non_alphanumeric': 0.0898919021429926, 'fraction_numerical': 0.005310070168784373, 'mean_word_length': 4.814773980154355, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 18, 'https://': 16, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2632839', 'n_tokens_mistral': 1522, 'n_tokens_neox': 1467, 'n_words': 552}