The 23-year-old Switzerland international, who only joined Inter from Bayern Munich in January, has signed a five-year contract at the Britannia Stadium.
Shaqiri's transfer eclipses the fee of around £10 million that Stoke paid Tottenham Hotspur to sign Peter Crouch in 2011.
“He's a dynamic and explosive player who will bring something different to the group and at the age of 23 he still has a great deal of potential,” Stoke manager Mark Hughes told the club website.
“In the chats I've had with him, it's obvious that he's excited about playing in the Premier League and showing what he's capable of.”
Shaqiri is the ninth player to join Stoke for the new season and arrives three days after the club opened their Premier League campaign with a 1-0 loss at home to Liverpool, a match that he attended.
He had been close to joining Stoke in July, only for the deal to collapse, but the club subsequently decided to resurrect the move.
Born in what is now Kosovo in the former Yugoslavia to Albanian Kosovar parents, Shaqiri emigrated to Switzerland with his family while still a baby.
He come to prominence with Swiss side FC Basel, winning three league titles and two Swiss Cups and breaking into the national team, for whom he has made 46 appearances and scored 17 goals.
He moved to Bayern in 2012, but although he won several trophies during his time in Bavaria, including the Champions League in his first season, he failed to hold down a first-team place.
He joined Inter on a four-and-a-half-year contract in January and made 20 appearances in the second half of last season, scoring three goals.
Shaqiri, who will wear the number 22 shirt, could make his Stoke debut at Tottenham on Saturday.
— Stoke City FC (@stokecity) August 11, 2015