Ciao, sui pareri discordanti ti dò pienamente ragione...
Al di là di come vuoi implementare il carrello ricorda cmq che delle variabili di sessione non puoi farne a meno, in quanto un utente che acquista un prodotto lo devi anche registrare e in seguito dovrà loggarsi per acquistare i prodotti o vedere lo status di acquisto.
Personalmente preferisco poggiare il carrello in maniera temporanea cioè per la durata della sessione su database.
Ciao
A volte basta un solo carattere sbagliato nel codice sorgente per mettere in crisi un' intera applicazione...