Не актуально =)В setCartData не передаете данные (Параметр "O")
Вы упустили перед записью получение уже записанных данных и добавление их в массив, таким образом вы просто записываете новую информацию по верх старой.
я понял - он же данные не видит после обновления а конечно как если он не получает, их поэтому и пишет заново.
@Вячеслав Коростин