Maybe you can start off checking what level the player is, using a IF statement maybe, then, depending on what level the player turns out to be, you can choose to show a specific GUI for that level, containing different good, depending on what level the player is.
I'm not quite sure if thiw will work or not, since you can't do the GUI function inside a update function, but i'm sure you'll work that out!
For unlocking a object that the player bought, you can use a IF statement to, set a var to 1 if it's bought, 0 if it isn't, then simply check what value the var has, and activate the gameObject that the player bought, if the var is 1.