A mi en lo personal, me gusto esta implementación
http://www.desarrolloweb.com/articulos/1634.php
Ya que hace uso de una clase y es mas "elegante" y ordenado, sin embargo se le pueden hacer muchas mejoras como usar una sola variable en forma de array asociativo y mejorar los metodos de agregar producto y eliminar.. ;).. pero en general la idea esta buena, con respecto al carrito q dices.. en un rato lo checo