Planned Breaking Changes in Commerce 2018
We are working on a number of changes in Commerce which are considered breaking since that will change some behaviors and APIs and therefore will be released as a new major version of Commerce.
Here is a short summary of what we are considering, the details will be announced at a later stage:
Improved calculators
The calculators will be re-structured to make them work more efficiently. The tax calculator will calculate only tax values at the lowest level – line item. The tax calculation for shipment, order form, and order group will be moved to corresponding calculator. The default implementations for calculations will be also improved so that it will reduce unnecessary calls to calculators when getting tax values of order entities or getting shipping cost of shipments.
Re-worked how to use taxes in Commerce
The current default implementations for calculations is done based on the assumption that prices are excluding tax and tax is added at the end. And if your catalog has prices including taxes (mostly in Europe), you have to re-implement the entire tax calculation or use a third party service. Now, a setting indicating whether prices includes tax will be added on market, and the calculations will take that setting into account.
Adding market info on order group for completeness
A saved purchase order or cart should be as complete as possible, without any real need to reference other tables / entities. Currently we only have a reference to the market but that will not be needed anymore, an order group will just have the info what it needs about market, not the whole market entity.
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.
The current estimate for this new major version is Q1 2018.
Just a clarification because the question came up last year when I posted a similar note: No, we are not changing the naming scheme so that the new version is going to be called "Commerce 2018". The headline just means release will happen in 2018. It is going to be called Commerce 12 unless something unexpected and urgent requiring a breaking change comes up before these changes are released.
And also this is not a promise that Commerce 12 will be the only major release in 2018. With our velocity I would personally think it's likely to have one more major release in 2018. To move forward and to make nice things, we need to break old things here and there, and in that senses, major releases are inevitable.
Again, another major release in 2018, is not a promise.
We will let you know about our release plan as soon as we have it firmly.
Make sense that this will not be the only major version this year. Personaly I prefer that it is more major releases during a year as a year is quiet long :) But I understand other developers that work with many solutions, while I only work with one solution and decide when to upgrade.
I like what I read about the taxes.. that will most likely simplify some work for me as we are soon going live with entity in US, and the way I did it now is not pretty, but works :) Looking forward to try the new tax calculations!
@Sebastian: Absolutely. We want to have sizeable major releases, not too big, not too small, so with enough new features to be attractive and not too many breaking changes to be scary :)