I'm currently building a Magento Platform where I need to echo out the total sales from individual stores on a page (Like it does on the Dashboard home screen):
I've found some code in:
/app/code/core/Mage/Adminhtml/Block/Dashboard/Totals.php
class Mage_Adminhtml_Block_Dashboard_Totals extends Mage_Adminhtml_Block_Dashboard_Bar { protected function _construct() { parent::_construct(); $this->setTemplate('dashboard/totalbar.phtml'); } protected function _prepareLayout() { if (!Mage::helper('core')->isModuleEnabled('Mage_Reports')) { return $this; } $isFilter = $this->getRequest()->getParam('store') || $this->getRequest()->getParam('website') || $this->getRequest()->getParam('group'); $period = $this->getRequest()->getParam('period', '24h'); /* @var $collection Mage_Reports_Model_Mysql4_Order_Collection */ $collection = Mage::getResourceModel('reports/order_collection') ->addCreateAtPeriodFilter($period) ->calculateTotals($isFilter); if ($this->getRequest()->getParam('store')) { $collection->addFieldToFilter('store_id', $this->getRequest()->getParam('store')); } else if ($this->getRequest()->getParam('website')){ $storeIds = Mage::app()->getWebsite($this->getRequest()->getParam('website'))->getStoreIds(); $collection->addFieldToFilter('store_id', array('in' => $storeIds)); } else if ($this->getRequest()->getParam('group')){ $storeIds = Mage::app()->getGroup($this->getRequest()->getParam('group'))->getStoreIds(); $collection->addFieldToFilter('store_id', array('in' => $storeIds)); } elseif (!$collection->isLive()) { $collection->addFieldToFilter('store_id', array('eq' => Mage::app()->getStore(Mage_Core_Model_Store::ADMIN_CODE)->getId()) ); } $collection->load(); $totals = $collection->getFirstItem(); $this->addTotal($this->__('Revenue'), $totals->getRevenue()); $this->addTotal($this->__('Tax'), $totals->getTax()); $this->addTotal($this->__('Shipping'), $totals->getShipping()); $this->addTotal($this->__('Quantity'), $totals->getQuantity()*1, true); } }
To where I think it 'gets' the value but I'm not sure on how I could echo this out somewhere else?
I've also looked over the net to try and find functions close to this, obviously I found a few on how to get the store ID, but nothing on how to get that stores total sales.
Any ideas appreciated greatly.
Here is code you can use for your store collection
$period = '24h';
$isFilter =1; //store you want to filter
$store_id =1; //store you want to filter record
$collection = Mage::getResourceModel('reports/order_collection') ->addCreateAtPeriodFilter($period) ->calculateTotals($isFilter);
$collection->addFieldToFilter('store_id', $store_id);
$collection->load();$totals = $collection->getFirstItem();
echo $totals->getRevenue();
echo $totals->getTax();
echo $totals->getShipping();
echo$totals->getQuantity();