Сайт
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'] ) ));
}

Вход
Регистрация
Помощь

