si io farei vedere il carrello tramite un pulsante apposito tipo guarda il tuo carrello. Il fatto del redirect lo avrei voluto per non far si che l'utente ogni volta che aggiunge il prodotto poi deve tornare alla pagina dei prodotti, ma questo è solo un dettaglio.
Bene aiuto interessante.
Ora tu mi dici di inserire i prodotti scelti nel database (sotto magari la tabella utenti), dopo aprire la pagina del carrello e mostrare il prodotto scelto. Quindi tutte le operazioni di modifica numero prodotto, eliminazione prodotto, ecc le gestisco tutte dalla pagina del carrello, mi conviene.

Ora mettiamo come posso diciamo realizzare un minimo di sicurezza sull'ordine?
L'utente è registrato e viene riconosciuto tramite session, nel caso non fosse loggato non gli dò la possibilità di aggiungere i prodotti.

Ma quando genero l'ordine cosa faccio? Niente session?
Dato che si tratta solo di un invio di una mail forse non è necessario? Perchè l'azienda riceve l'ordine via mail e poi chiama l'utente per la conferma.