MAGENTO-将上次创建的产品加载到购物车

MAGENTO-将上次创建的产品加载到购物车,magento,cart,Magento,Cart,是否可以在我的购物车中加载上次注册(创建)的产品? 怎么做 我知道这听起来很疯狂,但我的一个项目需要这个 我认为这是产品加载的部分: cartcontroller.php /** * Initialize product instance from request data * * @return Mage_Catalog_Model_Product || false */ protected function _initProduct() { $productId = (int

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

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

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

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

这个(如果我是对的)我需要用最后一个在商店里创建的产品来替换-听起来很奇怪,但我需要这个…

你可以像这样在购物车中获取物品:

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

您就快到了-请尝试以下代码:

$collection = Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection();
$collection->getSelect()->order('created_at DESC');
$latestItem = $collection->getLastItem();
请注意,当您获得最新的报价项目时,您实际上并没有获得产品。要获得实际产品,您需要添加以下行:

$product = $latestItem->getProduct();

谢谢你的回答,但这并不完全是我想做的,我把我的文字改得更具体了。如果用户将产品添加到购物车中-我需要在购物车中显示最后一个在店内创建的产品,而不是选择的产品-我知道这对您没有意义,但我需要它来进行一些计算。致命错误:调用未定义的方法Mage::getSingelton():-/我缺少什么吗?对不起,我是新来的。。。但我想你没有明白我的意思:如果用户将产品添加到购物车中,我需要在购物车中显示最后一个在店创建的产品,而不是选择的产品,我知道这对你来说没有意义,但我需要这个来进行一些计算。