When adding a promotion order item with a Buy X Get Y coupon, DefaultPacker::pack (during order processing) is always run without considering the promotion order items, because in BuyXGetY::clear (during order preprocessing) the quantity is set to 0. Only after packing (during order processing priority 200) is finished, the quantity is set to the correct value (during order processing priority 100). This can lead to a miscalculation of shipping rates by weight.
Setting the the priority of the DefaultPacker order processor lower or the priority of the Promotion order processor higher works, but this could provoke new unwanted side effects.
Active
2.0
Code