E-commerce en PHP y MySQL construido desde cero en siete versiones, con catálogo, carrito y checkout
Proyecto de la asignatura de programación en el lado del servidor: construir una tienda online completa en PHP y MySQL desde cero, avanzando en siete versiones documentadas.
El recorrido cubre el flujo completo de una compra: página de inicio, catálogo leído de base de datos, ficha de producto con selector de unidades, carrito y finalización del pedido con inserción en MySQL. La última versión añade el trabajo estético sobre lo ya funcional.
Lo que hace este ejercicio más valioso que el código en sí es la documentación que lo acompaña: el repositorio incluye el diagrama entidad-relación y el diagrama de flujo en SVG y JSON, más los scripts SQL de creación, alteraciones y datos de muestra.
Estructura PHP clásica con inclusión de cabecera y pie compartidos, y una página por paso del proceso de compra. El estado del pedido se propaga entre páginas mediante formularios POST con campos ocultos.
V0.7-Ajustes esteticos/ ├── Creamos BD.sql # creación del esquema ├── datosdemuestra.sql # datos de prueba ├── alter descripciones largas.sql · alterar ids.sql ├── diagrama entidad relacion.svg # + .json y .sql ├── diagrama de flujo.svg # + .json y .html └── front/ ├── index.php # hero y razones de compra ├── catalogo.php # productos desde la BD ├── producto.php # ficha y selector de unidades ├── carrito.php # datos del cliente ├── finalizacion.php # resumen e inserción del pedido └── inc/ # cabecera y pie compartidos
catalogo.php consulta la tabla de
productos y genera una tarjeta por cada uno.producto.php muestra el detalle
y permite elegir entre 1 y 10 unidades.carrito.php recibe producto y unidades y
pide los datos del cliente.finalizacion.php recupera el
producto de la base de datos, calcula el total y registra el pedido.Cada versión es una carpeta completa, lo que permite ver el estado del proyecto en cada etapa en lugar de solo el resultado final.
$_GET y $_POST, que es una
vulnerabilidad de inyección SQL de libro, y guarda las credenciales dentro de cada
fichero. Es lo que se enseñaba en ese punto del curso. En todos los proyectos
posteriores del portafolio uso PDO con sentencias preparadas y la
configuración fuera del código; contrastar este ejercicio con TinoProp CRM o
RoomManager es la mejor forma de ver esa diferencia.Autor del ejercicio. Práctica individual de la asignatura de programación en el lado del servidor.
Ejercicio académico completado, con las siete versiones y los diagramas en el repositorio de apuntes.
Ruta dentro del repositorio: Apuntes/010-Programción en el lado del
servidor/010-Tienda online/