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 directory
if (!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 ?

http://www.applibox.com