Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?

Mise à jour massive des quantités
(1 lecteur(s)) (1) Invité(s)
Aller en basPage: 1
SUJET:

Mise à jour massive des quantités

#71360
chriphil
Fresh Boarder
Messages: 2
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Mise à jour massive des quantités

Il y a 3 Années, 7 Mois
Karma: 0  
Bonjour

Je dispose d'un fichier CSV contenant 2 colonnes: les IDs produits et les quantités.
Je souhaite mettre à jour les quantités d'un seul tenant. Y a t-il une façon de faire ou dois-je passer par un plugin externe ?

Merci par avance

Cdt,
JClaude
 
L'administrateur a désactivé l'accès public en écriture.
#71362
chriphil
Fresh Boarder
Messages: 2
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Mise à jour massive des quantités

Il y a 3 Années, 7 Mois
Karma: 0  
Re,

Allez je réponds à mon propre thread. J'étais un peu pressé donc j'ai fait rapidement un petit script:

Code :


#!/usr/local/bin/php
<?php
  $mode = 'prod';

  function update ($table, $data) {
      $query = "UPDATE ".$table." SET qty = ".$data[1]." WHERE product_id = ".$data[0];
      $res = @mysql_query($query);
      if (!$res)
        echo "   ".$table.": NOK (".mysql_error().")n";
      else
        echo "   ".$table.": OK\n";
  }

  if ($mode == 'dev') {
    $link = mysql_connect('127.0.0.1', 'DEV_magento', 'motdepasse') OR die('Erreur de connexion a la base');
    mysql_select_db('DEV_magento') OR die('Erreur de selection de la base');
  } elseif ($mode == 'prod') {
    $link = mysql_connect('127.0.0.1', 'magento', 'motdepasse') OR die('Erreur de connexion a la base');
    mysql_select_db('magento') OR die('Erreur de selection de la base');
  }

  if (($handle = fopen("qty.csv", "r")) !== FALSE) {
    $row = 1;
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
      printf("Ligne: %5d  ID Produit: %5d  Quantite: %5d  Mise a jour: \n", $row++, $data[0], $data[1]);
      update("cataloginventory_stock_item", $data);
      update("cataloginventory_stock_status", $data);
      update("cataloginventory_stock_status_idx", $data);
    }
    fclose($handle);
    echo "\n".$row." Entrees mises a jour.\n";
  } else {
    echo "Je ne peux pas ouvrir le fichier qty.csv";
  }
  mysql_close($link);
?>



Ne pas oublier derrière dans votre répertoire magento:

Code :

php shell/indexer.php --reindex cataloginventory_stock


Voilà peut-être que ça servira à qqun qui se poserait la même question que moi.

A+

JClaude
 
Dernière édition: 05/03/15 à  05:29 Par chriphil.
L'administrateur a désactivé l'accès public en écriture.
Revenir en hautPage: 1
Modérateur: admin, Gabriiiel, ILOA, zuiko