Вы вешаете обработчик на кнопку, когда система УЖЕ попыталась добавить в корзину товар. В случае "success" нужно посмотреть, что приходит в "data" и в зависимости от содержимого менять содержимое кнопки. Например пришла ошибка и товар не был добавлен в корзину, тогда писать "в корзине" - нельзя.
Если в принципе на ошибки пофиг, то тогда вне зависимости от "data" сразу меняем надпись. Т.е. $(document).on('click'
- не нужно.
Как найти, что за кнопка была нажата? В функцию приходит "ID" продукта, по нему находим кнопку на странице и заменяем кнопку. Либо можно найти , где вызывается функция add2basket(ID) и менять там, но этот вариант хуже, т.к. мы не будем знать,а был ли вообще ответ от сервера.