Я уже задавал этот вопрос в стеке Magento, так как я не получил ответа, я публикую его здесь. Я использую Magento 1.9, мне нужно добавить настраиваемый фильтр на основе категорий (категория верхнего уровня - дочерняя категория по умолчанию) в отчетах Magento. Ниже приведен код, который я написал для добавления параметров фильтра:
Путь к файлу - app/code/local/Mage/Adminhtml/Block/Report/Filter/Form.php
class Mage_Adminhtml_Block_Report_Filter_Form extends Mage_Adminhtml_Block_Widget_Form{
...
protected function _prepareForm()
{
...
$fieldset->addField('top_category', 'select', array(
'name' => 'top_category',
'options' => $this->getStoreCategories(),
'label' => Mage::helper('reports')->__('Select Store'),
'title' => Mage::helper('reports')->__('Select Store')
));
$form->setUseContainer(true);
$this->setForm($form);
return parent::_prepareForm();
}
...
protected function getStoreCategories(){
$rootCategory = Mage::getModel('catalog/category')->load(2);
$topLevelCategories = $rootCategory->getChildrenCategories();
$allStores=array();
$allStores['']='';
foreach ($topLevelCategories as $top)
{
$allStores[$top->getId()]=$top->getName();
}
return $allStores;
}
}
Но я не знаю, как и в каком файле должна быть отфильтрована коллекция чтобы получить отчет по категории продукта.
Как я могу этого добиться? Любая помощь будет оценена по достоинству.