Получить подробную информацию о корзине в 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());