2012-02-21 5 views
0

Magento用の出荷モジュールを開発中ですが、現在そのセッションのカートに入っているアイテムを入手するにはどうしたらいいですか?Magento Shipping Module:現在カートに入っているすべてのアイテムを取得する

私は、インターネット上でいくつかのチュートリアルに従う、彼らが使用する:

if ($request->getAllItems()) { 
    foreach ($request->getAllItems() as $item) { 
     //do something here..... 

    } 
} 

を私の問題は、私は$ item変数にあります正確に何の情報/データを知らないということです?

配送料を計算するために現在カートに入っている商品の重量と価格を取得したいと思います。 Mage :: logを使用して$ item値を印刷しようとしたか、またはprint_rまたはvar_dumpを使用して画面に印刷しましたが、正常ではありません。ログは空で、変数は画面に表示されません。

誰かが$item attributes/methodの入手方法を教えてもらえますか、または現在カートに入っている製品情報を入手する他の方法はありますか?

任意の助けもいただければ幸いです:)

+0

"私の問題は、$ item変数にある情報/データが正確にわからないということです。" - あなたはいつも '$ item-> getData()'や '$ item-> debug()'を使ってすべてのデータ(属性)を "取得"することができます。 そしてメソッドを取得するには 'get_class_method(object)'を使用してください。 – xyz

答えて

2

をあなたはMage::getSingleton('checkout/session')->getQuote();

  • getItemsCollection()で使用可能な3つの方法のいずれかを使用してこれをachiveすることができます - すべての項目をretrive - sales/quote_itemsコレクション
  • getAllItems()をretrive
  • getAllVisibleItems() - 削除されていないアイテムがあります。parent_item_id != null
0

あなたは$アイテムについての情報をお知りになりたい場合は、あなたがこれを行うことができます:

print_r($item->getData()); 

アイテムの重量を取得したい場合は、ここにある:

$item->getWeight(); 
+0

print_r、var_dumpを使用して印刷し、Mage :: logを使用してログファイルに項目を出力しますが、画面には何も表示されず、ログも空です。出荷計算はAJAXを使用して呼び出されるチェックアウト段階で行われるため、スクリーンへの印刷が機能しない原因となる可能性があります。 – Calua

+0

これを試してください:print_r($ item-> getData());出口; – sondoha

+0

私はそれを試してみましたが、AJAX呼び出しは実行し続けていて返されませんでした(AJAX応答なし) – Calua

1

私が探していましたこの解決策は以下にあります。テストされていません。

$CartSession = Mage::getSingleton('checkout/session'); 
foreach($CartSession->getQuote()->getAllItems() as $item) 
{ 
    $productWeight = $item->getWeight(); 
    $productExPrice = $item->getPrice(); // price excluding tax 
    $productIncPrice = $item->getPriceInclTax(); // price excluding tax 
} 
関連する問題