This is something that I have spoken with my kids about from a very young age. Basically because I have been around young kids all my life and I know that they don't have that filter to stop them from saying things that may hurt others feelings, they are just totally honest, regardless of what may hurt people.
I have always taught them that they are to be polite and say thank you for the gift regardless if they like it or not, or even if they already have it, it doesn't matter, we will work it out later! This has always been done really well, a few times I have had to remind them to say thank you politely, and not be rude, but usually it hasn't been an issue.
My DD9 is grateful for everything she gets now and is more than happy to get the smallest of things, she is usually a little over enthusiastic about things that I know she isn't too keen on. But clothes are a real hit with her, she is a total fashionista!!!