Hola maurimono, cómo vas??
Es breve, sólo es aplicarle un poco más de lógica:
Cada checkbox (producto) tendrá una cantidad no?, pues el checkbox debe tener el id (identificador) del producto en su value (creo que lo estás haciendo, pero te lo digo porque no sé si "$row[0]" es el respectivo id).
Los input text ya no los deberías cargar como arreglos. Por qué? porque resulta que si no seleccionan todos los checkbox, los input text no concordarían con la cantidad que viene de los checkbox (porque se envian sólo los checados) y es ahí donde está tu problema. La idea es que los input text le coloques un nombre autoincrementable (canti_1, canti_2, canti_3...)o mas fácil, el mismo id del producto contenido en su nombre.
Luego, cuando recibas los checkbox los recorres con un foreach.
La idea en sí es esa, espero no confundirte
![borracho](http://static.forosdelweb.com/fdwtheme/images/smilies/borracho.png)
..., cualquier cosa me dices y te explico de nuevo
Saludos