Bonjour,
En fait, je ne me suis pas posé de question pour l’import, j’ai écrit un bout de PHP qui à partir d’une table qui contient des identifiants de mes utilisateurs avec mail et mot de passe ainsi qu’une table qui contient l’adresse, le téléphone, charge les tables ps_customer et ps_address.
Je lis l’email pour trouver le membre correspondant et récupère les infos le concernant, je fais un insert dans ps_customer, je relis ps_customer pour trouver le id_customer puis je fais un insert dans ps_address.
Comme mes utilistaeurs avaient un mot de passe d’accès à une autre application, je le récupère, le concatène avec la variable cookie_key et le crypte avec MD5.
Le code n’est absolument pas optimisé, fait sans norme précise, il ne sert qu’une fois, ensuite pour les nouveaux clients utiliseront le standard PrestaShop.
Bon courage. JL.
voici le code utilisé :
<?Php
$cook=“111111111111111111111111111111111111111111111111111111111”;
//la valeur de cook est bidon pour l exemple
function scindeMicrotime() {
list($usec, $sec) = explode(” “, microtime());
return ((float)$usec + (float)$sec); }
$tempsInit = scindeMicrotime();
function phone($x)
{
if (strlen($x)==0)
{
$Tel = “”;
}
else
{
$Tel = “+”.substr($x,1,2).”(0)”.substr($x,3,12);
//$Tel = “+”.substr($x,1,2).”(0)”.substr($x,-9,1).substr($x,-8,8);
}
return $Tel;
}
//
$export=”“;
$ligne = ‘“NOM”,“PRENOM”,“LOGIN”,“PASSWORD”,“ADR”,“ADR2”,“CP”,“VILLE”,“PAYS”,“TEL PERSO”,“PORT PERSO”,“MAIL PERSO”,“CRYPTE”’;
$export .= “$ligne\n”;
$ligne = “”;
//
$numLigne = 0;
$table_qui_contient_utilisateurs_emails_et_mots_de_passe=“mettre le nom de la table”;
$table_qui_contient_les_membres_adresses_et_autres=“mettre le nom de la table”;
include(”../connexion.php”);
$reqdir = mysql_query(“SELECT * FROM “.$table_qui_contient_utilisateurs_emails_et_mots_de_passe);
while ($ligno = mysql_fetch_array($reqdir))
{
//echo “ligno = “.$ligno.$ligno.$ligno;
$numLigne++;
$nm = $ligno[“Autombrs”];
$sqlcci=“
SELECT *
FROM “.$table_qui_contient_les_membres_adresses_et_autres.”
WHERE (Autombrs=’”.$nm.”’
AND email
NOT LIKE ‘’)”;
$rescci=mysql_query($sqlcci);
$lignm=mysql_fetch_array($rescci);
$nom = $lignm[“Nom”];
$nom=str_replace(”’”,”’‘”,$nom);
$prenom = $lignm[“Prenom”];
$prenom=str_replace(”’”,”’‘”,$prenom);
if ($lignm[“Identite”]==“Monsieur”)
{
$genre=1;
}
else
{
$genre=2;
}
$login = $ligno[“Login”];
$pass = md5($cook.$ligno[“Pass”]);
$adr1 = $lignm[“Adresse”];
$adr1=str_replace(”’”,”’‘”,$adr1);
$adr2 = $lignm[“Adsuite”];
$adr2=str_replace(”’”,”’‘”,$adr2);
$naissance = $lignm[“Naissance”];
$birth=substr($naissance,6,4).”
“.substr($naissance,3,2).”“.substr($naissance,0,2);
$cp = $lignm[“cp”];
$ville = $lignm[“Ville”];
//$pays = $lignm[“Pays”];
$tel = $lignm[“Tel”];
$gsm = $lignm[“Portable”];
$email = $lignm[“email”];
//
$sql = “
INSERT INTO `ps_customer` (`id_customer`, `id_gender`, `secure_key`, `email`, `passwd`, `birthday`, `lastname`, `newsletter`, `optin`, `firstname`, `active`, `date_add`, `date_upd`)
VALUES (
NULL, ‘”.$genre.”’,’”.$pass.”’,’”. $email.”’,’”. $pass.”’,’”. $birth.”’,’”. $nom.”’,‘1’,’‘,’”. $prenom.”’,‘1’,‘2008-08-27 00:00:00’,’‘);”;
$ligne .=$sql;
$rep=mysql_query($sql) or die(mysql_error());
//echo $rep;
$rep=“SELECT * FROM ps_customer WHERE lastname=’”.$nom.”’ AND firstname=’”.$prenom.”’”;
//echo “rep=”.$rep;
$rep=mysql_query($rep);
$lig=mysql_fetch_array($rep);
$id_customer=$lig[“id_customer”];
//echo “id “.$id_customer;
$sql = “
INSERT INTO `ps_address` (`id_address`, `id_country`, `id_state`, `id_customer`, `id_manufacturer`, `id_supplier`, `alias`, `company`, `lastname`, `firstname`, `address1`, `address2`, `postcode`, `city`, `other`, `phone`, `phone_mobile`, `date_add`, `date_upd`, `active`, `deleted`)
VALUES (
NULL,‘8’,
NULL,’”. $id_customer.”’,‘0’,‘0’,‘Mon adresse’,
NULL,’”. $nom.”’,’”. $prenom.”’,’”. $adr1.”’,’”. $adr2.”’,’”. $cp.”’,’” . $ville.”’,
NULL,’”. $tel.”’,’”. $gsm.”’,‘2008-08-27 00:00:00’, ‘’, ‘1’, ‘0’);”;
$rep=mysql_query($sql);
$ligne .=$sql;
$export .= “$ligne\n”;
$ligne = “”;
//echo “export = “.$export;
}
$tempsFin = scindeMicrotime();
$tempsRequete = $tempsFin – $tempsInit;
?>
<!DOCTYPE
HTML PUBLIC “-//W3C//DTD
HTML 4.01 Transitional//EN”>
<html>
<head>
<title>Chargement Boutique Kiwanis</title>
<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1”>
</head>
<body>
<form name=“form”>
<table width=“100%” border=“0” cellspacing=“5” cellpadding=“0” style=“font-family: verdana; font-size: 12px;”>
<tr>
<td><? echo “Temps d’exécution de la requête : “ . sprintf(”.4f”, $tempsRequete) . “ seconde(s)”; ?></td>
</tr>
<tr>
<td><? echo “Nombre de lignes : “ . $numLigne; ?></td>
</tr>
<tr>
<td><textarea name=“textarea” cols=“100” rows=“30” wrap=“OFF”><? echo $export; ?></textarea></td>
</tr>
<tr>
<td>Copier</td>
</tr>
<tr>
<td>Coller la séléction copiée dans un fichier texte</td>
</tr>
</table>
</form>
</body>
</html>