Magento:购物车中是否有某种产品?

时间:2015-06-15 08:18:10

标签: php magento

在我的list.phtml页面上,我希望我的PHP脚本能够根据它的SKU来判断购物车中是否有任何产品。

所以我的条件理论上会是这样的:

$_sku = 123;  

if($_sku->isInBasket() == true){
    echo 'Product: ' . $_sku . ' is in the cart';
}

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

从结帐会话中获取所有数据并检查当前会话中的产品退出

$quote = Mage::getSingleton('checkout/session')->getQuote();

$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
    if ($item->getData('sku') == $_sku) {
        $foundInCart = true;
        break;
    }
}

通过sku检查真的很糟糕。

因为无论什么时候可配置的产品购物车都是db。中的简单产品sku。

因此您需要使用产品ID进行检查。对于这种情况,您需要通过Mage::getModel('catalog')->loadBySku($sku)找到$ sku的ID;在产品foreach循环开始之前。

$_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;
    }
}