As several you know, Commerce Server discounts are very cool, but sometime, if you don’t know what you are doing, they can make you crazy…
the most frequent question that I receive from my clients is about the 3 x 2 Discounts or better called N x M… generally CS newbies can configure correctly the discount on Commerce Server, but they complain about the fact that the award item is the most expensive and not the cheapest one (as it make sense for a 3×2 discount).
well Commerce Server support it from long time, the only things that you have to do is configure the Order Discount Pipeline Component properly to satisfy your discount condition. In the specific case, to let it works 3×2 properly customers HAVE to change the option to the Order Discount so that the default award is NOT the MOST EXPENSIVE FIRST but the cheapest one first.
Unfortunately this option belong at pipeline level, it means, that all basket that will run that pipeline, will follow that business rule… if you really want to avoid it, you should implemnt several pipelines and try to understand witch pipeline to run for each specific basket.