放棄されたカートの問題に対しては、少し異なるアプローチを取ります。
商品を追加して「ショッピングカートを作成」するたびに、magentoがデータベースに保存するMage_Sales_Model_Quoteを作成します。注文を完了するたびに、Mage_Sales_Model_Orderオブジェクトを作成します。Mage_Sales_Model_Orderオブジェクトは、元の見積もりIDへの参照を保持します。
したがって、すべての注文をクエリして見積もりIDのリストを取得し、見積もりコレクションを作成して、注文がある見積もりをフィルタリングできます。これにより、カートが放棄されるたびにリストが表示されます。
//may start to degrade as orders pile up. Add date filters to
//prevent or look into properly joining things in.
$orders = Mage::getModel('sales/order')
->getCollection()
->addAttributeToSelect('*');
var_dump('Order Count', count($orders));
$quote_ids = $orders->getColumnValues('quote_id');
$quote_ids = array_filter($quote_ids, 'is_numeric');
$carts = Mage::getModel('sales/quote')
->getCollection();
var_dump('All Cart Count:');
var_dump(count($carts));
$carts = Mage::getModel('sales/quote')
->getCollection()
->addFieldToFilter('entity_id',array('nin'=>$quote_ids));
var_dump('Filtered Cart Count:');
var_dump(count($carts));
foreach($carts as $cart)
{
var_dump('abandoned cart', $cart);
}
あなたの他の質問に関しては、それらは単一のスタックオーバーフローの質問に入るにはあまりにも複雑です。私はMagentoを読んで基本的なアーキテクチャの感触をつかみ、ライブコマースバグのデモを使用して、どのコントローラーを探しているのかを把握しました。(上記にリンクされている両方のプロジェクトは、私のもの、自己リンク、購入者の注意などです)