2011-01-07 6 views
14

Magento의 getQuote 기능을 사용하여 장바구니 정보를 얻고 싶습니다. 어떻게해야합니까? Magento에서 장바구니 정보 얻기

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

은 내가 $cart 페이지 실행을 중지하고 빈 페이지가 표시됩니다 인쇄 할 때. 하지만이 $cart

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

를 작성하고 인쇄 할 때 배열이 표시됩니다. 하지만 전체 장바구니 데이터 (제품 ID, 모든 정보와 마찬가지로 제품 가격)를 추적하고 싶습니다.

다른 방법으로 쇼핑 카드 데이터를 찾을 수 있습니까?

답변

25

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을 사용하면 더 안전하지만 보호 된/개인 변수는 반환하지 않습니다. getQuote의() 방법을 사용하여

+4

그것을 만드는 "안전한"PHP var_dump 함수에 객체를 드롭하고 대부분의 재귀 관련 문제를 피하십시오. –

+1

foreach ($ cart-> getItems() $ item) 대신 foreach ($ cart-> getAllItems()를 $ item로 사용)라는 간단한 해결책이 있습니다. –

+0

@GershonHerczeg - 좋은 소식입니다. 고마워요. – clockworkgeek

2

가져 오기 쇼핑 카트 항목

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

getQuote의() 방법없이 장바구니 항목을 가져

여기에 추가 할 수있는 유일한 것은 Xdebug는을 설치하고
$cart = Mage::getModel('checkout/cart')->getItems(); 
echo "<pre>";print_r($cart->getData());