Importation de produits depuis des fichiers texte
Ajouter des produits manuellement est acceptable si votre boutique ne contient que quelques articles. Mais que faire si vous avez des centaines voire des milliers de produits ? Cette méthode demande beaucoup de temps et n’est pas très productive pour les grandes boutiques. Sachez que si vous avez 10 000 produits et qu’il faut environ cinq minutes pour saisir un produit, cela représente environ cinq mois de travail. Vous devrez aussi faire face à des problèmes comme une connexion Internet lente ou des erreurs de l’équipe. C’est pourquoi la meilleure solution est l’importation des produits depuis un fichier texte. Vous pouvez importer des produits à partir de trois types de fichiers : fichiers CSV (valeurs séparées par des virgules), fichiers SSV (valeurs séparées par des points-virgules) ou fichiers TSV (valeurs séparées par tabulations). Un fichier CSV stocke le contenu d’un tableau ou d’une liste. Le format CSV est une ligne de champs séparés par des virgules. Par exemple, si vous avez ce tableau :
Voici la représentation CSV de ce tableau :
"Name","Category","SKU","Price"
"iPod Nano","iPods",100001,"199.99"
"iPod Classic","iPods",100002,"249.99"
"iPod Shuffle","iPods",100003,"79.99"
Les fichiers SSV remplacent la virgule par un point-virgule, et dans les fichiers TSV, les champs sont séparés par des tabulations. Nous utiliserons des fichiers CSV dans notre exemple, mais la procédure est la même pour les autres types de fichiers.
Avant de pouvoir importer des fichiers CSV dans Ubercart, vous devez d’abord installer le module Node import. Pour cela :
- Allez sur http://drupal.org/project/node_import et téléchargez le module Node import. Choisissez la dernière version pour Drupal 6.x. Vous devrez également télécharger les modules dont dépend Node import : Date et Advanced help. Téléchargez le module Date API sur http://drupal.org/project/date puis le module Advanced help sur http://drupal.org/project/advanced_help.
- Décompressez ces fichiers et copiez-les dans le dossier sites/all/modules.
- Allez sur la page des modules et activez Date, Advanced help, et Node import.
- La page d’import de contenu est accessible via Administration | Gestion du contenu | Importer du contenu.
La page comporte trois onglets :
- Liste (list) : affiche tous les imports créés et les fichiers téléchargés. Si vous n’avez encore rien créé, la liste est vide.
- Nouvel import (New import) : ouvre l’assistant d’import. Nous y reviendrons plus tard.
- Paramètres (Settings) : ouvre la page de configuration.
Avant de commencer l’import, cliquez sur Paramètres pour voir la page de configuration.
- Répertoire d’import (Import directory) : ici vous pouvez déposer vos fichiers CSV via FTP ou l’assistant d’import.
- Si vous souhaitez télécharger les fichiers via FTP, cochez Allow FTP uploads.
- Pour des raisons de sécurité, si vous autorisez l’upload FTP, vous devez aussi renseigner le propriétaire des fichiers dans le champ suivant. Sinon, les fichiers téléchargés seront accessibles à tout le monde, même aux utilisateurs anonymes.
- Dans Allowed extensions, vous déclarez les extensions autorisées. Les autres fichiers seront ignorés.
Pour votre boutique, vous n’avez rien à modifier, cliquez simplement sur Enregistrer la configuration pour revenir à la page précédente. Avant d’explorer l’assistant d’import, examinons les fichiers CSV et la structure correcte, ainsi que comment créer ces fichiers.
Le moyen le plus simple de créer un fichier CSV est d’utiliser un tableur comme Microsoft Excel ou OpenOffice. Ces applications sauvegardent les fichiers dans leur format par défaut, mais peuvent facilement exporter au format CSV. Importer des fichiers en tableau est beaucoup plus rapide que de saisir directement dans Ubercart. L’avantage majeur est que si vous disposez d’une base de données dans une autre application, vous pouvez la convertir en CSV et l’importer dans Ubercart.
Dans le fichier tableur, chaque ligne correspond à un produit, et chaque colonne à une propriété du produit. Souvenez-vous comment nous avons créé un nouveau produit ? Pour chaque champ de ce formulaire, vous devez créer une colonne distincte. Vous n’aurez pas besoin de tous les champs, seulement les plus importants. Par exemple, voici la table que j’ai créée :
Enregistrez la table au format CSV.
La table contient six colonnes : SKU, nom, description, catégorie, prix, images. Vous pouvez créer la même structure dans votre application et sauvegarder en CSV. La dernière étape consiste à uploader les images de vos produits sur le serveur. Utilisez une application FTP pour transférer tous les fichiers dans le dossier sites/default/files. Comme vous le voyez dans la table, nous utilisons un nouveau dossier nommé import pour séparer ces images des autres images du site. Par défaut, les images se trouvent dans le dossier racine sites/default/files. Par exemple, si vous ajoutez vos images dans le dossier products sous files, vous devrez modifier la colonne chemin en ajoutant ce préfixe, ici /products/036.jpg.
Après avoir sauvegardé le fichier CSV et uploadé les images, retournez à Ubercart et cliquez sur Nouveau import. L’import commence.
La page d’introduction montre des informations sur la procédure et les boutons principaux. Lisez puis cliquez sur Suivant.
- Sur la première page de l’assistant, sélectionnez le type de contenu à importer. Choisissez Product et cliquez sur Suivant.
- Sur la deuxième page, vous devez choisir et télécharger le fichier CSV. Si vous avez déjà des fichiers uploadés, vous les verrez en liste pour sélectionner celui à utiliser. Pour uploader un nouveau fichier, cliquez sur Parcourir, sélectionnez le fichier et cliquez sur Télécharger le fichier. Après avoir téléchargé et sélectionné le fichier CSV, cliquez sur Suivant.
- Sur la troisième page, vous pouvez régler des options basiques liées au fichier. Choisissez si la première ligne contient les noms des colonnes (c’est le cas ici, laissez coché). Ensuite, sélectionnez le format du fichier. Vous avez créé un fichier CSV, donc pas besoin de changer. En bas, vous verrez un aperçu des données des quatre premières lignes du fichier.
Généralement, Microsoft Excel sauvegarde les CSV avec des points-virgules, tandis qu’OpenOffice utilise des virgules.
Cliquez sur Suivant.
Si une erreur fatale apparaît, par exemple :
Fatal error : Call to undefined function uc_product_node_is_product() in Z:\home\ubercart\www\sites\all\modules\node_import-6.x-1.0-rc4\node_import\supported\ubercart\uc_product.inc on line 15
Dans ce cas, allez sur le forum Ubercart et trouvez la solution :
http://www.ubercart.org/forum/bug_reports/12843/csv_import_step_3
Dans la ligne 15 du fichier node_import\supported\ubercart\uc_product.inc :
uc_product_node_is_product($node_type)
remplacez par :
uc_product_is_product($node_type)
- Sur la quatrième page, associez les colonnes du fichier aux champs produit. Si vous avez utilisé les en-têtes comme dans l’exemple CSV, le module associera automatiquement les colonnes. Vérifiez chaque champ pour vous assurer que l’association est correcte. Si ce n’est pas le cas, vous pouvez choisir une autre colonne dans le menu déroulant. Si tout est correct, descendez en bas et cliquez sur Suivant.
- Sur la cinquième page, vous pouvez définir quelques paramètres supplémentaires. Vous pouvez laisser tout par défaut et cliquer sur Suivant.
- Sur la sixième page, il y a beaucoup de valeurs par défaut utilisées lorsque le champ n’est pas défini dans le fichier CSV. Si une caractéristique du produit est absente, vous pouvez choisir une valeur par défaut. Cliquez sur Suivant.
- Sur la septième page, vous pouvez revoir le tableau d’import. Regardez attentivement ces requêtes pour voir s’il y a des erreurs. Si tout est correct, cliquez sur Suivant.
Cependant, des problèmes d’encodage peuvent survenir. Pour importer un fichier CSV, il faut que l’encodage soit UTF-8. MS Excel sauvegarde par défaut les CSV en ANSI, ce qui peut provoquer des caractères illisibles :
Si tout est bon et qu’il n’y a pas de problème, vous pouvez charger votre catalogue.
- Nous arrivons à la huitième page, dernière étape avant l’import final. Vous pouvez vérifier les paramètres principaux et voir un aperçu des données. Cliquez sur Démarrer l’import pour continuer. Une fois la procédure terminée, vous pourrez voir le rapport des lignes importées et des lignes avec erreurs. Si vous n’avez plus besoin du fichier CSV, il est préférable de le supprimer du serveur.
Après l’import des produits, vous pouvez consulter le rapport des erreurs d’import :
Hourra ! Des erreurs surviennent souvent pendant l’import, mais ne vous inquiétez pas, elles arrivent à beaucoup de personnes et certains posent des questions sur les forums. Grâce à Google, vous trouverez de nombreuses solutions à vos problèmes.
Et maintenant, directement dans le catalogue, voilà :