Php 如何在magento中获取所有上次订单状态?
如何在Magento中获取最后一个订单状态 e、 g订单可能有多个状态,但我想获取最后一个状态订单的状态。 1.待处理=>2.处理=>3.完成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
$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
或created\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
或created\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')在这里不好