Сайт
http://многотехники.рф/.
Сама проблема в следующем: после добавления товаров в корзину, magento не обновляет кэш у блоков корзины, новых товаров, спец предложений( на главной странице) и выдает закешированное количество товаров, после оформления заказа не сбрасывает количество товаров в корзине в 0.
Вся работа с корзиной происходит на ajax, модуль самописный.
Если отключать в админке кэширование для Blocks HTML output, то все работает.
Как можно решить проблему без отключения кэширования?
Вот код метода контролера добавления товара в корзину
public function addAction() { $res = array(); try { $res['id'] = (int) $this->getRequest()->getParam('id'); $cart = Mage::getModel('checkout/cart'); $product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load((int)$res['id']); $params = $this->getRequest()->getParams(); $params['qty'] = 1; $params['product'] = $product->getId(); $mas = array(); foreach( $params['options'] as $key => $i ) { if( $i == '' ) unset( $params['options'][$key] ); else if( is_array($i) ) foreach( $i as $j ) $mas[] = $j; else $mas[] = $i; } $res['opt_list'] = implode(',',($mas)); $res['options'] = $params; $cart->addProduct($product,$params)->save(); $res['success'] = 1; $res['message'] = $product->getName().' добавлен в корзину.'; } catch (Exception $e) { $res['success'] = 0; #echo $e->getMessage(); } Mage::getSingleton('checkout/session')->setCartWasUpdated(true); $res += $this->_itemhtml($res['id'] ); return $this->getResponse()->setHeader ("content-type", "application/json")->setBody(Zend_Json::encode($res + $this->_getJSON() + $this->_messagebox($res['id'], $res['opt_list'] ) )); }