2014-01-23 74 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

相關問題