Vous aurez besoin de mettre en œuvre une nouvelle massAction dans le contrôleur de produit admin. Une bonne façon de commencer est de regarder le contrôleur de produit et de voir comment les autres massActions sont implémentées. Jetons un coup d'oeil ... D'abord vous devrez ajouter une déclaration d'un massAction à une grille. Cela peut être fait dans app/code/core/Mage/Adminhtml/Bloc/Catalogue/Produit/Grid.php. Vous devez ajouter ce qui suit dans la méthode _prepareMassaction:
$this->getMassactionBlock()->addItem('export', array(
'label' => Mage::helper('catalog')->__('Export to CSV'),
'url' => $this->getUrl('*/*/massExport', array('_current'=>true)),
));
Maintenant, vous devrez mettre en œuvre cette nouvelle action dans le contrôleur produit (app/code/core/Mage/Adminhtml/contrôleurs/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');
}
}
le code est principalement copié à partir du massDeleteAction, mais au lieu de supprimer des produits vous devez ajouter à la variable de contenu $. Une fois que vous avez créé le contenu de votre exportation csv (vous aurez probablement besoin d'ajouter d'autres champs), vous devez appeler la méthode _prepareDownloadResponse de la classe de contrôleur. Voilà, vous avez votre exportation personnalisée en place!
Sur une note finale, une fois que vous êtes satisfait des changements se souviennent de les déplacer à votre code local afin que votre installation magento reste mise à jour à l'épreuve :)
Où est le contrôleur de produit d'administration? Je ne peux pas voir massAction dans Mage_Adminhtml_Catalog_ProductController Si vous pouvez trouver le code ce sera génial. merci – pablo
@Pablo: J'ai modifié ma réponse. S'il vous plaît voir ci-dessus pour un exemple de code de travail ... – silvo
Au lieu de créer le csv moi-même, est-il possible de passer les identifiants de produit ou des filtres au flux de données pour créer le csv? Est-il possible d'ajouter un filtre de catégorie à la grille? – pablo