¿Cómo actualizar las cantidades de un carrito de compras hecho en PHP, sesiones y Ajax?

Estoy armando, a modo de aprendizaje y para poder aplicarlo en un futuro, un carrito de compras. Funciona todo bien por ahora. Pero tengo una duda con la actualización de las cantidades.

El código que sirve para crear las variables iniciales, al momento de cargar los productos al carrito es este, el mismo funciona perfecto.

Primero se envían, vía post, las variables (solamente pongo el campo de cantidad para ahorrar código):

<form action="" method="post">
    <input type="hidden" name="idCatalogo" id="id" value="<?php echo $idCatalogo;?>">
    <input type="number" name="Cantidad" id="Cantidad" min="1" max="100" value="<?php echo 1;?>">
    <button name="btnAccion" value="Agregar" type="submit">Agregar al Carrito</button>
</form>

Estos valores pasan al script para que se agreguen dentro de la sesión:

if(isset($_POST['btnAccion'])){
    switch($_POST['btnAccion']){
        case 'Agregar':
            if(is_numeric($_POST['idCatalogo'])){
                $idCatalogo=$_POST['idCatalogo'];
            } else { }  
            if(is_numeric($_POST['Cantidad'])){
                $Cantidad=$_POST['Cantidad'];
            } else { }          
            if(!isset($_SESSION['carrito'])){
                $producto=array(
                    'idCatalogo'=>$idCatalogo,
                    'Cantidad'=>$Cantidad
                    );
                    $_SESSION['carrito'][0]=$producto;
                    $mensaje="Agregado";            
            } else {
                $idProductos=array_column($_SESSION['carrito'],'idCatalogo');
                if(in_array($idCatalogo,$idProductos)){
                    $mensaje="Duplicado";
                } else {
                $NumeroProductos=count($_SESSION['carrito']);
                $producto=array(
                    'idCatalogo'=>$idCatalogo,
                    'Cantidad'=>$Cantidad
                    );
                    $_SESSION['carrito'][$NumeroProductos]=$producto;
                    $mensaje="Agregado";
                }
            }
        break;
    }
}

Hasta acá todo perfecto. Como verán, se controla que el producto no se haya cargado previamente. Se usa "Case" para el botón, por ende hay uno que sirve para agregar y otro que sirve para eliminar el producto en caso de que el usuario se arrepienta. Y tengo los mensajes, básicos de "agregado", "duplicado" y "eliminado" (este último no lo agregué).

Mi pregunta es: ¿Cómo hago para crear una instrucción que me permita "Editar" el valor de "Cantidad"? Entiendo que debo crear otro "Case" con un "form" y un botón editar junto con un campo "number" igual al que ya uso, pero no logro completar el script que me permita hacer esa edición.

Añade tu respuesta

Haz clic para o