There are many places to get souveniers in St Petersburg, but just don't go to a souvenier supermarket. They charge twice as much as the street vendors and treat you like a potential criminal.
There was even a man at the entrance with a walkie talkie reporting everyone who entered and exited the shop. Outside there were about 3 or 4 coaches full of American tourists. They were totally unaware that they were being ripped off.
The main one to avoid is next to Peter the Great's Cabin.
Next to Peter the Great's Cabin. Don't shop there.