Planned Breaking Changes in Commerce 2017
Monday, 27 February 2017
We are working on a number of changes in Commerce that will change some behavior and APIs in a way that by Semantic Versioning is considered breaking and therefore will be released as a new major version of Commerce. The current estimate for this new major version is Q2 2017.
Details on the breaking changes will be announced at a later stage when we have a more exact feature set defined for this release. Here is a list of some candidates we are considering. As usual, all this information his is subject to change.
Improving Entry Sort Order on Categories
The SortOrder of NodeEntryRelations is currently used to determine catalog entries' home category (ParentLink in the Content model for catalog content). This makes it hard to use SortOrder for defining the actual order of entries in a category. We will introduce a separate way of defining the home category, creating a clearly defined use for sort order. This will enable us to add the feature of working with sort orders in the Catalog UI to control the way categories are displayed in the site implementation.
Reworked Catalog Import
In addition to the change in behavior of SortOrder and a new element for defining the home category in the catalog XML itself, we will initiate some long overdue code improvements of the Catalog import. While this is mostly under the hood, it requires us to change the public API of the catalog import.
Improved API usability for IRelationRepository
The terminology of Source/Target for relations has been a source of much confusion and the target of much criticism. It will be superseded by a Parent/Child model (the old model will like remain but be marked as obsolete).
Order Calculator Changes
Some default calculator implementations don't work as expected, for example they include order level discounts in the subtotal instead of the order total.
Removing Legacy APIs and Components
- Remove the legacy Asset system.
- Rework/remove the dependency from payment providers to nSoftware.
- Make the "VNext" workflows the default and require configuration to use the old Promotion system, and deprecate it.
- Possibly remove concept of ApplicationId available on many APIs, since it is rarely used and does not have full support throughout the platform anyway.
Clean Up Previously Deprecated APIs
There are a number of APIs that have been marked as obsolete for a long time, and will now be removed.