How can I set a BOGOF (Buy One, Get One Free) promotion using Craft Commerce? Under Commerce > Promotions there are the two options: Sales &amp; Discounts. Sales is a flat rate with little conditions, so that leaves Discounts.

Discounts have a bit more flexibility, but only seem to have a minimum quantity option. So, if I want to make a buy one get one free deal, I can't limit it to the quantity to a maximum of 2, therefore the discount gets applied to the total amount regardless of how many are added.

Has anyone else had any success setting up a BOGOF deal or anything similar?
I've used a relatively simple plugin to listen to commerce_cart.onBeforeAddToCartwhich checks what is being added to a cart and if it is a certain item it will automatically add the free item to the cart (or increment the qty if it's already in there).

(Of course you must then also listen to commerce_cart.onRemoveFromCart to remove the free item if the 'parent' item is removed...as I recall this is slightly trickier as you get a copy of the order with the item removed (there's no beforeRemoveFromCart yet) - so you jsut have to loop over the whole cart and look at it holistically).

https://craftcommerce.com/docs/events-reference#commerce_cart.onbeforeaddtocart 
https://craftcommerce.com/docs/events-reference#commerce_cart.onremovefromcart

(In general a business logic plugin can implement most discount things fairly easily but I am hoping a really nice, flexible GUI driven discounts plugin thingy comes along for Commerce!).