Fetch все данные сессии оформления заказа и проверить выходы продукта в текущей сессии
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('sku') == $_sku) {
$foundInCart = true;
break;
}
}
это очень плохо для проверки на SKU.
Из-за всякого конфигурируемого продукта тележка, то простой продукт sku in db.
Поэтому вам необходимо проверить использование идентификатора продукта. Для этого случая вам нужно найти идентификатор $ sku по Mage::getModel('catalog')->loadBySku($sku)
; перед запуском продуктов foreach loop.
$_skuPId='';
$matchPro=Mage::getModel('catalog')->loadBySku($sku);
if($matchPro->getId()){
$_skuPId=$matchPro->getId();
}
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('prodduct_id') == $_skuPId) {
$foundInCart = true;
break;
}
}
http://stackoverflow.com/questions/11670419/how-to-check-if-a-magento-product-is-already-added-in-cart-or-not –