Hola WiseHidden, para lo del carrito de compras necesita algunas tablas. Esto es un ejemplo, usted lo adapta a sus necesidades (esto es como una guía):
TABLAS
CLIENTES
Cliente (varchar) --> Dirección de correo electrónico
Nombre (varchar) --> Nombre real del cliente
Contrasena (varchar) --> Contrasena de acceso para la cuenta
FechaRegistro (date) --> Fecha en que se registró el usuario
Cliente: es la dirección de correo electrónico. Para mayor facilidad se puede utilizar como llave primaria de esa tabla. De esta forma el cliente se identifica con su correo electrónico y la contrasena que especificó. Al utilizar el correo electrónico como llave primaria nos aseguramos de que el registro no se va a repetir (lógicamente también se debe validar esto :/).
PRODUCTOS
Producto (numérico) --> Identificador único para el producto
Nombre (varchar) --> Nombre del producto
DescripcionLarga (varchar) --> Descripción larga del producto
Costo (float / int) --> Precio del producto
CARRITO
Carrito (int) --> Identificador único para la compra
Cliente (varchar) --> Correo electrónico del cliente (va relacionado con la tabla CLIENTES)
Fecha (date) --> Fecha en que se realiza la compra
Hora (time) --> Hora en que se realiza la compra
Estado (char) --> Estado de la compra (P: pendiente, N: nueva, etc)
Estado --> Desde luego, la compra debe iniciar con un estado P. Cuando el usuario envía el pedido el estado de la compra pasaría a N (nueva). De esta forma usted por medio de una consulta puede identificar cuáles son los nuevos pedidos.
CARRITO_DETALLES
Carrito (int) --> Relacionado con el número de compra especificado en la tabla CARRITO
Linea (int) --> Número de línea de la compra (detalle)
Producto (int) --> Código del producto (relacionado con la tabla PRODUCTOS)
Cantidad (int) --> Cantidad que el cliente desea del producto seleccionado
Carrito y Linea sería una llave compuesta
Podría decir que mas o menos esa es la estructura básica de un carrito; de ahí en adelante usted puede agregar o quitar campos para lograr lo que desea.
También podría agregar una tabla CATEGORIAS para darle una categoría a cada uno de los productos, etc.
Espero le sirva. Saludos!