2011-01-07 16 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オブジェクトのコレクションを返します。

このすべては、あなたがこのような製品検査できることを意味します:

PSを。空白のページを取得する理由は、オブジェクト全体をダンプすることが再帰に陥り、ページがタイムアウトしたり、PHPがメモリ不足になったりするためです。 getDataまたはdebugを使用する方が安全ですが、これまで見たように、protected/private変数は返されません。

+4

唯一のものはxdebugのは、それを作るインストールされますオブジェクトをPHPのvar_dump関数に落とし、ほとんどの再帰関連の問題を回避する "安全"。 –

+1

foreach($ cart-> getItems()を$ itemとして)の代わりにforeach($ cart-> getAllItems()を$ itemとして) –

+0

@GershonHerczeg - 良いキャッチ、ありがとう。 – clockworkgeek

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()); 
関連する問題