cancel
Showing results for 
Search instead for 
Did you mean: 

Echo Total Sales From Specific Stores

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Echo Total Sales From Specific Stores

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):

 

qKgPr.png

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.

1 REPLY 1

Re: Echo Total Sales From Specific Stores

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();

 

Find helpful ? Consider Giving Kudos to this post.
Problem solved? Click Accept as Solution!"
Qaisar Satti