You will never know when you will need a gift on-the-spot. You might have a wedding to attend, your kids might have a birthday party to go to, or you might be meeting with friends for a holiday get-together.
When you are out shopping at you see good deals, buy them. Keep them in a secret place (in case you need them for your own children). I prefer under the bed. Then when you need a gift, you will save yourself money, hassle and stress as you select a gift from your own collection. Even storing candy bars or little items come in very handy.