106 ACTUALIZANDO STOCK y GUARDAR VENTA en el SISTEMA DE VENTAS (PHP y MySql) FullStack

Duración: 17 min
Módulo: 🧾 Cierre de Venta y Control de Inventario Lección 3 de 14

¡Contenido Exclusivo!

Adquiere este curso para tener acceso inmediato a esta y a **todas las lecciones Premium**.

Inscribirse Ahora por $10.00 Acceso instantáneo de por vida y código fuente incluido.

Descripción

Lección 106: Guardar Venta y Actualizar Stock (FullStack) 💾🛒

Este video completa la transacción de venta, asegurando que la venta se registre y que el inventario se actualice correctamente en una sola operación controlada.

1. Extracción y Preparación del ID del Producto 🏷️

Para poder actualizar el stock de cada producto en el bucle, era necesario obtener el ID del producto en cada iteración:

  • Inclusión en Consulta: Se modificó la consulta PHP que carga el carrito para incluir el campo pro.ID_producto [03:12].
  • Campo Oculto (hidden): Se agregó un campo input oculto con el ID dinámico (ID_producto + $contador_carrito) para almacenar el ID de cada producto [04:41].
  • Lectura en Bucle for: Dentro del bucle de JavaScript, se lee el ID del producto (ID_producto) para enviarlo como condición (WHERE) en la consulta UPDATE del stock [05:27].

Una vez verificados todos los datos esenciales (ID del Producto, Stock Calculado), los campos de prueba (input visibles) se ocultaron definitivamente con type="hidden" [07:44].

2. Implementación del Controlador de Actualización de Stock 🛠️

Se creó el nuevo controlador actualizar_stock.php que recibe el ID del producto y el nuevo stock calculado por el frontend:

  • Llamada AJAX: Dentro del bucle for de JavaScript, se realiza una llamada AJAX (url_2) al nuevo controlador actualizar_stock.php en cada iteración [08:38].
    • Datos Enviados (GET): Se envían solo el ID_producto y el stock_calculado [09:35].
  • Consulta SQL (UPDATE): El controlador ejecuta una sentencia UPDATE contra la tabla tb_almacen [11:07]:
    • Acción: Se actualiza el campo stock con el valor de stock_calculado.
    • Condición: WHERE ID_producto = ID_producto [12:01].

3. Ejecución de la Transacción Final 🏁

Se reordenaron las funciones en el controlador principal (registro_de_ventas.php) para asegurar la secuencia correcta de la transacción:

  1. Actualizar Stock: Primero se llama a la función de actualización del stock [14:38]. Este proceso, ejecutado desde el frontend, actualiza los registros de inventario.
  2. Guardar Venta: Luego se llama a la función guardar_venta() [14:47]. Esta acción finaliza la transacción en la base de datos registrando la venta.

Resultado: Se demostró que al realizar una venta:

  • La cantidad en el inventario (tb_almacen) se descuenta correctamente (ej. 100 pasa a 98, 50 pasa a 48) [13:54].
  • La venta se registra exitosamente en la tabla tb_ventas y el carrito se vacía [14:57].

Próximo Paso: El sistema ahora está listo para generar reportes y facturas. El siguiente video se enfocará en la generación de facturas en formato PDF utilizando la librería TCPDF.