3

我正在获取客户订购的订单号(名称)列表。我试过使用

Mage::getModel('sales/order')->load($order_id);

但对我不起作用?实际上,我正在研究帮助台模块并尝试将订单分配给工单。

4

4 回答 4

12

好的朋友谢谢你的提示,我用这个得到了这个

require_once 'app/Mage.php'; 
      Mage::app();       

      $orders = Mage::getResourceModel('sales/order_collection')
        ->addFieldToSelect('*')
        ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
        ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
        ->setOrder('created_at', 'desc')
    ;   

     $this->setOrders($orders); 

     foreach ($orders as $order):

    echo $order->getRealOrderId().' at '.$this->formatDate($order->getCreatedAtStoreDate()).' ('.$order->formatPrice($order->getGrandTotal()).')';

    endforeach;
于 2012-08-29T06:44:28.330 回答
3

你可以试试这个:

$yourCustomerId = '123123';
$field          = 'customer_id';
$collection     = Mage::getModel("sales/order")->getCollection()
                   ->addAttributeToSelect('*')
                   ->addFieldToFilter($field, $yourCustomerId);
echo "<pre>";
print_r($collection);
echo "</pre>";

// if the customer is logged in you can add this
if(!Mage::getSingleton('customer/session')->isLoggedIn()){
    $yourCustomerId = Mage::getSingleton('customer/session')->getCustomer()->getId();
    $field          = 'customer_id';
    $collection     = Mage::getModel("sales/order")->getCollection()
                       ->addAttributeToSelect('*')
                       ->addFieldToFilter($field, $yourCustomerId);
    echo "<pre>";
    print_r($collection);
    echo "</pre>";
}
于 2012-08-28T14:51:21.240 回答
3

你也可以试试这个

$customer = Mage::getSingleton('customer/session')->getCustomer();
$email = $customer->getEmail();     

现在您的 $email 变量中有客户电子邮件地址。因此,您可以使用此电子邮件地址轻松获取订单,如下所示:

 $orderCollection = Mage::getModel(‘sales/order’)->getCollection();
 $orderCollection->addFieldToFilter(‘customer_email’, $email);

foreach ($orderCollection as $_order)
{
    echo $_order->getRealOrderId() ;
    echo $this->formatDate($_order->getCreatedAtStoreDate()) ;
    echo $_order->getShippingAddress() ? $this->escapeHtml($_order->getShippingAddress()->getName()) ;
    echo $_order->formatPrice($_order->getGrandTotal());
    echo $_order->getStatusLabel();
 }
于 2014-01-02T12:42:25.367 回答
1

$orders = Mage::getModel('sales/order')->getCollection();

$orders->getSelect()->where('e.customer_id ='.$customer_id);

于 2012-08-28T14:40:36.383 回答