我想通过使用Magento的getQuote
功能获取购物车详细信息。我怎么能这样做?
$cart = Mage::getModel('checkout/cart')->getQuote();
当我打印$cart
页面停止执行时,会显示空白页面。
但是当我写作
$cart = Mage::getModel('checkout/cart')->getQuote()->getData();
并打印一个数组将显示的$cart
。但我想跟踪完整的购物车数据(产品ID,产品价格和所有信息一样)。
有没有其他方法可以找到购物卡数据?
答案 0 :(得分:26)
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
更安全,但正如您所见,不会返回受保护/私有变量。
答案 1 :(得分: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());