el almacenamiento local en el navegador o localStorage tal ves te pueda servir, has de guardar todos los datos que el usuario registro al carrito de compra y cuando se registre accedes a los datos que están almacenados en el localstorage y eso seria todo, pero eso ya seria un tema de javaScript, claro que también podrías crear sessiones que almacenen la información de los artículos del carro independientemente de que el usuario se haya logeado o no y cuando el usuario se logee accedes a la información de las otras sessiones y le das el manejo correspondiente.
espero haberte entendido en algo o mejor aun haber acertado con mi ayuda jejejejeje Saludos