se possibile un carrello è bene averlo nel db e non nel cookie
quindi puoi creare una tabella "carrello" dove avrai principalmente questi campi:
id dell'utente
id del prodotto
tutti i campi che ci vuoi aggiungere sono a discrezione del progetto: variabili come colore/taglia/formato, informazioni extra sull'utente, costi, modalità, trasporto e cosa varie. non serve che si copino TUTTI i dati utente e prodotto, la maggior parte restano sempre gli stessi quindi si fa poi una JOIN tra le tabelle per sapere tutto.
non trovi descrizione dettagliate sui carrelli perché non c'è un modo unico di farlo, la variabili sono moltissime e concettualmente la costruzione è semplice.