Получить подробную информацию о корзине в Magento

Я хочу получить детали корзины покупок, используя функцию Magento getQuote. Как я могу это сделать?

$cart = Mage::getModel('checkout/cart')->getQuote();

Когда я печатаю $cart Выполнение стоп-листа страницы и отображается пустая страница.  Но когда я пишу

$cart = Mage::getModel('checkout/cart')->getQuote()->getData();

и напечатайте $cart массив. Но я хочу отслеживать данные полной корзины (идентификатор продукта, цена продукта, как и вся информация).

Есть ли какой-либо другой способ, с помощью которого я могу найти данные торговой карты?

Ответы

Ответ 1

Объектом, возвращаемым getQuote, является Mage_Sales_Model_Quote. Он имеет метод getAllItems, который, в свою очередь, возвращает коллекцию Mage_Sales_Model_Quote_Item.

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

$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
    $productId = $item->getProduct()->getId();
    $productPrice = $item->getProduct()->getPrice();
}

PS. Причина, по которой вы получаете пустую страницу, состоит в том, что сброс всего объекта, скорее всего, попал в рекурсию, а время ожидания страницы, или у PHP закончилась нехватка памяти. Использование getData или debug безопаснее, но, как вы видели, не возвращает защищенные/закрытые переменные.

Ответ 2

Получить элементы корзины покупок с помощью метода getQuote()

$cart = Mage::getModel('checkout/cart')->getQuote()->getItemsCollection();
echo "<pre>";
print_r($cart->getData());

Получить элементы корзины покупок без метода getQuote()

$cart = Mage::getModel('checkout/cart')->getItems();
echo "<pre>";print_r($cart->getData());