Compliments, for the neat release.
Here is one thing that could be improved and I've created the following
pull request for it.
When there is more than one item to ship, those that have "ship for free" are included in weight calculation. As they should ship for free, shipment fee shouldn't consider them.
A fixed rate shipping can also be set in ByWeight mode and GetFixedRate in FixedOrByWeightComputationMethod should consider this.
Furthermore, I do see the need to revise tax calculation and functions that are involved.
ATM, tax rounding is not perfect. As there are many different aspects to consider an optimal solution has to be found.
Shoppingcart totals are recalculated several times during checkout. This should happen only when there is the need for it and it shouldn't happen after the customer has confirmed the order. For instance, there might be price changes, the customer confirms the order but new prices are applied without showing it to him. Moreover, the more recalculations there are the less performant the system is.
Order fields Incl/Excl tax are not necessary from my point of view. It is sufficient to have CustomerTaxDisplayTypeId with respective amounts. With only one type of amount field, there is lesse confusion, smaller data store, quite less code in views and functions.
Tax setup could be improved. Atm I do see the need for tax identifier codes that do show tax exemption texts on invoice. For instance, if you sell within EU, than we have to specify what type of tax exemption was set. It is not sufficient to show only a tax rate of zero.
Rounding per currency is also one of the points that should be addressed. One should be able to specify per currency how amounts, prices and tax should be rounded.
Thx, again for the great work and keep on