我目前正在寻找一种方法,我可以根据order id
,customer email
和customer 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 blog或here too中写的内容。如果有人能让我纠正?
答案 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