Import Magento en arrière plan
Parfois Magento peut être lent à s’éxécuter. C’est d’ailleurs le cas sur les profils avancés d’import , export…
Pour palier à cet obstacle voilà un petit script, pouvant être lancé sans être connecté pour lancer l’import/export indépendamment de l’application. Attention à la sécurité tout de même…
Pour lancer ce script :
http://monsite.fr/monscript.php/?file=NomDuFichier.csv
Vous devez avoir au préalable placer votre fichier d’import dans /var/import/ ou un chemin particulier en fonction de votre profil
require_once 'app/Mage.php';umask(0);Mage::app();$profileId = 17; //Insérer ici le profil d'import /export ( Système > Importer/Exporter > Colonne Id )$filename = Mage::app()->getRequest()->getParam('files'); // set the filename that is to be imported - file needs to be present in var/import directoryif (!isset($filename)) {die("No file has been set!");}$logFileName= $filename.'.log';$recordCount = 0;Mage::log("Import Started",null,$logFileName);$profile = Mage::getModel('dataflow/profile');$userModel = Mage::getModel('admin/user');$userModel->setUserId(0);Mage::getSingleton('admin/session')->setUser($userModel);if ($profileId) {$profile->load($profileId);if (!$profile->getId()) {Mage::getSingleton('adminhtml/session')->addError('The profile you are trying to save no longer exists');}}Mage::register('current_convert_profile', $profile);$profile->run();$batchModel = Mage::getSingleton('dataflow/batch');if ($batchModel->getId()) {if ($batchModel->getAdapter()) {$batchId = $batchModel->getId();$batchImportModel = $batchModel->getBatchImportModel();$importIds = $batchImportModel->getIdCollection();$batchModel = Mage::getModel('dataflow/batch')->load($batchId);$adapter = Mage::getModel($batchModel->getAdapter());foreach ($importIds as $importId) {$recordCount++;try{$batchImportModel->load($importId);if (!$batchImportModel->getId()) {$errors[] = Mage::helper('dataflow')->__('Skip undefined row');continue;}$importData = $batchImportModel->getBatchData();try {$adapter->saveRow($importData);} catch (Exception $e) {Mage::log($e->getMessage(),null,$logFileName);continue;}if ($recordCount%20 == 0) {Mage::log($recordCount . ' - Completed!!',null,$logFileName);}} catch(Exception $ex) {Mage::log('Record# ' . $recordCount . ' - SKU = ' . $importData['sku']. ' - Error - ' . $ex->getMessage(),null,$logFileName);}}foreach ($profile->getExceptions() as $e) {Mage::log($e->getMessage(),null,$logFileName);}}}
Voilà pour votre prochain import
Enjoy !
Liens en rapport avec Magento
http://www.creation-site-lyon.com/tag/magento/
Besoin d’un site magento ?

Merci bcp pour votre code mais celui ci ne fonctionne ps chez moi
En effet, l’attribut status ne passe pas alors que tous les autres sont ok, bizarre…
a noter que tout ok en passant par les profils magento