如何在Magento中收集所有订单?

时间:2016-04-21 07:49:16

标签: sql magento collections

我需要检索一段时间内所有订单的集合。

另外,我需要查询每天的订单数量。

以下是我的尝试:

$fromDate = '2016-01-15 00:00:00';
    $toDate = '2016-02-15 00:00:00';

    $orders = Mage::getModel('sales/order')->getCollection()
        ->addAttributeToSelect('created_at')
        ->addAttributeToFilter('created_at', array('from'=>$fromDate, 'to'=>$toDate));

    $orders->getSelect()
        ->columns('COUNT(created_at)')
        ->group('created_at');

1 个答案:

答案 0 :(得分:0)

以下内容应该能满足您的需求。就个人而言,我的运行时间为00:00:00至23:59:59。请注意,这将基于UTC(因为这是Magento存储时间/日期的方式)。您可能需要将这些偏移到商店时区。

$fromDate = '2016-03-01 00:00:00';
$toDate = '2016-03-31 23:59:59';

$orders = Mage::getModel('sales/order')->getCollection()
    ->addAttributeToSelect('created_at')
    ->addAttributeToFilter('created_at', array('gteq'=>$fromDate))
    ->addAttributeToFilter('created_at', array('lteq'=>$toDate));

$orders->getSelect()
    ->columns( 'COUNT(*) AS orders_count' )
    ->group( 'DATE_FORMAT(created_at, "%d-%m-%y")' );

foreach($orders as $order) {
    // logic
}