Reproduce: create 2+1 promotion for same set of products. Add 2 products(A.price > B.price) with quantity 3 each. Expected result: 2 B products for free. Result: 1 A and 1 B for free.
As we investigated promotion engine works with chunks of products. And in this case it will take cheapest chunk of 3 products and then will take another 3products with highest price and will make one for free.
Please suggest how to implement expected behavior.