是否可以在我的购物车中加载最后注册(创建)的产品? 怎么样?
我知道这听起来很疯狂,但我的项目之一需要这个。
我认为这是产品加载的部分:
cartcontroller.php
/**
* Initialize product instance from request data
*
* @return Mage_Catalog_Model_Product || false
*/
protected function _initProduct()
{
$productId = (int) $this->getRequest()->getParam('product');
if ($productId) {
$product = Mage::getSingelton('checkout/session')->getQuote()->getAllItems()
->setStoreId(Mage::app()->getStore()->getId())
->load($productId);
if ($product->getId()) {
return $product;
}
}
return false;
}
这(如果我是对的)我需要更换为商店中的最后一个产品 - 声音我们需要这个....
答案 0 :(得分:1)
你快到了 - 试试这段代码:
$collection = Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection();
$collection->getSelect()->order('created_at DESC');
$latestItem = $collection->getLastItem();
请注意,当您获得最新报价项目时,您实际上并未获得该产品。要获得实际产品,您需要添加以下行:
$product = $latestItem->getProduct();
答案 1 :(得分:0)
您可以按照以下方式获取购物车中的商品:
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
然后遍历这些项目并查看哪个项目的ID最大。
$max = 0;
$lastItem = null;
foreach ($items as $item){
if ($item->getId() > $max) {
$max = $item->getId();
$lastItem = $item;
}
}
if ($lastItem){
//do something with $lastItem
}