Я пытаюсь получить идентификатор продукта, который был недавно добавлен в корзину пользователя.Быстрый поиск в Google показал эту функцию
Mage::getSingleton('checkout/session')->getLastAddedProductId(true);
, которая также используется в Mage_Checkout_Block_Cart_Crosssell.Однако когда я пытаюсь вызвать функцию в моем собственном контроллере, она ничего не возвращает.Я попытался создать базовую сессию через
Mage::getSingleton('core/session', array('name'=>'frontend'))
, однако этот подход не работает.Я также пытался создать блок Crossell и сделать защищенный метод, охватывающий getLastAddedProductId
, функцией public, однако, которая возвращает null, так же, как и при попытке вызвать его самостоятельно.
Есть ли что-то, что мне нужновызвать или создать экземпляр для использования этой функции?Вот мой список источников для справки.
class Mymodule_Addcartaftermath_ItemaddedController extends Mage_Core_Controller_Front_Action {
public function generatemessageAction() {
$parameters = $this->getRequest()->getParams();
if (isset($parameters['ajax_call'])) {
$latest_item_id = Mage::getSingleton('checkout/session')->getLastAddedProductId(true);
$response = array('response' => $latest_item_id);
echo json_encode($response);
} else {
$this->_redirect('/');
}
}
}
Я попытался просмотреть исходный код, в частности файл checkout / model / session.php в ядре, и я не могу найти определение функции.Я также посмотрел на определение класса его родителя, но не смог найти его там тоже.
Если этот метод мне не доступен, есть ли другой способ получить самый последний добавленный элемент?Я знаю, что элементы добавляются последовательно, и, возможно, я мог бы просто получить последний элемент списка элементов из корзины, однако это не сработает в случае, когда пользователь добавляет тот же элемент в корзину, существенно увеличивая количество, а не фактическоесам товар (например, пользователь добавляет ноутбук в корзину, когда он уже есть)