Вам потребуется реализовать новую massAction в контроллере продукта администратора.Хороший способ начать - взглянуть на контроллер продукта и посмотреть, как реализованы другие массовые действия.
Давайте посмотрим ... Сначала вам нужно добавить объявление массива в сетку.,Это можно сделать в app / code / core / Mage / Adminhtml / Block / Catalog / Product / Grid.php.Вам необходимо добавить следующее в метод _prepareMassaction:
$this->getMassactionBlock()->addItem('export', array(
'label' => Mage::helper('catalog')->__('Export to CSV'),
'url' => $this->getUrl('*/*/massExport', array('_current'=>true)),
));
Теперь вам нужно реализовать это новое действие в контроллере продукта (app / code / core / Mage / Adminhtml / controllers / Catalogue / ProductController).php):
public function massExportAction()
{
$productIds = $this->getRequest()->getParam('product');
if (!is_array($productIds)) {
$this->_getSession()->addError($this->__('Please select product(s).'));
$this->_redirect('*/*/index');
}
else {
//write headers to the csv file
$content = "id,name,url,sku\n";
try {
foreach ($productIds as $productId) {
$product = Mage::getSingleton('catalog/product')->load($productId);
$content .= "\"{$product->getId()}\",\"{$product->getName()}\",\"{$product->getProductUrl()}\",\"{$product->getSku()}\"\n";
}
} catch (Exception $e) {
$this->_getSession()->addError($e->getMessage());
$this->_redirect('*/*/index');
}
$this->_prepareDownloadResponse('export.csv', $content, 'text/csv');
}
}
Код в основном копируется из massDeleteAction, но вместо удаления продуктов вы должны добавить переменную $ content.После того как вы закончили создавать содержимое экспорта в csv (вам, вероятно, понадобится добавить в него другие поля), вам нужно вызвать метод _prepareDownloadResponse класса контроллера.Вот и все, у вас есть пользовательский экспорт на месте!
В заключение, как только вы будете довольны изменениями, не забудьте переместить их в локальный пул кодов , чтобы установка magento осталась.Доказательство обновления:)