Voilà, durant la synchronisation entre le serveur d’un magasin et un site Ecommerce sous Magento, [...]
Voilà, durant la synchronisation entre le serveur d’un magasin et un site Ecommerce sous Magento, je me suis retrouvé à mettre à jour tout les sku de ma boutique car le système de gestion du magasin venait de changer.
En gros mon sku passait d’un code du type $034567 vers un code EAN 13 standard 4504292077.
La première étape étant de générer le CSV, alors soit vous avez de la chance et le nouveau système de gestion à conserver un champ pour les anciennes références (je vous le conseille vivement), ou bien cela n’est pas prévu…
Et la on se paluche à la mimine et cela prend du temps selon le nombre de référenceS…. (spéciale dédicace à C. et L. )
Nous allons passer directement à l’export CSV :
Il vous faut un CSV avec 2 colonnes :
Colonne 1 => ancien SKU
Colonne 2 => nouveau SKU
Exemple :
"$564168";"4504292077"
"$486421";"4504276435"
"$945687";"4504276121"
"$247893";"4504411324" |
Donc nous voulons remplacer le code « Dollar » par le code EAN 13.
Il suffit de placer votre csv sur votre serveur via FTP.
Exemple : /var/import/sku2sku.csv
Attention dans notre csv les champs sont séparés par des ; et les champs délimités par des » « .
Puis il faut placer votre fichier php, via FTP, sur votre serveur.
Exemple : /script/inversion.php
Voici le code du fichier inversion.php ci-dessous :
<!--?php
include_once '../app/Mage.php';
Mage::app();
$updates_file="../var/import/sku2sku.csv";
$sku_entry=array();
$updates_handle=fopen($updates_file, 'r');
if($updates_handle) {
while($sku_entry=fgetcsv($updates_handle,50,';','"')){
$old_sku=$sku_entry[0];
$new_sku=$sku_entry[1];
echo "<br ?-->MAJ ".$old_sku." > ".$new_sku." - ";
try {
$get_item = Mage::getModel('catalog/product')->loadByAttribute('sku', $old_sku);
if ($get_item) {
$get_item->setSku($new_sku)->save();
echo "ca marche";
} else {
echo "objet non trouvé";
}
} catch (Exception $e) {
echo "Ne retrouve pas le produit dans Magento : ".$e->getMessage()."
";
return;
}
}
}
fclose($updates_handle);
?> |
Il ne vous reste plus qu’à lancer votre script http://www.monsite.com/script/inversion.php.
Attention avant toute chose toujours effectuer sur un serveur de test la manipulation et de sauvegarder avant d’effectuer la manipulation sur le serveur en live.
Pour moi le seul soucis c’est que le script s’arrêtait du à mon Hébergement pas trop performant, je le relançait de temps en temps et c’est passé.