2013-08-11 3 views
0

Можно ли загрузить последний зарегистрированный (созданный) Продукт в моей корзине? Как?MAGENTO - Загрузить последний созданный Продукт в корзину

Я знаю, это звучит безумно, но мне нужно это для одного из моих проектов.

Я думаю, что это та часть, где загружается Продукт:

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

Это (если I'm справа) мне нужно заменить последний в магазине создан продукт - звук weired, но мне нужно это ....

ответ

0

Вы можете получить элементы в корзине, как это:

$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems(); 

Затем проведите по пунктам и посмотрите, какой из них имеет самый большой идентификатор.

$max = 0; 
$lastItem = null; 
foreach ($items as $item){ 
    if ($item->getId() > $max) { 
     $max = $item->getId(); 
     $lastItem = $item; 
    } 
} 
if ($lastItem){ 
    //do something with $lastItem 
} 
+0

Спасибо за ваш ответ - но то не точно, что я пытался сделать - Ii изменил мой текст на вершине, чтобы быть более точным. Если пользователь добавляет продукт в корзину - мне нужно показать последнее в магазине, созданное в тележке, которое было выбрано, - я знаю, что это не имеет смысла для вас, но мне нужно это для некоторых вычислений. –

1

Ты почти там - попробуйте этот код:

$collection = Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection(); 
$collection->getSelect()->order('created_at DESC'); 
$latestItem = $collection->getLastItem(); 

Обратите внимание, что когда вы получаете последнюю цитату деталь, вы на самом деле не получение продукта. Для того, чтобы получить реальный продукт, вам нужно будет добавить следующую строку:

$product = $latestItem->getProduct(); 
+0

Неустранимая ошибка: вызов неопределенного метода Mage :: getSingelton(): -/Я что-то упустил? Извините, но я очень новичок в этом ... Но я думаю, что у меня не получилось: Если пользователь добавляет товар в корзину - мне нужно показать последний IN SHOP, созданный в корзине выбранный - я знаю, что это не имеет смысла для вас, но мне нужно это для некоторых расчетов. –

Смежные вопросы