1) Вы добавили товар в корзину, плюсанули, минусанули кол-во, отправился аякс до обработчика с идентификатором данного товара.
dataType должен быть у аякса json (dataType: 'json',), т.к. нам нужен не HTML, а лишь данные, и передать нам нужно данные.
В data должен быть объект, во первых - экшн, какое действие мы отправляем в обработчик, чтобы он понимал, что нужно сделать - plus, minus, add, remove или что угодно, что вас заранее надо написать.
2) В обработчике достали по ИД товар из БД, засунули в сессию
3) Товар попал туда с полями суммы, колва, путь до изображения и т.п, все то, что понадобится в конечном счете.
4) json_encode'ом вы отправляете назад в аякс данные об этом товаре, т.е. все то, что у вас попало по этому товару в сессию, и отправляете саму корзину, в которой помимо товаров должны лежать ключи общего кол-ва товаров и суммы всей корзины. Можете дополнить любыми другими дополнительными данными, кол-во товара, путь до картинки и т.п.
die(json_encode(array('cart' => $_SESSION['cart'], 'action' => 'cart-add', 'item_id' => $item_id)));
5) В теле success у вас есть параметр ответа success: function(
data
6) Все то, что было отправлено json_encode'ом теперь доступно в пункте 5, в объекте data
7) На основании пришедших данных и нужного экшена, путем JS'а добавляете новый итем товара \удаляете, плюсуете, минусуете, и все это доступно в объекте data.