回答:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
で$cart
あなたのカートアイテムのすべてのコレクションを持って、あなたは、製品IDを取得したい場合、あなたはforeachループを使用してから取得することができます名前
別の解決策を見つけました。次のコードは私のために機能します。
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
...オプションは本当にありますが、ここではそうではありません
別の方法で機能する方法がいくつかあります。
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
現在の見積に関連付けられているすべてのアイテムを含む見積アイテムのコレクションを返します。
$items = Mage::getSingleton('checkout/cart')->getItems();
これは上記のメソッドのショートカットですが、引用符がない場合は空の配列を返すため、コレクションインスタンスの取得に頼ることはできません。
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
アイテムコレクションをロードし、削除済みとしてマークされていない(つまり、現在のリクエストで削除された)すべてのアイテムの配列を返します
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
アイテムコレクションをロードし、削除済みとしてマークされておらず、親を持たないすべてのアイテムの配列を返します(つまり、バンドルされて構成可能な製品のアイテムを取得しますが、関連する子は取得しません)。各配列項目は、カートページに表示される行に対応します。
ニーズに最適なものを選択してください。ほとんどの場合、最後の方法が必要ですが、残念ながらMagentoはコレクションとしてではなく配列としてのみ提供します。
Mage::getSingleton('checkout/cart')->getQuote()
とMage::getSingleton('checkout/session')->getQuote()
は交換可能であることに注意してください。
$items =Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach($items as $item) {
echo 'ID: '.$item->getProductId().'<br />';
echo 'Name: '.$item->getName().'<br />';
echo 'Sku: '.$item->getSku().'<br />';
echo 'Quantity: '.$item->getQty().'<br />';
echo 'Price: '.$item->getPrice().'<br />';
echo "<br />";
}
カート内のすべてのアイテムを取得する最良の方法