ç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