Magento 按天获取所有订单总数

Magento 按天获取所有订单总数,magento,days,totals,Magento,Days,Totals,我需要每天得到所有订单的总数。 2013-03-07-40美元(当天所有订单的总额) 2013-03-06 - 50$ 等 有人能帮忙吗 谢谢。我想您不需要任何代码。只需进入“管理”,在“报告>销售>订单”下,选择您的日期范围,并将时段设置为“天” 如果这不是您要找的,我想我们只需要更多关于您要找什么的详细信息。我发现有很多订单,您往往会很快达到内存限制,所以我一次只加载一年左右。如果遇到内存限制,可能也需要这样做。如果你愿意,可以忽略所有这些。我也没有测试它,因为我手头没有测试安装(这只是对我

我需要每天得到所有订单的总数。 2013-03-07-40美元(当天所有订单的总额) 2013-03-06 - 50$ 等 有人能帮忙吗


谢谢。

我想您不需要任何代码。只需进入“管理”,在“报告>销售>订单”下,选择您的日期范围,并将时段设置为“天”


如果这不是您要找的,我想我们只需要更多关于您要找什么的详细信息。

我发现有很多订单,您往往会很快达到内存限制,所以我一次只加载一年左右。如果遇到内存限制,可能也需要这样做。如果你愿意,可以忽略所有这些。我也没有测试它,因为我手头没有测试安装(这只是对我已经编写的一些代码的快速修改),但这至少应该是聚合数据的一个良好开端

$totals = array();

$ocol = Mage::getModel('sales/order')->getCollection();
$ocol->load();

foreach ($ocol->getItems() as $order) { 
    $createdat = new DateTime($order->getCreatedAt());
    $totals[$datetime->format('w')] += $order->getBaseGrandTotal();
}

现在应该有一个数组,其中键是日期,值是该日期的总和。但它使用所有订单,而不考虑状态。不确定这是否是你想要的,但既然你还没有提到到目前为止你已经尝试了什么,我猜你只是在寻找一个起点,这可能就足够了。请随意询问是否有不合理的地方。

您可能需要查看创建的
销售\u订单\u聚合\u表。这是用于订单报告部分的表。Magento按天数、门店和状态汇总所有订单。
因此,它将大大减少计算所有这些数据的工作量,因为这些数据已经计算并存储在那里了

此外,也没有真正需要使用模型层来实现您的目的。只需使用Varien db适配器即可。 下面是一个如何获取StoreId 1的“天”-“订单总数”和订单状态“完成”的示例:

我还没有尝试过这段代码,所以可能会有输入错误,但一般来说,它应该可以满足您的需要

此外,聚合表不会自动填充,因此您需要在管理面板中定期更新统计信息,或者配置一个cron作业来为您执行此操作(可能它已经创建,并且是Magento发行版的一部分-我只是不知道)


玩得开心。

您是否希望通过SOAP接口实现这一点?通过一个独立的脚本?你在乎吗?您尝试过什么?报告将显示特定日期的所有订单及其信息,但我需要所有订单的总数,而不是每个订单的总数。类似这样的内容:$orderCollection->clear()->getSelect()->列(数组('total_sales'=>'SUM(main_table.base_grand_total'))->组('created_at');-但是这段代码不起作用,所以你想看到一个报告,它有如下内容:第1天:$5000第2天:$6500,对吗?这就是我正在描述的报告。例如,类似这样的事情:为了确保我没有做错,我不想争论,只要为你节省一些时间重新发明轮子,如果你正在寻找的东西已经存在的话。是的,这就是我需要的。日期-订购的项目-总计。但我需要编写自己的代码来获取这些数据并用JSon编码。我认为这个答案对面临同样问题的人可能仍然有用,所以我提交了另一个答案,其中包含一些代码,让您开始。
$connection = Mage::getResource('core/resource')->getConnection('core_read');
$select = $connection->select()
    ->from($connection->getTableName('sales_order_aggregated_created'), array('date'=>'period', 'order_total'=>'total_income_amount'))
    ->where('store_id=:storeId')
    ->where('order_status=:orderStatus');
$bind = array(':storeId'=>1,':orderStatus'=>'complete');
$rows = $connection->fetchAll($select, $bind);
print_r($rows);