2

私は magento ストアのルート フォルダー (1.4) の外で作業しており、顧客の注文合計と最後の注文日を取得したいと考えています。私はこれから始めました:

$customer = Mage::getModel('customer/customer')->load($entity_id);
         $customerTotals =Mage::getResourceModel('sales/sale_collection')
              ->setCustomerFilter($customer)
              ->load()
              ->getTotals();

         echo $customerTotals->getNumOrders();
         echo money_format('$%i',$customerTotals->getLifetime());

これは間違った顧客からの合計を私に与えているようです...また、最終注文日に顧客を獲得する方法がよくわかりません。

任意の助けをいただければ幸いです。

4

1 に答える 1

4

これはうまくいき、注文の総数、総売上、および特定の顧客の最新の注文が得られます。

コードは少し短くすることができますが、わかりやすくするために次のようにします...

$customerId = 2;
$orderCollection = Mage::getModel('sales/order')->getCollection()
    ->addFilter('customer_id', $customerId)
    ->setOrder('created_at', Varien_Data_Collection_Db::SORT_ORDER_DESC)
;
$numberOfOrders = $orderCollection->count();
$newestOrder = $orderCollection->getFirstItem();

$orderCollection->clear()->getSelect()
    ->columns(array('total_sales'=>'SUM(main_table.base_grand_total)'))
    ->group('customer_id')
;
$totalSales = $orderCollection->getFirstItem()
    ->getData('total_sales');

//Some output to confirm...
echo "<p>" . $numberOfOrders . "</p>";
echo "<p>" . Mage::helper('core')->currency($totalSales, true, false) ."</p>";
echo "<p>" . $newestOrder->getData('increment_id') ."</p>";
于 2012-09-01T19:56:42.827 に答える