My advice: don't buy crap for people.
For over a decade I have largely refrained from buying presents. I have also pretty consistently told everyone else to not buy anything for me. Every once in a while I come across something that I really think someone would love, and I get it for them, but it has nothing to do with a birthday or holiday.
I am not alone. People tend to buy me things I don't want. They take up space in my home. It is a waste of the money of people I care about. I also recognize that anything I may buy for someone, if I feel pressured by a holiday to go get something, may be equally unwanted and wasteful.
This time of year has become quite stupid for many people. Poor people, who are also largely unintelligent, go into debt to buy unnecessary junk. They waste precious resources on unneeded things, paying interest for months. They believe it is an obligation, and that their friends and families will hate them, abandon them, or retaliate if the obligation is not met. That is asinine.
My friends and family all still care about our relationships, even though I don't give them stuff every December or on their birthdays. If there would really be a relational consequence for not buying someone a present, that person does not care about you, and you are better off without that relationship. Stop spoiling your whiny and unappreciative kids. Stop having shallow or negative relationships.
If you've got discretionary money and you want to be generous, I recommend the following, and that you do them spontaneously and independently of the calendar:
* throw a party and invite the people you care about
* take people out to dinner at a restaurant they choose
* luxury consumables (fine chocolate, specialty beer, wine)
* vacation together (even in your own town)
Those things tend to take up no space and be relationship-enhancing.
I hate gift cards. Gift cards make no sense. You're giving someone a gift that they will probably have to take time and effort (and maybe money for transportation) to gain any value from. In addition to that, they'll either not use the full amount, which wastes your money, or they'll have to spend some of their own that they wouldn't have otherwise. And they can only be used in one place. The only remotely reasonable reason to give a gift card is to make sure a child gets to pick something they want from a store you approve, but even then, it makes more sense to just promise to reimburse the kid for buying something you approve of, or have the kid tell you specifically what he wants and buy it for him. Gift cards are gifts to the stores more than they are to your loved ones.