2014-10-29 24 views
1

我尝试写这样的代码我怎么可以得到所有产品,我买

public function allsalesblock(){ 
    echo 'other block '; 
    $orders = Mage::getResourceModel('sales/order_collection') 
     ->addFieldToSelect('*') 
     ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getId()); 
     ->addAttributeToSort('created_at', 'DESC'); 


    $order = Mage::getModel("sales/order")->load($orders); //load order by order id 
    $ordered_items = $order->getAllItems(); 
    foreach($ordered_items as $item){ 
     echo $item->getItemId(); //product id 
     echo $item->getSku(); 
     echo $item->getQtyOrdered(); //ordered qty of item 
     echo $item->getName(); 
    } 
    } 

但是,这并不工作 - 我看到白色的屏幕。我发现这个代码(修改)这里How can I display all products bought by a customer in magento?

+0

将'php_flag display_errors on'添加到'.htaccess'文件中。您是否将该功能添加到块中,还是独立文件? – clockworkgeek 2014-10-29 11:57:07

回答

0

您可以通过下面的代码得到它,

<?php 

require_once('app/Mage.php'); //Path to Magento 
umask(0); 
Mage::app(); 



$email = '[email protected]'; 
$_orders = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('customer_email',$email);      


foreach ($_orders as $order) { 
    $id[]= $order->getId(); 
} 

//print_r($id); 

foreach ($id as $order_id) { 
$order = Mage::getModel('sales/order')->load($order_id); 
#get all items 
$items = $order->getAllItems(); 
$itemcount= count($items); 
$data = array(); 
$i=0; 
#loop for all order items 
foreach ($items as $itemId => $item) 
{ 
    $data[$i]['name'] = $item->getName(); 
    $data[$i]['price'] = $item->getPrice(); 
    $data[$i]['sku'] = $item->getSku(); 
    $data[$i]['id'] = $item->getProductId(); 
    $data[$i]['qty'] = $item->getQtyToInvoice(); 
} 
#displaying the array in order to see the products 
echo '<pre/>';print_r($data); 

} 

在这里,只要你想获得其客户购买了产品更改电子邮件地址,

$email = '[email protected]';