1) if u watched the multiple animations tutorial for guns, u can do the same thing, but instead of one sprite with lots of animations splice the animations on different sprites, and use the sprites. is the same process but with N_animations*number of guns*number_of_skins_on_gun_as_animations.
ul have to double check position of image points of the gun, and other things like that, which will increase ur code events, but u can add all ur weapons in a family for general coding, and use sprites for picking the weapon etc.
2)u will probably need a array or xml or localsaving thing if u want it to have a custom shop that saves the current equipped and unlocked weapon.
there are various hints and tips to give, but it all depends on how u want to do it, if u want to update the database of the guns in store, id use xml and put it on a website hosting somewhere where u can edit the guns players can buy or unlock. for xml information u can check the xml tutorial in C3, is rather simple and is amazingly simple.
3)then use the xml with a array or localstorage or online database for players to check what they unlocked/equipped etc and when he starts the game compare all the data and equip the player with his last items he had before he quitted game.
but that is more of outside what ur question was.... see point 1 for subject relevancy.