从订单ID,电子邮件和客户的姓氏中获取订单状态

时间:2014-01-23 11:49:51

标签: magento

我目前正在寻找一种方法,我可以根据order idcustomer 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中写的内容。如果有人能让我纠正?

1 个答案:

答案 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