MAGENTO - 将最后创建的产品加载到购物车

时间:2013-08-11 09:54:59

标签: magento cart

是否可以在我的购物车中加载最后注册(创建)的产品? 怎么样?

我知道这听起来很疯狂,但我的项目之一需要这个。

我认为这是产品加载的部分:

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;
}

这(如果我是对的)我需要更换为商店中的最后一个产品 - 声音我们需要这个....

2 个答案:

答案 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
}