Ceci n’est pas vraiment un module mais un bout de code suite à un développement pour un client pressé…
Le but est de lire un csv contenant les sku et générer un fichier xml de catalogue produit.
1- Création d’un dossier à la racine du site, par exemple « xml »
2- Dans ce dossier, dépot d’un fichier index.html vide ![]()
3- Je dépose également un fichier csv, (nomme flux.csv par exemple) contenant une seule colonne « sku », comme ceci :
sku;
SKU_PRODUIT1;
SKU_PRODUIT2;
….
4- Création du fichier php, par exemple : flux.php
Voici le code du fichier flux.php
<?php header("Content-type: text/xml"); require_once '../app/Mage.php'; umask(0); Mage::app('default'); function parse_csv_file($file, $columnheadings = false, $delimiter = ';', $enclosure = "\"") { $row = 1; $rows = array(); $handle = fopen($file, 'r'); while (($data = fgetcsv($handle, 1000, $delimiter, $enclosure )) !== FALSE) { if (!($columnheadings == false) && ($row == 1)) { $headingTexts = $data; } elseif (!($columnheadings == false)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$headingTexts[$key]] = $value; } $rows[] = $data; } else { $rows[] = $data; } $row++; } fclose($handle); return $rows; } $a_produits = parse_csv_file('flux.csv', true, ';'); $a_results = array(); try{ foreach ($a_produits as $key => $value){ $product = Mage::getModel('catalog/product'); $productId = $product->getIdBySku($value['sku']); if ($productId) { $product->load($productId); //Mage_Catalog_Model_Product_Status::STATUS_ENABLED //Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE //Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE && $product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED){ $a_results[$value['sku']] = array( 'sku' => $value['sku'], 'name' => utf8_decode($product->getName()), 'description' => "<![CDATA[".strip_tags($product->getDescription())."]]>", 'url' => "<![CDATA[".$product->getProductUrl()."]]>", 'final_price' => $product->getFinalPrice(), 'picture' => Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(200, 200), ); } } } }catch (Exception $e){ die($e->getMessage()); } ?> <?php echo "<products>"; foreach ($a_results as $key => $value){ echo "<product>"; foreach ($value as $key2 => $value2){ echo "<".$key2.">".$value2."</".$key2.">"; } echo "</product>"; } echo "</products>"; ?>
Il suffit de taper comme url : http://www.votreboutique.com/xml/flux.php pour optenir le fichier xml.
A vous de rajouter les infos demandées

Merci pour ce code mais j’arrive pas à le faire fonctionner sur magento 1.5
Fatal error: Uncaught exception ‘Mage_Core_Model_Store_Exception’ in C:\wamp\www\deals\app\code\core\Mage\Core\Model\App.php:1284
^
ca te dit quelque chose? merci