procédure pour Importer vos clients en automatique

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

import_societe.txt (2.29 KB)

1 « J'aime »

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 :cheer:

Bonjour,

J’ai détaillé la doc de manière plus précise à l’adresse suivante: http://wiki.dolibarr.org/index.php/Importer_des_clients_en_automatique

Bonne chance

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 . :blush:

Encore merci

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.

Bonjour nticip ,

Je suis interessé par ton script avec plaisir.
J’attend de tes nouvelles

Merci

Bonjour,
Je suis intéressé par ton script.
Merci d’avance.
A bientôt de te lire
Nicolas:-)

Bonjour,

Je n’ai pas encore pu me pencher sur l’import automatique :blush: Je suis désolé .

Cordialement .

ç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 :woohoo:

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 :woohoo:

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.

Bonjour,

j’ai suivi le tuto Importer des clients en automatique - Dolibarr ERP CRM Wiki

mais en l’exécutant j’ai

Comment faire ?

up ? :happy:

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.

Eh bien je pense qu’il y a une erreur dans le tuto car j’ai copié collé le code :

La ligne 31 est en gras :wink:

à++

re -up :happy:

Bonjour,

je pense qu’il y a une petite erreur

à la ligne 31 il faut mettre :

$sql="CREATE TABLE if not exists societe_tmp

et à la ligne 50 :

[code]
)";[/code

OK je vais voir, merci.

nticip écrit:

je suis également intéresse :woohoo:
merci

Bonjour, novice en la matière… Comment, je peux importer un fichier excel de façon simple ??? sans script ???
Merci de votre aide. Si possible rapide.

Il n’y a rien de très automatique pour l’instant. De plus le format excel est un format « propriétaire ».

J’y travaille mais il y a encore du boulot pour que ce soit entièrement automatique.