well, again, its because the cart object code is inside a repeat region.
you have a nested recordset that you are using for display, and you are trying too use the same recordset for the add to cart.
In the add to cart, you should use a separate recordset that is not in the repeat.
so basically, you use one recordset to display the information, but another recordset that is not in the repeat region to add the item to the cart.