2011-12-05 18 views
6

商品のカートアイテムを取得しようとしました。Magento - 特定の商品IDのカートアイテムを取得

私はこのコードを試してみました:

$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"を正しい形式で使用するようにコードを変更するにはどうすればよいですか?

ありがとうございました。

答えて

1

私は

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

getItemByProductを直接使用するにはどうすればよいですか? – Bizboss

10

getItemByProduct()を使用すると思いますので、余分なループの必要がない最初の一致Mage_Sales_Model_Quote_Itemを返します。その方法はsales/quoteモデルであるよう

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

エラーが発生します: 致命的なエラー:/catalog/product/list.phtml内のオブジェクトでないgetId()関数を呼び出す996 – Bizboss

+0

'$ product'が' $ quote'にない場合、 $ item'は 'false'になります。それはあなたが見るエラーを引き起こすかもしれない1つの事です。 – clockworkgeek

1

あなたはcheckout/cartまたはcheckout/quoteモデルにgetItemByProduct()機能を使用することはできません。

この方法は、Mage_Sales_Model_Quote classにあります。したがって、それはsales/quoteと一緒に使用されます。これが便利だと思う。

+0

chrizを編集していただきありがとうございます –

関連する問題