Follow Up on Planned Breaking Changes in Commerce 2017
This is a follow up post to Planned Breaking Changes in Commerce 2017, which promised an update on the scope of the release. We now have the scope set, and are closing on dev complete for the included features. It is very close to what we planned a few months ago, so most of this is reiteration:
Improved Entry Sorting
It is now possible to correctly use the SortOrder of NodeEntryRelations to determine the order in which items are returned e.g. when calling IContentLoader.GetChildren to render a product listing. Marketers can set the order by dragging and dropping items in the Catalog UI. The Content's ParentLink property is independent of the sort order, and has separate interactions in the UI.
Reworked Catalog Import
Refactoring the catalog import code allowed us to squeeze out better performance, both in terms of import speed and memory consumption.
Improved API for Relations
The IRelationRepository and its data classes have been redesigned to use a Parent/Child terminology which we hope is easier to understand and use. In addition, the caching strategies for Relations (and Associations) has been improved and the data classes now implement IReadOnly (requring cloning before changing).
Order System API Improvements
- Return order form support has been added to the abstractions.
- The default order calculators have been corrected to not include order level discounts in the subtotal.
- The workflow calculations have been aligned with the order calculators.
- Some APIs related to payments have been changed to improve creation of payments from the abstractions, data available for processing and to better support redirecting payment providers.
- Shipping APIs have been extended to get rates by market.
- The WorkflowsVNext feature switch (i.e. use the new Promotion System) is now active by default.
- The legacy promotion system has been obsoleted.
- The legacy asset system has been removed.
- The dependency to nSoftware has been completely removed due to changes in how it is licensed. We will provide source code to help you build the equivalent functionality using your own licensed nSoftware library.
- The ApplicationID concept has been removed, affecting a number of APIs as well as tables, indexes etc.
- A number APIs that have been marked as obsolete for a long time have been removed.
- The .NET Framework requirement has been lifted from 4.5 to 4.52.
We have already started our QA process for several of the dev complete features. We will get the rest to dev complete together with compatible versions of Service API and Find for Commerce and get it all to QA. It is unlikely to be ready within Q2 as we previously estimated, but we hope it will be released soon thereafter. When it is eventually released we will of course also publish more detailed documentation on the new features and breaking changes.