Hola buenas el planteamiento es el mismo que cuando ingresas en este foro que para poder responder o realizar una pregunta tienes que registrarte.
Tus usuarios deberán registrarse e introducir su user y password para acceder a las zonas privadas de tu site al igual que si quieren utilizar el carrito para realizar una compra también tienen que hacerlo.
Un tema importante es cuanto va a durar la sesión iniciada de un usuario. Puede ser que cuando salga de la web se elimine esa sesión y si vuelve tiene que volver a logearse o bien mediante cookies determinar un tiempo en que la sesión seguirá abierta.
Un ejemplo práctico de como funciona esto te lo pongo aquí
http://www.desarrolloweb.com/articulos/235.php donde se explica el uso de las variables de sesión.
Espero que te sirva, un saludo.