Pour développer ce que @Logan Wayne a souligné...
Ainsi, dans votre JavaScript, lorsque vous saisissez des références à vos éléments de données de table, vous obtenez toujours la PREMIÈRE instance d'un objet Document avec l'identifiant que vous fournissez.
// 2. Define what to do when XHR feed you the response from the server - Start
var product = document.getElementById("product").value; <-- will always return the same element
var pp1 = document.getElementById("pp1").value; <-- will always return the same element
var rp1 = document.getElementById("rp1").value; <-- will always return the same element
var stacking = document.getElementById("stacking").value; <-- will always return the same element
Vous devrez soit attribuer des identifiants uniques à vos objets td, soit, encore une fois, comme @Logan Wayne l'a mentionné, utiliser la propriété class des objets HTML DOM.
Les classes peuvent être utilisées pour regrouper des éléments similaires. Après avoir attribué des noms de classes aux différentes colonnes de votre tableau (Produit , Prix promotionnel , Prix normal , Empilement ) vous pouvez utiliser getElementsByClassName() pour obtenir un tableau des éléments td.
...
var products = document.getElementsByClassName("product"); <-- array of product td elements
...