2014-01-23 73 views
0

我目前正在寻找一种方法,我可以根据order id,customer emailcustomer last name获得订单状态。从订单编号,电子邮件和客户姓氏获取订单状态

我写这段代码到目前为止

public function orderHistoryAction(){ 
    $req = $this->getRequest(); 
    $oid = $req->getParam('oid', ''); 
    $lnm = $req->getParam('lnm', ''); 
    $eml = $req->getParam('eml', ''); 

    $order = Mage::getModel('sales/order')->loadByIncrementId($oid); 
    if ($order->getId()) { 
     if ((strcasecmp($lnm, $order->getCustomerLastname()) == 0) && (strcasecmp($eml, $order->getCustomerEmail()) == 0)) { 
      echo $order->getStatusLabel(); 
     } else { 
      echo 'invalid'; 
     } 
    } else { 
     echo 'invalid'; 
    } 
} 

,并为双方客户客人运作良好。但这在我看来并不是正确的做法。我应该使用像写在this bloghere too。如果有人能让我正确吗?

+0

可以明显地使一个新的模块,以得到订单状态订单编号,电子邮件和客户的姓氏。在你的模块中使用一个观察者相同。 – Slimshadddyyy

+0

是不是在我的模块中存储信息的开销他们显示状态? –

回答

1

如果你想使用集合,你需要看起来像代码:

$order_collection = Mage::getModel('sales/order')->getCollection() 
->addFieldToFilter('increment_id', array('eq' => $oid)) 
->addFieldToFilter('customer_lastname', array('eq' => $lnm)) 
->addFieldToFilter('customer_email', array('eq' => $eml)); 

if ($order_collection->getSize() > 0) { 
    $order = $order_collection->getFirstItem(); 
    .... 
} else { 
    .... 
} 

您可以在这里找到另一个答案:Filter magento order collection

相关问题