Answers:
$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()
。每当您考虑在magento中使用-> load()时,您都可以指望性能不佳,有时还没有其他性能选项确实可以,但事实并非如此
有几种方法以不同的方式起作用:
$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 />";
}
获取购物车中所有物品的最佳方法
下面的代码用于获取购物车物品
$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()) {
}
}