2011-08-23 69 views
2

在訂單視圖(查看客戶訂單時的主屏幕)中,我想添加一些表格行並添加客戶的生命週期銷售額(總銷售額)和訂單總金額。Magento:抓取/顯示客戶的終身銷售統計和訂單總訂單數量查看頁面

文件我要添加的代碼是在這裏:應用程序/設計/ adminhtml /默認/缺省的/模板/銷售/訂單/查看/ info.phtml

在這個文件中,如下:

<?php foreach ($this->getCustomerAccountData() as $data):?> 
    <tr> 
    <td class="label"><label><?php echo $data['label'] ?></label></td> 
    <td class="value"><strong><?php echo $data['value'] ?></strong></td> 
    </tr> 
<?php endforeach;?> 

是我在哪裏添加我需要的行/單元格和正確的信息。你能告訴我如何獲得必要的數據嗎?

回答

7

你這是怎麼弄的壽命銷售:

$customer = Mage::getModel('customer/customer')->load($customerId); 
$customerTotals = Mage::getResourceModel('sales/sale_collection') 
    ->setOrderStateFilter(Mage_Sales_Model_Order::STATE_CANCELED, true) 
    ->setCustomerFilter($customer) 
    ->load() 
    ->getTotals(); 
$customerLifetimeSales = $customerTotals->getLifetime(); 
$customerNumberOfOrders = $customerTotals->getNumOrders(); 

這是$ customerTotals一個的var_dump:

object(Varien_Object)[662] 
    protected '_data' => 
    array 
    'lifetime' => float 10503.13 
    'base_lifetime' => float 10503.13 
    'base_avgsale' => float 92.9480530973 
    'num_orders' => int 113 
    'avgsale' => float 92.9480530973 
    protected '_hasDataChanges' => boolean false 
    protected '_origData' => null 
    protected '_idFieldName' => null 
    protected '_isDeleted' => boolean false 

您可以將這些代碼在你的塊上的方法,並調用它每一行。財產以後這樣的:

public function getCustomerTotals(Mage_Customer_Model_Customer $customer) 
{ 
    // TODO: Add necessary validation... 
    return Mage::getResourceModel('sales/sale_collection') 
     ->setOrderStateFilter(Mage_Sales_Model_Order::STATE_CANCELED, true) 
     ->setCustomerFilter($customer) 
     ->load() 
     ->getTotals(); 
} 

,並在你的代碼中有你可以添加:

<?php $customerTotals = $this->getCustomerTotals($customer); ?> 
<td><?php echo $customerTotals->getLifetime(); ?></td> 
+0

我將不得不給這個很快!這個'項目'現在已經進入了後退階段,但如果這項工作成功的話,那麼這是一個不得名單! – Geoff

+0

我終於在一個模塊中使用它,將它添加到訂單概覽頁面(稍作修改)。謝謝! – Geoff

1

不知道這是否是由於升級,但現在有必要補充一點:

->setOrderStateFilter(Mage_Sales_Model_Order::STATE_CANCELED, true) 

所以,代碼將是:

return Mage::getResourceModel('sales/sale_collection') 
     ->setOrderStateFilter(Mage_Sales_Model_Order::STATE_CANCELED, true) 
     ->setCustomerFilter($customer) 
     ->load() 
     ->getTotals(); 
+1

謝謝您添加此數據,否則數據將會出錯(或者至少與客戶帳戶中的數據不一樣)。 – Geoff

相關問題