退回不在购物车中的产品集合

时间:2014-04-15 07:24:14

标签: magento magento-1.7

我需要获取不在购物车中的产品详细信息。为此,我这样做。但它也会返回购物车中的产品详细信息。但我不想要购物车中的产品细节。

购物车详情:

 $cart = Mage::getModel('checkout/session')->getQuote();
        foreach ($cart->getAllItems() as $item) {
        $cartprodid[] = $item->getProductId();
        }

对于产品收集:

$quote = Mage::getModel('checkout/session')->getQuote();   
$grandTotal=$quoteData['grand_total'];
                 $collection = Mage::getModel('catalog/product')->getCollection();
                 $collection->addAttributeToSelect('*');    
                 $collection->addFieldToFilter(array(
                                               array('attribute'=>'entity_id', array("nin"=>array($cartprodid))),
                                               ))
                            ->addAttributeToFilter('status', 1)
                            ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
                 $collection->setOrder('sku', 'ASC'); 

但我无法解决这个问题。任何人都可以建议我这个。

1 个答案:

答案 0 :(得分:0)

看起来你走在正确的轨道上 尝试使用addAttributeToFilter代替addFieldToFilter。我的意思是这样的:

$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('*');    
$collection->addAttributeToFilter('entity_id', array('nin'=>$cartprodid))
    ->addAttributeToFilter('status', 1)
    ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$collection->setOrder('sku', 'ASC');