【问题标题】:How to get all last order status in magento?如何在magento中获得所有最后的订单状态?
【发布时间】:2012-08-19 09:51:24
【问题描述】:

如何在 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) {
...
}

【问题讨论】:

    标签: php magento status orders


    【解决方案1】:

    订购收藏的两个最明显的字段是entity_id 或created_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')
    ;
    

    【讨论】:

    • 感谢您的回复,我没有 15 名声望来评价您。但是 entity_id 不是 order_id,我们仍然得到相同的结果
    • entity_id 是订单在数据库中记录时的id。这与增量 ID 不同。我不建议您使用增量 id 来订购您的收藏,因为这并不总是按顺序运行。使用 entity_id 或 created_at 如示例所示
    【解决方案2】:

    其实应该很简单:

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

    请注意,statusstate 是两个略有不同的字段,您可能需要仔细检查并确保您选择了适合您需要的字段。

    【讨论】:

    • 对我不起作用,我认为我们必须使用 increment_id 而不是 order_id,你是这个意思吗?
    • 这段代码是错误的,对我不起作用,所以我投了反对票。 ->addFieldToFilter('order_id', 'DESC') 这实际上不需要某种顺序吗?我也看不到带有 order_id 标识符的字段。这对我来说是个例外。你在哪个版本的magento上测试过这个?如果这是我的错误,我很乐意投票
    • 对不起,我没有测试就写了这个。我认为正确的字段名称是 entity_id,正如 Drew 在他的回答中提到的那样。
    • 感谢您的确认,因为我不确定我是否有不清楚的地方
    • 但我理解集合如何工作的方式是你的代码仍然不好。 ->addFieldToFilter('entity_id', 'DESC') 这里不好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 2012-01-08
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多