Erreur lors de l'importation des produits

8 posts in this topic

Posted · Report post

AH NON, LA JE SUIS AU BOUT DU ROULEAU, Monsieur PEEL, IL VA FALLOIR FAIRE FACE !!!!!!!!!

Je m'explique, après des jours et des jours d'essais infructueux, ce matin, je passe pour la première fois ma tentative d'importation d'articles. Pour la 1ere fois, pas de message de bug (OUF!!), mais attention, je n'ai plus qu'1 seul produit et en plus ca va pas, j'ai perdu tout le reste, C'EST QUOI CE MODULE D'IMPORTATION !!!!! AU SECOURS IL Y A LE FEU !!!!

Je pense que l'on a été excéssivement patients et on va de désillusions en désillusions, APPELEZ MOI SVP AU 03.44.22.65.39, car là ca va très mal !!!

J'espère que vous possédez une sauvegarde de mes produits car je vous ai interrogé 10 fois sur les possibilités d'importation de chez vous à chez nous pour sauvegarder l'encours, je n'ai pas de réponses, résultats des courses on est dans la M.... !!!!!

Share this post


: post
Share on other sites

Posted · Report post

AH NON, LA JE SUIS AU BOUT DU ROULEAU, Monsieur PEEL, IL VA FALLOIR FAIRE FACE !!!!!!!!!

Je m'explique, après des jours et des jours d'essais infructueux, ce matin, je passe pour la première fois ma tentative d'importation d'articles. Pour la 1ere fois, pas de message de bug (OUF!!), mais attention, je n'ai plus qu'1 seul produit et en plus ca va pas, j'ai perdu tout le reste, C'EST QUOI CE MODULE D'IMPORTATION !!!!! AU SECOURS IL Y A LE FEU !!!!

Je pense que l'on a été excéssivement patients et on va de désillusions en désillusions, APPELEZ MOI SVP AU 03.44.22.65.39, car là ca va très mal !!!

J'espère que vous possédez une sauvegarde de mes produits car je vous ai interrogé 10 fois sur les possibilités d'importation de chez vous à chez nous pour sauvegarder l'encours, je n'ai pas de réponses, résultats des courses on est dans la M.... !!!!!

Share this post


: post
Share on other sites

Posted · Report post

j'ai bien évidemment un backup de vos données que je vais vous remettre en place mais je ne peux pas ça en 3 minutes

je le ferais d'ici demain soir, mais il faudrait m'envoyer votre fichier de données car il doit contenir des erreurs

Cordialement

Share this post


: post
Share on other sites

Posted · Report post

1. Le fichier à importer normalement est un annule et remplace ce qui veut dire qu'il efface la base produit puis l'importe

je vous l'ai modifié pour qu'il n'efface pas la base et j'ai réimporté la base d'hier soir => pour ceux que ça intéresse code en dessous

2. le fichier que vous importer ne doit pas comporter de référence à c:\kauffer => le serveur tourne sous linux

3. Il faut mettre vos photos par ftp dans le répertoire /upload

<?php

include("../configuration.inc.php");

necessite_identification();

necessite_priv("admin");


$DOC_TITLE = "Module d'importation";

include("modeles/haut.php");


	 switch (vb($_POST['action'])) { 


	  /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */ 


	 case  "ajouter": 


	 $repertoire_upload = "$dirroot/upload/";


	/* Importation du fichier */

	echo "Type de fichier import&eacute; : ".$_FILES['fichier']['type']."<br />";


	if (!empty($_FILES['fichier']['name'])) {


		$fichier = upload($_FILES['fichier']);


		} else {


		$fichier = $_POST['fichier'];


	 }


	 echo "Emplacement du fichier : ".$repertoire_upload.$fichier."<br />";



	 echo "<table border=0 cellspacing=1 cellpadding=0 width=100%>";


	 echo "<tr><td class=\"menu\" >Statut de l'importation</td></tr>";


	 echo "</table>";


		/* On ouvre le fichier en lecture seulement */   

		if ($fichier != "") {


			 if (file_exists($repertoire_upload.$fichier)) {


				 $fp = fopen($repertoire_upload.$fichier,  "r"); 


			 }else{  /* le fichier n'existe pas */ 


				 echo  "<div class=normal>Fichier introuvable !<br />Importation stopp&eacute;e.</div>"; 


				 exit(); 


			 } 


		/* Effacement des produits */


		$nbprod=0;


		#mysql_query("delete from peel_produits");


		#mysql_query("delete from peel_produits_categories");


		#mysql_query("delete from peel_sites_pivots WHERE produit_id > '0'");			


		$tva = $taux_tva1;


		 while (!feof($fp)) {  /* Tant qu'on atteind pas fin de fichier */   


			 $ligne = fgets($fp,4096);  /* On se d&eacute;place d'une ligne */


			 //echo "<hr><font class=normal>>Ligne Excel : $ligne </font>"; 


			 $liste = explode( ";",trim($ligne));  /* Champs s&eacute;par&eacute;s par; */   


			 /* On assigne les variables */

			if ($liste != "") {


			$i=0;


			$liste[$i]=str_replace('<', '<',$liste[$i]);

			  $liste[$i]=str_replace('>', '>',$liste[$i]);

			  $liste[$i]=str_replace('"', '"',$liste[$i]);

			$liste[$i]=str_replace('"', '',$liste[$i]);

			$liste[$i]=str_replace("'", "\'",$liste[$i]);


			// Identifiant de la catégorie de niveau 1

			$cat_id = vb($liste[$i]);


			$reference = htmlspecialchars(vb($liste[$i+1]), ENT_QUOTES);


			$nom = htmlspecialchars(vb($liste[$i+2]), ENT_QUOTES);


			$tva = str_replace(",",".",vb($liste[$i+6]));


			$prix_ht = str_replace(",",".",vb($liste[$i+3]));


			$prix = $prix_ht * (1 + $tva/100);


			$prix = str_replace(",",".",$prix);


			$prix_revendeur_ht = str_replace(",",".",vb($liste[$i+4]));


			$prix_revendeur = $prix_revendeur_ht * (1 + $tva/100);


			$prix_revendeur = str_replace(",",".",$prix_revendeur);


			$prix_achat_ht = str_replace(",",".",vb($liste[$i+5]));


			$prix_achat = $prix_achat_ht * (1 + $tva/100);


			$prix_achat = str_replace(",",".",$prix_achat);


			$promotion = str_replace(",",".",vb($liste[$i+7]));


			$poids = str_replace(",",".",vb($liste[$i+8]));


			$point = str_replace(",",".",vb($liste[$i+9]));


			$image1 = addslashes(vb($liste[$i+10]));


			$image2 = addslashes(vb($liste[$i+11]));


			$image3 = addslashes(vb($liste[$i+12]));


			$image4 = addslashes(vb($liste[$i+13]));


			$id_marque = intval(vb($liste[$i+14]));


			$descriptif = htmlspecialchars(vb($liste[$i+15]), ENT_QUOTES);


			$description = htmlspecialchars(vb($liste[$i+16]), ENT_QUOTES);


			$on_stock = intval(vn($liste[$i+17]));


			$etat = intval(vn($liste[$i+18]));


			$site_id = intval(vn($liste[$i+19]));		


			$nom_en = htmlspecialchars(vb($liste[$i+20]), ENT_QUOTES);	


			echo "valeur de nom : $nom<br />";


			if (!empty($nom)) {



			$requete = "INSERT INTO peel_produits (

			reference

			,  nom_fr

			,  nom_en

			,  prix

			,  prix_revendeur

			,  prix_achat		

			,  tva

			,  promotion

			,  poids

			,  points

			,  image1

			,  image2

			,  image3

			,  image4

			,  id_marque

			,  descriptif_".$_SESSION['langue']."

			,  description_".$_SESSION['langue']."

			, on_stock

			, etat

			, date_insere

			, date_maj

			) 

			VALUES (

			'".$reference."'

			, '".$nom."'

			, '".$nom_en."'

			, '".$prix."'

			, '".$prix_revendeur."'

			, '".$prix_achat."'

			, '".$tva."'

			, '".$promotion."'

			, '".$poids."'

			, '".$point."'

			, '".$image1."'

			, '".$image2."'

			, '".$image3."'

			, '".$image4."'

			, '".$id_marque."'

			, '".$descriptif."'

			, '".$description."'

			, '".$on_stock."'

			, '".$etat."'

			, now()

			, now()

			)";


			mysql_query($requete) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<br />' . MYSQL_ERROR()."<br />Valeur de la requete : $requete");


			$produit_id = mysql_insert_id();


			$nbprod ++;


			if ($cat_id != 0) {


				if (mysql_num_rows(mysql_query("SELECT 1 FROM peel_categories c INNER JOIN peel_sites_pivots sp ON (sp.categorie_id = c.id) WHERE c.id = '$cat_id' AND sp.site_id = '$site_id'")) > 0) {


				mysql_query("INSERT INTO peel_produits_categories (categorie_id, produit_id) VALUES ('$cat_id', '$produit_id')")  or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<br />' . MYSQL_ERROR());


				} else {


				echo "La catégorie de référence $cat_id n'existe pas pour le site précisé dans le fichier CSV<br />";


				}


			}


			mysql_query("INSERT INTO peel_sites_pivots (site_id, produit_id) VALUES ('1', '$produit_id')");


			if (mysql_error()){  /* Erreur base de donnees, surement la table qu'il faut creer */ 

				 echo  $requete; 

				 echo  "<br />Erreur dans la base de donn&eacute;es : ".mysql_error(); 

				 echo  "<br />Importation des produits stopp&eacute;e."; 

				 exit(); 

			 } 


		 } 


		}


	}


	echo  "<br /><div class=\"normal\">Nombre de produits import&eacute;s avec succ&egrave;s : $nbprod.</div>"; 


	fclose($fp); 

	}



	 break; 


	  /* FORMULAIRE DE CHOIX D'IMPORTATION */	 


	 default: 

	 ?>	 

		 <table border="0" cellspacing="1" cellpadding="0" width="100%"> 

			<tr ><td class="entete" colspan="3">IMPORTER UN FICHIER</td></tr>

			<tr><td colspan="3" class="normal">

			<b>Format imp&eacute;ratif du fichier </b>: CSV

			<br />

			<br />

			S&eacute;parateur : <font size="4"><b>;</b></font> point virgule<br />

			Fichier exemple : <a href="exemple_prod.csv">exemple_prod.csv</a><br /><br />

			<p>

			<font size="+1">ATTENTION : ce moteur d'importation ne comprend pas tous les champs de la base de données.<br />

			Toute modification de structure ou ajout de champ fait l'objet d'un devis sur mesure.</font></p>


			<font size="+1"><b>Ordre imp&eacute;ratif des colonnes du fichier CSV</b></font> :<br />

			- R&eacute;f&eacute;rence cat&eacute;gorie (mettre 0 si elle n'existe pas). La référence se trouve dans la <a href="categories.php">liste des catégories</a> - colonne Rèf.<br />

			- R&eacute;f&eacute;rence du produit<br />

			- Nom en langue française<br />

			- Prix vente public HT<br />

			- Prix vente revendeur HT<br />

			- Prix achat HT<br />

			- Tva<br />

			- Promotion<br />

			- Poids (en grammes)<br />

			- Points cadeaux<br />

			- Image vignette = Image 1<br />

			- Image zoom = Image 2<br />

			- Image 3<br />

			- Image 4<br />

			- Référence de la Marque. La référence se trouve dans la <a href="marques.php">liste des marques</a> - colonne Rèf.<br />

			- Descriptif du produit FR<br />

			- Description du produit FR<br />

			- Gestion du stock (1 = oui, O = non)<br />

			- Etat (1 = en ligne, O = en attente)<br />

			- Identifiant de la boutique (1 par défault). L'identifiant se trouve dans la <a href="sites.php">liste des sites</a> - colonne Identifiant.<br />

		   <br />

			<b>Attention :</b><br />

			- La premi&egrave;re ligne ne doit pas contenir les ent&ecirc;tes des colonnes<br />

			- Il ne doit pas y avoir de formule dans le fichier CSV<br />

			- Les virgules des chiffres doivent &ecirc;tre symbolis&eacute;es par des "."<br />

			- Le point virgule indique imp&eacute;rativement un changement de colonne<br />

			- Le fichier doit &ecirc;tre ferm&eacute; dans EXCEL pour pouvoir l'uploader<br />

			- Les photos doivent se trouver dans le répertoire <?php echo $repertoire_upload ?><br />


			<p>

			<b>Avant d'importer un fichier,<br />

			1. Assurez vous que le fichier ne comporte pas de lignes blanches.<br />

			2. Assurez vous que vous avez pr&eacute;alablement import&eacute; ou cr&eacute; les familles de produit</b>

			</p>

			</td></tr>


			<form method="post" action="<?=$_SERVER['PHP_SELF']?>" name="categories" enctype="multipart/form-data"> 

			<input type="hidden" name="action" value="ajouter">   

			<input type="hidden" name="nomtable" value="peel_produits">	 


			<tr> 

			  <td class="label">Importation du fichier de donn&eacute;es :</td> 

			  <td align="left"> <input class="formulaire1" type="file" name="fichier"> </td> 

			  <td align="center"> <input class="formulaire1" type="submit" name="submit" value="Importer"> </td>

			  </tr> 

		 </table> 

		 <input type="hidden" name="action" value="ajouter">	 

		</form> 

	  <?	 

	 break; 


	 } 

include("modeles/bas.php");

?>

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Ou doit-on intégrer ce code pour ne pas effacer les produits créer par l'interface admin en important un fichier csv, SVP

Merci d'avance

T.

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir ToMaS,

Dans administrer/import_produits.php

Supprimez, ou commentez les lignes :

mysql_query("DELETE FROM peel_produits");

mysql_query("DELETE FROM peel_produits_categories");

mysql_query("DELETE FROM peel_sites_pivots WHERE produit_id > '0'");

Cordialement,

Share this post


: post
Share on other sites

Posted · Report post

Merci, je m'y met demain soir...

Je vous tiendrai au courant

A bientôt

T.

Share this post


: post
Share on other sites

Posted · Report post

Pas de quoi ;)

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping