Php 如何在magento中获取所有上次订单状态?

Php 如何在magento中获取所有上次订单状态?,php,magento,status,orders,Php,Magento,Status,Orders,如何在Magento中获取最后一个订单状态 e、 g订单可能有多个状态,但我想获取最后一个状态订单的状态。 1.待处理=>2.处理=>3.完成 $myOrder=Mage::getModel('sales/order'); $orders=Mage::getModel('sales/mysql4_order_collection'); $orders->addFieldToFilter('status',array('in'=> array('processing', 'proce

如何在Magento中获取最后一个订单状态

e、 g订单可能有多个状态,但我想获取最后一个状态订单的状态。 1.待处理=>2.处理=>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) {
...
}
$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();
打印($allIds)。“

”; foreach($allIds作为$thisId){ ... }
实际上应该非常简单:

$status = Mage::getModel('sales/order')->getCollection()
    ->setOrder('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
    ->getFirstItem()
    ->getStatus();

请注意,
status
state
是两个稍有不同的字段,您可能需要仔细检查,并确保根据需要选择正确的字段。

实际上应该非常简单:

$status = Mage::getModel('sales/order')->getCollection()
    ->setOrder('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
    ->getFirstItem()
    ->getStatus();

请注意,
status
state
是两个稍有不同的字段,您可能需要仔细检查,并确保根据您的需要选择正确的字段。

对收藏进行排序的两个最明显的字段是
entity\u id
或c
reated\u at
。但是,在几乎所有的情况下,您都应该看到相同的结果

按实体id划分

$status = Mage::getModel('sales/order')->getCollection()
    ->setOrder('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
    ->getFirstItem()
    ->getData('status')
;
由创建于

$status = Mage::getModel('sales/order')->getCollection()
    ->setOrder('created_at', Varien_Data_Collection::SORT_ORDER_DESC)
    ->getFirstItem()
    ->getData('status')
;

按以下两个最明显的字段对集合进行排序:
entity\u id
或c
reated\u at
。但是,在几乎所有的情况下,您都应该看到相同的结果

按实体id划分

$status = Mage::getModel('sales/order')->getCollection()
    ->setOrder('entity_id', Varien_Data_Collection::SORT_ORDER_DESC)
    ->getFirstItem()
    ->getData('status')
;
由创建于

$status = Mage::getModel('sales/order')->getCollection()
    ->setOrder('created_at', Varien_Data_Collection::SORT_ORDER_DESC)
    ->getFirstItem()
    ->getData('status')
;

谢谢你的回复,我没有15个声誉来评价你。但是实体id不是订单id,我们仍然得到相同的结果,因为实体id是在数据库中记录订单时提供给订单的id。这与增量id不同。我不建议您使用增量id对集合进行排序,因为这并不总是按顺序运行。使用实体id或创建的,如示例所示谢谢你的回复,我没有15个声誉来评价你。但是实体id不是订单id,我们仍然得到相同的结果,因为实体id是在数据库中记录订单时提供给订单的id。这与增量id不同。我不建议您使用增量id对集合进行排序,因为这并不总是按顺序运行。如示例所示,使用实体id或创建的id不适用于我,我认为我们必须使用增量id而不是顺序id,这是你的意思吗?此代码错误,不适用于我,因此我投了否决票。->addFieldToFilter('order_id','DESC')这实际上不需要某种顺序吗?此外,我看不到具有订单id标识符的字段。这导致我出现异常。你在哪个版本的magento上测试过这个?如果这是我的错误,我很高兴对此表示担忧,我没有测试就写了这篇文章。我认为正确的字段名是Drew在回答中提到的
entity\u id
。感谢您的确认,因为我不确定我是否在某些方面不清楚,但我理解收集工作的方式是,您的代码仍然不好。->addFieldToFilter('entity_id','DESC')不好,我不适合我,我认为我们必须使用增量_id而不是顺序_id,这是你的意思吗?此代码错误,不适合我,所以我投了否决票。->addFieldToFilter('order_id','DESC')这实际上不需要某种顺序吗?此外,我看不到具有订单id标识符的字段。这导致我出现异常。你在哪个版本的magento上测试过这个?如果这是我的错误,我很高兴对此表示担忧,我没有测试就写了这篇文章。我认为正确的字段名是Drew在回答中提到的
entity\u id
。感谢您的确认,因为我不确定我是否在某些方面不清楚,但我理解收集工作的方式是,您的代码仍然不好。->addFieldToFilter('entity_id','DESC')在这里不好