Както ти казах, изполвай дата атрибути, а не id. Това основна грешка, което правиш. Не можеш да имаш повече от 1 id с еднакво име на страница. В момента както ти си го направил, в цъкъл, ще имаш много еднакви id-та. По този начин като се опиташ да достъпиш някой продукт, то в повечето случаи ще вземеш само последния елемент.
За целта на бутона добави трябва да имаш data-id="2" и data-cat-id="12", след което при натискане на бутона с $(this) взимаш стойностите на дата атрибутите и ги пращаш с ajax към сървъра.