Bueno en terminos generales te dejo un ejemplo para que implementes o adaptes:
 
Primero imagino que debe funcionar como si facturaras, es decir, deberia de ir creando lineas dinamicamente a medida que vas agregando productos: 
Ese es un ejemplo básico de la función para generar lineas, pero hay muchas otras maneras, aqui un ejemplo:  
https://jsfiddle.net/xfxstudios/xj6j42vc/  
luego necesitamos atrapar ese arreglo en php ya que los nombres van de esta manera 
articulo[] para ello te dejo este otro ejemplo:    
Código PHP:
Ver original- $cuenta = count($_POST['articulos']); 
-   
-   
- for($i=0; $i < $cuenta; $i++) 
-     { 
-   
-     //preparamos las variables 
-     $arti = $_POST['articulo'][$i]; 
-     $cant = $_POST['cantidad'][$i]; 
-   
-     //consultamos el stock 
-     $consulta = $db->query("SELECT articulo,stock FROM productos WHERE articulo = '$arti' "); 
-     $r_arti = $consulta->fetch_assoc(); 
-   
-     if($cant > $r_arti["stock"]) 
-         { 
-         //si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas) 
-         $noProcede['articulo'] = $arti; 
-          
-         }else 
-         { 
-         //si no es mayor lo actualizamos 
-   
-         $actu = $db->query("UPDATE productos SET stock = stock-$cant WHERE articulo = '$arti'"); 
-   
-         } 
-   
-   
-   
-     } 
-   
-     //AQUI COLOCAS EL RESTO DEL CODIGO QUE NECESITES PARA PROCESAR Y MOSTRAR LOS ARTICULOS NO PROCESADOS QUE ESTAN EN EL ARRAY Y TODO LO DEMAS