2012-08-31 79 views
2

我在magento商店根文件夾(1.4)之外工作,我想獲得客戶訂單總數以及最後一個訂單的日期。我已經開始用這樣的:PHP Magento獲得客戶最後訂單總計

$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

這將起作用,給你給定客戶的訂單總數,總銷售額和最近的訂單數。

的代碼可以縮短一點,但爲清楚起見,如下...

$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>"; 
+0

德魯,這是真棒!有沒有辦法拉上最後一個訂單的日期? – simian

+0

我用$ newestOrder-> getData('created_at'),但不知道這是否是帳戶創建日期 – simian

+2

是的,$ newestOrder-> getData('created_at')會給你創建訂單的日期 –