Respuestas:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
en $cart
usted obtuvo toda la colección de artículos del carrito y si desea obtener la identificación del producto, nombre que puede obtener al usar foreach loop
Encontré otra solución. El siguiente código me funciona.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
... Cada vez que piensa en usar -> load () en magento puede contar con un mal rendimiento, a veces no hay otro opción realmente, pero este no es el caso aquí ..
Existen varios métodos que funcionan de manera diferente:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
Devuelve una colección de artículos de cotización con todos los artículos asociados a la cotización actual.
$items = Mage::getSingleton('checkout/cart')->getItems();
Este es un acceso directo para el método anterior, pero si no hay comillas, devuelve una matriz vacía, por lo que no puede confiar en obtener una instancia de colección.
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
Carga la colección de elementos, luego devuelve una matriz de todos los elementos que no están marcados como eliminados (es decir, se han eliminado en la solicitud actual)
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
Carga la colección de elementos, luego devuelve una matriz de todos los elementos que no están marcados como eliminados Y no tienen un elemento primario (es decir, obtiene elementos para productos agrupados y configurables pero no sus elementos secundarios asociados). Cada elemento de la matriz corresponde a una fila mostrada en la página del carrito.
Elija lo que mejor se adapte a sus necesidades. En la mayoría de los casos, el último método es el que necesita, pero desafortunadamente Magento solo lo proporciona como matriz y no como colección.
Tenga en cuenta que Mage::getSingleton('checkout/cart')->getQuote()
y Mage::getSingleton('checkout/session')->getQuote()
son intercambiables.
$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 />";
}
La mejor manera de obtener todo el artículo en el carrito
El siguiente código se utiliza para obtener artículos del carrito
$cart = new Mage_Checkout_Model_Cart();
$cart->init();
foreach ($cart->getItems() as $item) {
// we can wrap our request in this IF statement
if (!$item->getParentItemId()) {
}
}