Shoop 3.0.0 Release Notes¶
Released on 2016-01-21 11:15 +0200.
Here’s a few highlights of new features, improvements and fixes in Shoop 3.0.0 since 2.0.0. For complete list of changes see Shoop Change Log or Git commit log.
There’s also update instructions for updating from 2.0.
New Features¶
- Creating orders from the Admin
- Localization
- Provide tools for collecting and compiling translated messages.
- Add language chooser to Classic Gray theme.
- Implement JavaScript translations.
- Xtheme plugins are now translatable.
- More messages have been marked for translation.
- Included translations: English, Finnish, Chinese and Japanese.
Improvements¶
- Allow addons to inject resources to Xtheme templates
- Enable email login and password recovery with username
- Show product media at order history and product detail pages
- Show Shoop version number in Admin
- Xtheme editor improvements
- Tax system improvements
- Document the tax system (see Prices and Taxes in Shoop)
- Implement override groups for Default Tax
- Clean-up internal tax/price related APIs
- And many more
Fixes¶
- Xtheme: Don’t crash when trying to revert unsaved configuration
- Default Tax: Fix calculation of added and compounded taxes
- And many more
Miscellaneous¶
- Test are now ran also on Travis
- Python package dependencies are updated and not so strict anymore
- Node package dependencies are locked down with npm-shrinkwrap
Updating from 2.0¶
Shoop 3.0 introduces some API changes which could affect projects or addons based on Shoop 2.0. Here is a list of the API changes and instructions how to update your code.
Priceful.total_pricehas been removed. This affects e.g.OrderLine,BasketLineandPriceInfoobjects.- Use
Priceful.priceinstead.
- Use
PriceTaxContextis removed.- You should not need it. Use
PricingContextorTaxingContextwhere appropriate.
- You should not need it. Use
- Default Theme is removed.
- It is available as a separate package from https://github.com/shoopio/shoop-simple-theme
Addressis split toMutableAddressandImmutableAddress.Addressis converted to abstract base class.- Database changes should be handled by migrations.
- Usually usages of
Addressshould be converted toMutableAddress, but they should be converted to immutable withAddress.to_immutablefor e.g.Orderaddresses.
- Submodules of
shoop.core.pricingare now private.- Use the API exposed by the
shoop.core.pricingmodule’s__init__.py. E.g. useshoop.core.pricing.PriceInfoinstead ofshoop.core.pricing.price_info.PriceInfo.
- Use the API exposed by the
- Submodules of
shoop.core.order_creatorare now private.- Use the API exposed by the module’s
__init__.py.
- Use the API exposed by the module’s
shoop.core.utils.referenceis removed.- Some submodules of
shoop.xthemeare now private.- Use symbols directly from
shoop.xtheme, e.g.shoop.xtheme.Themeinstead ofshoop.xtheme.theme.Themeorshoop.xtheme.TemplatedPlugininstead ofshoop.xtheme.plugins.TemplatedPlugin.
- Use symbols directly from
- Submodules of
shoop.core.modelsare now private.- Use the models or enums directly from the main package.
shoop.core.models.product_variationis removed.- Relevant functions are now available as
Productmethods.
- Relevant functions are now available as