AIO Boyfriend is disappointed with my Christmas gift

Hello, my boyfriend and I decided to exchange a couple of gifts during Christmas Eve. I got him four gifts in total. The second one he opened were a pair of magnetic earrings I got from Amazon. They are cheap but I thought he would like them since he use to wear earrings but the holes closed. In my mind I thought these were something he could wear temporarily until he got his ears pierced again ( I have no idea when he’s going to do this as his ears have been closed for a couple of years now). I also didn’t expect these to be worn all day just a couple of hours like when we go to the mall, restaurant etc. He expressed immediately after opening it that he appreciates the thoughtfulness but he is not going to use them as magnetics fall off and he would have rather me bought him real earrings. He said he put alot of effort into picking gifts and is disappointed I got him these. I was hurt. I told him instead of immediately letting me know he disliked my gift he could have just told me a few days later or after Christmas. I also told him I’m not used to someone criticizing a gift immediately after opening and that’s just not how I grew up. I said you could have just bit your tongue and said thank you. He said this is a gift to him and if he didn’t like it he can let that person know so they can get their money back and/or purchase another gift. I got teary eyed and I’ve been pretty distant and honestly pretty upset over this. Am I overreacting or does his logic make sense?

Edit: For clarification, I let him know in advance this is not his best gift. I also got him a shaving kit, something he’s been asking for since he does not own one. A Japanese porcelain tea set. He’s been looking for a tea set since he loves tea and drinks it almost everyday. I also got him a sweater that he saw and said he wanted to buy but at the time we couldn’t.

He also got me nice gifts, I haven’t seen two of the four. The first one was a pair of earrings. The style is something I personally wouldn’t wear, but I didn’t tell him that, I just thanked him and told him I really appreciate the gift ( they were not expensive earrings) The second gift was a pair of matching t shirts he custom ordered from our favorite tv show.