You need to make sure that when buying from a charity you are aware of whether it is the total amount that goes to the charity, or the profit. Most large charities sell goods through a trading company, which operate very much like a "normal" company. Any profit the company makes is then gift aided to the charity. So for poppy brooches, it might be that by the time all the costs are taken into account by the trading arm, less money per brooch ends up with the charity than the £5 donation from someone like QVC.
I have no idea of the figures involved in this case (and am not sure it would be possible to get that info). I just think it is important that people realise the total purchase price of goods may not necessarily end up with the charity.
Hope you don't mind me adding to the debate, having just stumbled upon it whilst doing a search!
SarahJane