non è proprio una cosa semplice gestire un carrello, spero che tu abbia delle buone basi di php e database e di programmazione in generale.
Ad ogni modo proviamo ad andare per gradi:
Diciamo anche che in una ipotesi di carrello molto semplice, con pochi prodotti (cioè ad es. meno di 1000) potresti anche non usare un db, il perchè possiamo approfondirlo più avanti.
Inizialmente la cosa che mi pare tu non abbia preso in considerazione è la gestione delle sessioni che sono indispensabili per far sapere al server che sei sempre tu a inserire prodotti in quel carrello.
Esempio:
Arrivi per la prima volta nella paagina dalla quale puoi inserire il prodotto.
Clicchi per inserire, il server inizia una sessione, salva in una var di sessione un array che contiene per ogni riga il codice del prodotto e la quantità.
Fai altri giri per il sito, torni su una pag dei prodotti e ne inserisci un altro, il server TI RICONOSCE (perchè il codice che hai scritto utilizza le sessioni) e aggiunge nell'array di prima una seconda riga con i dati di quaesto prodotto.
E così via.
Ciao