|
|
procédure pour Importer vos clients en automatique (1 visualisation(s)) (1) Invité
-
daviraud
-
- Hors ligne
-
Junior Boarder
-
- Message: 23
-
Karma: 0
-
|
Bonjour,
J'ai vu plusieurs post de personnes souhaitant intégrer une base clients en automatique. Je vous propose ma solution à modifier en fonction de vos besoins
1-Vous devez créer un fichier tabulé societe.txt respectant les champs de la table société_tmp (voir la structure dans le fichier joint lors de la création de la table societe_tmp)
2-Enregistrez ce fichier dans votre répertoire data .
3-Enregistrez le fichier joint sous le répertoire script et changer l'extension.txt en .php.
4-Modifier le contenu de ce fichier:
accès à la base de données
chemin d'accès aux données en fonction de votre arborescence
5-Ouvrir ce fichier avec votre navigateur et normalement votre fichier de données sera importé.
En espérant que ça aidera certaines personnes
|
|
Dernière édition: il y a 3 ans par daviraud.
|
-
point
-
- Hors ligne
-
Expert Boarder
-
- Message: 111
-
Karma: 2
-
|
Bonsoir ,
je souhaiterais réaliser un import de masse de fichier client déjà existant . Pourriez vous me donner plus de précision sur votre méthode
sur la partie 1 ) concernant les champs qui doivent être présent dans le fichier texte , les séparateurs de champs qu'il faut ( : ; tabulation etc ) , séparateur de texte (" " ou ' ' ) .
sur mes fichiers csv ou txt habituellement j'ai quelque chose du genre
"champ1";"champ2";"champ3";"champ4";"champ5"
"agdsffg";"bsdfgsg";35124;"uikgkghk";"qqsdcqs"
"fdf";"hndbdf";74613;;
"mfmkh";"fcsd";873511;"fgbdfsg";"bsdfgs"
etc
Merci
|
|
Dernière édition: il y a 2 ans, 11 mois par point.
|
-
point
-
- Hors ligne
-
Expert Boarder
-
- Message: 111
-
Karma: 2
-
|
Bonjour,
merci pour l'aide . Je suis occupé jusqu'à la fin de la semaine . Je donnerai un retour que dimanche /début de semaine prochaine .
Encore merci
|
|
|
-
nticip
-
- Hors ligne
-
Fresh Boarder
-
- Message: 7
-
Karma: 0
-
|
Si cela vous interesse, j'ai développé une script PHP effectuant de la synchro de client vers Dolibarr. Je l'utilise entre une appli externe et Dolibarr.
|
|
|
-
daviraud
-
- Hors ligne
-
Junior Boarder
-
- Message: 23
-
Karma: 0
-
|
Bonjour nticip ,
Je suis interessé par ton script avec plaisir.
J'attend de tes nouvelles
Merci
|
|
|
-
nicoDICi
-
- Hors ligne
-
Fresh Boarder
-
- Message: 15
-
Karma: 0
-
|
Bonjour,
Je suis intéressé par ton script.
Merci d'avance.
A bientôt de te lire
Nicolas:-)
|
|
|
-
point
-
- Hors ligne
-
Expert Boarder
-
- Message: 111
-
Karma: 2
-
|
Bonjour,
Je n'ai pas encore pu me pencher sur l'import automatique  Je suis désolé .
Cordialement .
|
|
|
-
point
-
- Hors ligne
-
Expert Boarder
-
- Message: 111
-
Karma: 2
-
|
ça y est j'ai réalisé mon premier import de masse en commençant par les produits .
je suis passé par phpmyadmin .
j'ai selectionné la table llx_product , j'ai réalisé un export sql ( ce qui donne le fichier import.sql ) pour récuper la structure de la table ce qui donne le fichier suivant
-- phpMyAdmin SQL Dump -- version 2.11.9.2 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Ven 10 Avril 2009 à 14:58 -- Version du serveur: 5.0.51 -- Version de PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de données: `dolibarr` -- -- -------------------------------------------------------- -- -- Structure de la table `llx_product` -- CREATE TABLE IF NOT EXISTS `llx_product` ( `rowid` int(11) NOT NULL auto_increment, `datec` datetime default NULL, `tms` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `ref` varchar(32) collate utf8_unicode_ci NOT NULL, `label` varchar(255) collate utf8_unicode_ci NOT NULL, `description` text collate utf8_unicode_ci, `note` text collate utf8_unicode_ci, `price` double(24,8) default '0.00000000', `price_ttc` double(24,8) default '0.00000000', `price_min` double(24,8) default '0.00000000', `price_min_ttc` double(24,8) default '0.00000000', `price_base_type` varchar(3) collate utf8_unicode_ci default 'HT', `tva_tx` double(6,3) default NULL, `fk_user_author` int(11) default NULL, `envente` tinyint(4) default '1', `fk_product_type` int(11) default '0', `duration` varchar(6) collate utf8_unicode_ci default NULL, `stock_propale` int(11) default '0', `stock_commande` int(11) default '0', `seuil_stock_alerte` int(11) default '0', `stock_loc` varchar(10) collate utf8_unicode_ci default NULL, `barcode` varchar(255) collate utf8_unicode_ci default NULL, `fk_barcode_type` int(11) default '0', `partnumber` varchar(32) collate utf8_unicode_ci default NULL, `weight` float default NULL, `weight_units` tinyint(4) default NULL, `volume` float default NULL, `volume_units` tinyint(4) default NULL, `canvas` varchar(15) collate utf8_unicode_ci default '', `finished` tinyint(4) default NULL, `import_key` varchar(14) collate utf8_unicode_ci default NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_ref` (`ref`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=560 ; -- -- Contenu de la table `llx_product` -- INSERT INTO `llx_product` (`rowid`, `datec`, `tms`, `ref`, `label`, `description`, `note`, `price`, `price_ttc`, `price_min`, `price_min_ttc`, `price_base_type`, `tva_tx`, `fk_user_author`, `envente`, `fk_product_type`, `duration`, `stock_propale`, `stock_commande`, `seuil_stock_alerte`, `stock_loc`, `barcode`, `fk_barcode_type`, `partnumber`, `weight`, `weight_units`, `volume`, `volume_units`, `canvas`, `finished`, `import_key`) VALUES
ensuite j'ai selectionné uniquement les champs qui m'intéresse ce qui donne
-- phpMyAdmin SQL Dump -- version 2.11.9.2 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Ven 10 Avril 2009 à 10:33 -- Version du serveur: 5.0.51 -- Version de PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de données: `dolibarr` -- -- -------------------------------------------------------- -- -- Structure de la table `llx_product` -- CREATE TABLE IF NOT EXISTS `llx_product` ( `rowid` int(11) NOT NULL auto_increment, `datec` datetime default NULL, `tms` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `ref` varchar(32) collate utf8_unicode_ci NOT NULL, `label` varchar(255) collate utf8_unicode_ci NOT NULL, `description` text collate utf8_unicode_ci, `note` text collate utf8_unicode_ci, `price` double(24,8) default '0.00000000', `price_ttc` double(24,8) default '0.00000000', `price_min` double(24,8) default '0.00000000', `price_min_ttc` double(24,8) default '0.00000000', `price_base_type` varchar(3) collate utf8_unicode_ci default 'HT', `tva_tx` double(6,3) default NULL, `fk_user_author` int(11) default NULL, `envente` tinyint(4) default '1', `fk_product_type` int(11) default '0', `duration` varchar(6) collate utf8_unicode_ci default NULL, `stock_propale` int(11) default '0', `stock_commande` int(11) default '0', `seuil_stock_alerte` int(11) default '0', `stock_loc` varchar(10) collate utf8_unicode_ci default NULL, `barcode` varchar(255) collate utf8_unicode_ci default NULL, `fk_barcode_type` int(11) default '0', `partnumber` varchar(32) collate utf8_unicode_ci default NULL, `weight` float default NULL, `weight_units` tinyint(4) default NULL, `volume` float default NULL, `volume_units` tinyint(4) default NULL, `canvas` varchar(15) collate utf8_unicode_ci default '', `finished` tinyint(4) default NULL, `import_key` varchar(14) collate utf8_unicode_ci default NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_ref` (`ref`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ; -- -- Contenu de la table `llx_product` -- INSERT INTO `llx_product` (`ref`, `label`, `description`, `note`, `price_ttc`, `price_base_type`, `tva_tx`, `weight`) VALUES
J'ai ensuite récupéré à l'aide d'un script ma base de donnée produits pour pouvoir alimenter import.sql
#!/bin/bash awk ' BEGIN { FS=";" print debut } { gsub(",",".",$11) gsub(",",".",$12) for(i=1;i<=NF;i++){ if( $i != $11 && $i != $12 ){ if(index($i,"\"") == 0){a=$i;gsub(a,"\""a"\"",$i) } } } chaine=$1 for(i=2;i<=NF;i++){ chaine=chaine";"$i } printf(chaine"\n") >> "ajout.txt" } END { print fini }' finalg_c.csv awk ' BEGIN { FS=";" print debut } { if( NR !=1 ){ chaine="(" chaine=chaine$6","$3","$9","$7","$11",""\"TTC\""",""19.600"","$12 chaine=chaine")," printf(chaine"\n") >> "ajout2.txt" } } END { print fini }' ajout.txt cat ajout2.txt >> import.sql wc -l finalg_c.csv wc -l ajout.txt wc -l ajout2.txt exit 0 #sort du programme une fois fini
remplacé la virgule de la dernière ligne par un point virgule ce qui donne .
-- phpMyAdmin SQL Dump -- version 2.11.9.2 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Ven 10 Avril 2009 à 10:33 -- Version du serveur: 5.0.51 -- Version de PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de données: `dolibarr` -- -- -------------------------------------------------------- -- -- Structure de la table `llx_product` -- CREATE TABLE IF NOT EXISTS `llx_product` ( `rowid` int(11) NOT NULL auto_increment, `datec` datetime default NULL, `tms` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `ref` varchar(32) collate utf8_unicode_ci NOT NULL, `label` varchar(255) collate utf8_unicode_ci NOT NULL, `description` text collate utf8_unicode_ci, `note` text collate utf8_unicode_ci, `price` double(24,8) default '0.00000000', `price_ttc` double(24,8) default '0.00000000', `price_min` double(24,8) default '0.00000000', `price_min_ttc` double(24,8) default '0.00000000', `price_base_type` varchar(3) collate utf8_unicode_ci default 'HT', `tva_tx` double(6,3) default NULL, `fk_user_author` int(11) default NULL, `envente` tinyint(4) default '1', `fk_product_type` int(11) default '0', `duration` varchar(6) collate utf8_unicode_ci default NULL, `stock_propale` int(11) default '0', `stock_commande` int(11) default '0', `seuil_stock_alerte` int(11) default '0', `stock_loc` varchar(10) collate utf8_unicode_ci default NULL, `barcode` varchar(255) collate utf8_unicode_ci default NULL, `fk_barcode_type` int(11) default '0', `partnumber` varchar(32) collate utf8_unicode_ci default NULL, `weight` float default NULL, `weight_units` tinyint(4) default NULL, `volume` float default NULL, `volume_units` tinyint(4) default NULL, `canvas` varchar(15) collate utf8_unicode_ci default '', `finished` tinyint(4) default NULL, `import_key` varchar(14) collate utf8_unicode_ci default NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_ref` (`ref`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ; -- -- Contenu de la table `llx_product` -- INSERT INTO `llx_product` (`ref`, `label`, `description`, `note`, `price_ttc`, `price_base_type`, `tva_tx`, `weight`) VALUES ("086DC","","piece lambda ","",200,"TTC",19.600,10), ("ERH319",""," autre piece ","",175,"TTC",19.600,2), etc ("WG478L","","dernière piece ","",200,"TTC",19.600,20);
enfin réaliser un import sql avec phpmyadmin et voilà import réussit
Ceci fait j'ai remarqué qu'on peut ajouter des photos en passant par l'interface Dolibarr . Je souhaiterais savoir si il est possible de faire un import de photos ?
Si possible , dans quelle répertoire dois-je mettre les photos et quelle table dois-je alimenter .
Merci ... et grand merci à Dolibarr
|
|
|
-
flomo
-
- Hors ligne
-
Senior Boarder
-
- Message: 61
-
Karma: 6
-
|
pour les photos c'est dans : /documents/produits
par exemple /documents/produits/9/8/55089/photos/nomphoto.jpg
55089 représente l'id du produit
le 9 le dernier chiffre de l'id
le 8 l'avant dernier chiffre de l'id
Aucune table à alimenter.
|
|
Dernière édition: il y a 2 ans, 8 mois par flomo.
|
-
pitchouloute
-
- Hors ligne
-
Senior Boarder
-
- Message: 45
-
Karma: 0
-
|
up ?
|
|
|
-
Dagg
-
- Hors ligne
-
Gold Boarder
-
- Message: 181
-
Karma: 4
-
|
Généralement, ce type d'erreur provient d'un ";" manquant en fin d'instruction.
Trouve la ligne 31 de ton script et regarde ce qu'il en est pour elle et celle qui la précède.
|
Dolibarr 2.6.1 - Ubuntu 8.04
|
-
pitchouloute
-
- Hors ligne
-
Senior Boarder
-
- Message: 45
-
Karma: 0
-
|
Eh bien je pense qu'il y a une erreur dans le tuto car j'ai copié collé le code :
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Importation de clients</title>
</head>
<body>
<?php
$sql_host= "localhost";
$sql_login= "root";
$sql_pass= "********";
$sql_base= "dolibarr";
$dbid = mysql_connect("$sql_host", "$sql_login", "$sql_pass");
mysql_select_db("$sql_base",$dbid);
if(file_exists("/var/www/societe.txt")) {
create table if not exists societe_tmp
(
code_client varchar(15),
nom varchar(60),
complement varchar(60),
address1 varchar(255),
address2 varchar(255),
address3 varchar(255),
cp varchar(10),
ville varchar(50),
tel varchar(20),
fax varchar(20),
email varchar(128),
client tinyint DEFAULT 0,
fournisseur tinyint DEFAULT 0,
fk_forme_juridique integer DEFAULT 0,
fk_typent integer DEFAULT 0,
fk_pays integer DEFAULT 0,
url varchar(255)
);
$query_content="delete from societe_tmp";
$result_content=mysql_query($query_content,$dbid);
La ligne 31 est en gras
à++
|
|
|
-
pitchouloute
-
- Hors ligne
-
Senior Boarder
-
- Message: 45
-
Karma: 0
-
|
re -up
|
|
|
|
|