Non vedo il bisogno di una tabella carrello, se non per mantenere la selezione dell'utente fra diverse sessioni di navigazione. In realtà può essere sufficiente un banalissimo array da tenere in sessione.
Se poi vuoi usare la tabella per conservare i dati, allora devi prevedere necessariamente che l'utente si registri. Pessima idea quella di usare l'ip come chiave