Try our conversational search powered by Generative AI!

Magnus Rahl
Feb 27, 2017
  4462
(8 votes)

Planned Breaking Changes in Commerce 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.

Feb 27, 2017

Comments

Arve Systad
Arve Systad Feb 28, 2017 08:13 AM

Good stuff!

You should also consider making overloads available that don't require a Market-parameter (for instance on IPriceService) to make single market solutions simpler. Sortof as with ApplicationId.

Magnus Rahl
Magnus Rahl Feb 28, 2017 09:45 AM

Suggestion noted! We are trying to keep the scope small to get it released rather than putting everything we want to do in there. Your suggestion seems like something we should be able to do without breaking changes using extension methods. I know you're not a fan of that because it makes mocking harder. But it is a tradeoff between mocking and implementing (real or stub), and I would argue that it is even a tradeoff in mocking. There will be less methods to mock and the extension methods should be thin enough to make it possible to easily mock the underlying interface method, e.g. an extension method with no MarketId parameter would pass MarketId.Empty to the underlying interface, so you just mock for that.

valdis
valdis Feb 28, 2017 05:25 PM

Agree with Magnus here..

Mar 1, 2017 12:31 PM

Looks great! I really like that you are continuously revising the APIs and not just adding new features like some other CMSs I could name. I know how hard that can be to accept for some. It will make Episerver even stronger in the future...

Please login to comment.
Latest blogs
Optimizely and the never-ending story of the missing globe!

I've worked with Optimizely CMS for 14 years, and there are two things I'm obsessed with: Link validation and the globe that keeps disappearing on...

Tomas Hensrud Gulla | Apr 18, 2024 | Syndicated blog

Visitor Groups Usage Report For Optimizely CMS 12

This add-on offers detailed information on how visitor groups are used and how effective they are within Optimizely CMS. Editors can monitor and...

Adnan Zameer | Apr 18, 2024 | Syndicated blog

Azure AI Language – Abstractive Summarisation in Optimizely CMS

In this article, I show how the abstraction summarisation feature provided by the Azure AI Language platform, can be used within Optimizely CMS to...

Anil Patel | Apr 18, 2024 | Syndicated blog

Fix your Search & Navigation (Find) indexing job, please

Once upon a time, a colleague asked me to look into a customer database with weird spikes in database log usage. (You might start to wonder why I a...

Quan Mai | Apr 17, 2024 | Syndicated blog