The store has the right to sell the t-shirt and people have the right to complain. That is how free speech works, it goes both ways (giggity); not just the side you agree with.
Now Primark compromised with the people complaining by simply not selling the t-shirt. No one forced them to make that decision; they did that on their own. And you know what? They can do that; not every little disagreement has to be a holy war. It is OK for businesses to compromise with a community without turning it into a big ordeal.
Not everyone is always going to like what the other's have to say (or express) but either the people in disagreement will just have to live with each other or they will have to work out a compromise.
It seems like some of you think only Primark has the right to freedom of expression and the complainers somehow (though twisted malformed reasoning) don't have the right to complain. But that is hypocrisy and guess what? They do have the right to complain; the Constitutionally protected right to complain.