Magento - 获取给定产品ID的购物车商品

时间:2011-12-05 10:54:58

标签: magento

我尝试获取给定产品的购物车物品;

我试过这段代码:

$product = Mage::getModel('catalog/product')
    ->setStoreId(Mage::app()->getStore()->getId())
    ->load('2784');

$quote = Mage::getSingleton('checkout/cart')->getQuote();
$cartItems = $quote->getItemByProduct($product);
foreach ($cartItems as $item) {
    echo $item->getId()."<br/>";
}

但它没有给出任何东西。

如何修改我的代码以正确的形式使用“getItemByProduct”?

感谢您的帮助。

3 个答案:

答案 0 :(得分:10)

getItemByProduct()返回第一个匹配的Mage_Sales_Model_Quote_Item,因此无需额外的循环。

$item = $quote->getItemByProduct($product);
if ($item !== false) echo $item->getId();

答案 1 :(得分:1)

我用

foreach ($quote->getItems() as $item) {
    if ($item->getProductId() == $product->getId()) {
        print_r($item->getData());
    }
}

答案 2 :(得分:1)

您无法在getItemByProduct()checkout/cart模型上使用checkout/quote函数,因为该方法属于sales/quote模型。

您可以在Mage_Sales_Model_Quote class找到此方法。所以它与sales/quote一起使用。希望这很有用。