They came up with a great idea. They should make money off of it.
It's also quite possible that they don't know what they'll be able to donate until after they see their sales numbers. Most businesses would like to cover their investment/expenses before committing to give away money. People are generally very ignorant as to how business runs so giving away too many details will only serve as a negative. For instance, lets say the hats cost $3 to make and they sell them for $20. Many uninformed people will assume the profit is $17... There are a lot of ways for this to backfire on Adidas and the more numbers they commit themselves to, the higher the odds that it will either create a negative image, or cost them significant $ out of their pocket.
Either way, I think it's a great idea and I'll be that the American shoe giant is pissed that they didn't come up with this first.