I have used sessions with great success, but in this case I would not use them to store the data.
I would store the data in a database and only use sessions to remember who is logged in etc.
A database is much better for storing large amounts of data and for working with that data.
When a user has finished adding items to his cart you can simply do one query to get all the data for the cart, and you can link it to price-information and stock-information. The last two are very difficult if you just have a bunch of variables in a session.
For you I think databases are the way to go!