如何获取Magento的最后订单状态?
例如,订单可能具有多个状态,但我想获取最后一个状态订单的状态。 1.Pending => 2.processing => 3的完整
$myOrder=Mage::getModel('sales/order');
$orders=Mage::getModel('sales/mysql4_order_collection');
$orders->addFieldToFilter('status',array('in'=> array('processing', 'processed', 'pending fullfilment')));
$orders->addFieldToFilter('store_id',array("in" => array('8', '9')));
$orders->addAttributeToSort('created_at', 'asc');
$allIds=$orders->getAllIds();
print_r($allIds).'</br></br>';
foreach($allIds as $thisId) {
...
}
答案 0 :(得分:3)
按订单收集的两个最明显的字段是entity_id
或c reated_at
。但在几乎所有情况下,你都应该看到每个人的相同结果......
按entity_id
$status = Mage::getModel('sales/order')->getCollection()
->setOrder('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
->getFirstItem()
->getData('status')
;
按created_at
$status = Mage::getModel('sales/order')->getCollection()
->setOrder('created_at', Varien_Data_Collection::SORT_ORDER_DESC)
->getFirstItem()
->getData('status')
;
答案 1 :(得分:0)
实际上应该非常简单:
$status = Mage::getModel('sales/order')->getCollection()
->setOrder('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
->getFirstItem()
->getStatus();
请注意,status
和state
是两个略有不同的字段,您可能需要仔细检查并确保根据需要选择正确的字段。