This is how NCC is going to handle items on Neopets. Just a short example and explanation here.
http://pastebin.com/m4b6d8648
As you can see, I've created my Item class here which holds the item name and description (the description is always held in the ALT text of an item image).
I've created a class called MainShopItem that derives from Item (and therefore holds all of the same properties as Item) with a few extended properties specific to a MainShopItem including BuyLink, NumInStock and Price.
You can also see a method I've defined there, GrabMainShopItems - this returns a list of MainShopItems and you can pass in a ShopID.
So - it'll return you a list of MainShopItems - each with the BuyLink, NumInStock, Price, Name and Description - from which you can then search your specified list and figure out whether you need to go onto the next step and actually buy the item.
Let's say the 5th item in the shop is "Cloud Kau Morphing Potion" and I want to buy it.
I could then use my other method BuyItem and pass in the required parameters - the item I want to buy and for what price (for price, you can enter your own Haggle algorithm or I might include a few of my own.)
The full code for an example can be found at the link below:
http://pastebin.com/m1e297296