-

Comment importer des données de produit ou d'article de blog dans Drupal à partir de fichiers CSV ? Étape par étape

Dans cet article, je vais vous montrer comment importer des données à partir de fichiers CSV dans Drupal. Cela constitue souvent une étape lors de la création d'un nouveau site web, et les solutions présentées ici seront utiles pour le transfert de données d'une ancienne solution de CMS à une nouvelle. Je vais également démontrer comment gérer une telle situation en utilisant le module Feeds et son extension Feeds Tamper, et vous guider dans l'importation de données en utilisant trois types de données comme exemples : produits, utilisateurs et articles de blog.

Vous verrez à quel point il est facile de déplacer du contenu dans Drupal en mappant les données en conséquence et comment manipuler les données avec les modules disponibles pour les personnaliser selon vos besoins.
Je vous encourage à lire l'article ou à regarder l'épisode de la série “Nowoczesny Drupal” (la vidéo est en polonais), où je vous montre toutes les étapes une par une.

Module Drupal Feeds - qu'est-ce que c'est et comment ça fonctionne ?

Le module Feeds nous permet d'importer des données à partir de divers formats, tels que CSV, JSON, XML, et RSS. Il nous permet de déplacer facilement de grandes quantités de données vers Drupal, ce qui est particulièrement utile lors de la migration à partir de systèmes plus anciens ou de l'intégration de Drupal avec des sources de données externes.

Dans cet article, nous allons également utiliser le module Feeds Tamper, qui étend les capacités de Feeds en nous permettant de manipuler les données que nous importons dans Drupal. Par exemple, nous pouvons diviser les champs, supprimer les caractères inutiles et modifier les structures de données, nous donnant un contrôle total sur la manière dont les données se retrouveront dans le système. Feeds Tamper est un outil clé lorsque les données sont incohérentes ou nécessitent un traitement supplémentaire avant de pouvoir être importées.

Ensemble, ces deux modules - Feeds et Feeds Tamper - créent une solution très flexible et robuste qui facilite le travail avec les données dans Drupal.

Le module Feeds vous permet d'importer des données dans Drupal à partir de divers formats, comme un fichier CSV.


Ces modules ont déjà été installés sur mon système, alors passons à une démonstration étape par étape du processus d'importation et de la manière de les utiliser.

Importer des produits à partir d'un fichier CSV

Nous avons notre fichier CSV d'exemple, qui contient des colonnes avec les données suivantes :

  • Titre - nom du produit,
  • Catégorie - catégorie du produit,
  • Description - description du produit,
  • Tags - étiquettes liées au produit,
  • Photos - ID des photos que nous avons précédemment importées dans les médias Drupal.
     

Un exemple de fichier CSV simple avec des produits préparés pour l'importation de données dans Drupal.


Maintenant, passons à Drupal. Je vais montrer des exemples de la distribution Droopler (elle a déjà des types de contenu tels que "Produit", qui a un titre, une image, du contenu, des catégories et des tags).

Si nous avons installé le module Feeds, nous pouvons trouver le type Feeds dans le menu de la structure et ajouter de nouveaux Feeds pour nous-mêmes.

Configurer le module Drupal Feeds

  1. Nous allons dans l'onglet "Structure" et sélectionnons "Type Feeds".
  2. Nous ajoutons un nouveau type, "Feeds", et le nommons "Produits".
  3. Nous configurons le Fetcher, où nous sélectionnons "Source de données" - "CSV" et précisons le type de données que nous voulons importer, c'est-à-dire, "Nœud" et le type de contenu "Produit".
  4. Nous configurons le Parser pour que les données soient séparées par une virgule.
  5. Nous configurons le Processeur, qui mettra à jour les données existantes la prochaine fois que le fichier sera importé.
Video file


Nous sauvegardons les modifications et passons au mapping.

Mapping des champs pour les produits

Une partie cruciale de l'importation est le mapping des champs du fichier CSV vers les champs correspondants dans Drupal. Ce processus implique l'attribution de données des colonnes CSV à des champs spécifiques dans le type de contenu, tels que le titre, la catégorie, le contenu, les tags ou les images.

Le mapping des champs pour les produits importés à partir d'un fichier CSV dans Drupal est une opération simple.


Ici, nous avons une liste par défaut de champs, que le module nous fournit, à partir d'un type de contenu donné pour un produit. Sélectionnons "Titre".

Dans le mapping des champs, pour importer les données de produit dans Drupal, vous devez inclure un champ avec un titre.


Ensuite, nous sélectionnons la source, c'est-à-dire une colonne du CSV avec le nom "title". Nous indiquons qu'il est unique afin de pouvoir reconnaître et mettre à jour les produits à partir de celui-ci plus tard (à l'avenir, nous pourrons changer cela en ID ou ID de produit).

Un élément de mapping de champs dans l'importation de produits est la sélection de la source du fichier CSV.


Ensuite, nous sélectionnons le champ "Catégorie" et assignons une colonne avec le nom de la catégorie. Nous pouvons immédiatement utiliser le champ avec une référence. Ici, je vais montrer l'exemple du "nom".

Un formulaire dans Drupal visible lors du mapping des champs selon un fichier CSV.


Ensuite, nous pouvons cocher l'option Autocreate pour que Drupal crée automatiquement de nouvelles catégories si elles n'existent pas dans le système.

Les étapes suivantes consistent à définir des tags, des médias et des descriptions :

  1. Tags : nous attribuons le champ "Tags" à la colonne de tags dans le fichier CSV.

Si les tags sont séparés par un point-virgule, nous pouvons utiliser le module Feeds Tamper pour les diviser en entrées distinctes.

  1. Photos : nous attribuons le champ "Photos" aux ID médiatiques correspondants dans Drupal.

Il est important d'importer les photos dans le système au préalable car le module Drupal Feeds attribue les photos en fonction de leur ID.

  1. Description : nous attribuons le champ "Description" à la colonne correspondante contenant le contenu de la description du produit.
    Définir les tags, médias et descriptions dans Drupal pour correspondre aux données d'un fichier CSV.


Importation des données

Une fois que nous avons terminé de mapper les champs, nous pouvons procéder à l'importation des données.

  1. Nous allons dans l'onglet "Contenu" -> "Feeds".
  2. Nous cliquons sur "Ajouter un nouveau canal" et sélectionnons le type Feeds "Produits".
  3. Nous sélectionnons le fichier CSV avec les données produits et cliquons sur "Importer".
  4. Une fois terminé, Drupal nous informera du nombre de produits importés. Dans cet exemple, nous avons reçu l'information que deux produits ont été importés.

    Un message dans Drupal indiquant que deux produits ont été correctement créés à partir d'une importation de données CSV.


Si les tags ou d'autres données ont été importés incorrectement, nous pouvons utiliser le module Feeds Tamper pour manipuler les données - par exemple, pour séparer les tags selon le séparateur.

Feeds Tamper - quand vaut-il la peine de l'utiliser ?

Dans certains cas, les données nécessitent un traitement supplémentaire pour être importées correctement dans Drupal. C'est là que le module Feeds Tamper devient essentiel, car il vous permet de modifier les données avant de les importer.

Pour utiliser Feeds Tamper, nous allons dans l'onglet "Structure", puis sélectionnons notre type Feeds, par exemple "Produits". Ici, nous pouvons ajouter diverses options de manipulation de données pour des champs individuels. Feeds Tamper propose de nombreux outils, tels que l'utilisation d'expressions régulières (regex) ou la fonction explode, qui nous permet de séparer les données en fonction d'un séparateur spécifique.

Par exemple, pour le champ "Tags", qui est séparé par un point-virgule dans le fichier CSV, nous pouvons ajouter une opération explode pour séparer les tags en entrées distinctes. Pour le champ "Photos", où les photos sont séparées par une virgule, nous définissons la manipulation de données appropriée afin que Drupal puisse correctement reconnaître chaque photo. Après avoir appliqué ces opérations, nous revenons au processus d'importation et le poursuivons, en étant sûr que les données seront correctement importées et attribuées aux champs appropriés.

La manipulation des données de cette manière est extrêmement utile lorsque les données sont complexes ou nécessitent une transformation pour s'adapter à la structure de Drupal.

Importer des utilisateurs à partir d'un fichier CSV

Passons maintenant à l'importation d'utilisateurs. Notre fichier CSV contient des données telles que :

  • E-mail - l'adresse e-mail de l'utilisateur,
  • Nom d'utilisateur - identifiant de l'utilisateur,
  • Rôle - le rôle attribué à l'utilisateur,
  • Statut - si l'utilisateur est actif ou non dans le CMS.

Nous retournons à l'onglet "Structure" -> "Type Feeds" et ajoutons un nouveau type d'importation nommé "Utilisateurs". Nous choisissons "Source de données - CSV" et type de données "Utilisateurs". Dans les paramètres du processeur, nous sélectionnons "Mettre à jour les utilisateurs existants" pour éviter les doublons.

L'étape d'importation de données d'utilisateur à partir d'un fichier CSV dans Drupal en utilisant le module Feeds.


Nous allons mettre à jour les utilisateurs existants, alors nous passons au mapping.

Mapping des champs pour les utilisateurs

Lors de l'importation des utilisateurs, nous avons moins de champs à mapper :

  1. Email : nous attribuons une colonne d'e-mail au champ "E-mail" dans Drupal. Ce champ doit être unique car chaque utilisateur doit avoir une adresse e-mail unique.
  2. Nom d'utilisateur : nous attribuons le nom d'utilisateur à la colonne correspondante.
  3. Rôle : nous attribuons un rôle à la colonne du rôle utilisateur. Nous pouvons choisir si nous voulons attribuer le rôle par étiquette ou par ID.
  4. Statut : nous attribuons un statut qui détermine si l'utilisateur est actif ou bloqué.
Video file


À ce stade, nous avons deux "Feed Types" : "produit" et "utilisateurs". Nous nous occuperons de l'importation des utilisateurs.

Importer des utilisateurs

Nous allons dans l'onglet "Contenu" -> "Feeds". Nous ajoutons un nouveau canal pour les utilisateurs, sélectionnons le fichier CSV et cliquons sur "Importer".

Ajouter un nouveau flux d'utilisateurs dans Drupal en utilisant le module Feeds pour l'importation.


Une fois le processus terminé, nous vérifions que les utilisateurs ont été correctement ajoutés avec les rôles et statuts corrects.

Vérification que les données utilisateur ont été correctement ajoutées au système Drupal à partir du CSV.


Comme vous pouvez le voir, l'importation d'utilisateurs dans le système de gestion de contenu est simple et peut être faite rapidement.

Importer des articles de blog à partir d'un fichier CSV

Le dernier exemple est l'importation de contenu de blog. Comme pour les produits et les utilisateurs, nous utilisons un fichier CSV contenant les champs suivants :

  • Titre - nous attribuons le titre du blog,
  • Extrait - nous introduisons un résumé du contenu,
  • Contenu - nous attribuons le contenu au paragraphe dans Drupal (HTML complet),
  • Photos - nous mappons les photos en fonction de l'ID du CSV,
  • Catégorie - ajouter une catégorie en fonction du nom, et le système créera automatiquement de nouvelles catégories si elles n'existent pas.

    Importation du contenu d'un article de blog dans Drupal à partir d'un fichier CSV contenant les colonnes pertinentes.


Configurer le module Drupal Feeds pour les articles de blog

Sous "Structure" -> "Type Feeds" nous ajoutons un nouveau type d'importation, que nous appellerons "Articles de blog".

Configurer le module Drupal Feeds pour importer les articles de blog à partir d'un fichier CSV.


Ceci est un import à partir d'un fichier CSV dans un nœud qui tombera dans les articles de blog.

Écran de configuration Drupal, montrant l'importation d'articles à partir d'un fichier CSV dans le nœud correspondant.


Comme dans le cas des produits et des utilisateurs, nous nous attribuons ces champs, puis nous définissons les données et sélectionnons la catégorie de blog. Ensuite, nous référons par nom et de nouvelles catégories sont créées.

Sauvegardez. Ensuite, nous allons créer un nouveau Flux, un nouveau canal. Nous avons déjà les articles de blog.

À la fin, nous sélectionnons un fichier pour nous-mêmes et l'importons. Lorsque l'importation est terminée, nous voyons que les articles de blog sont correctement importés, avec des catégories et des images correctement attribuées.

Un message dans Drupal indiquant que trois articles de blog ont été correctement importés depuis le CSV.


Tous les éléments sont affichés correctement ; nous pouvons également voir dans la liste que tout a l'air bien.

Le site créé dans Drupal avec des articles de blog importés à partir d'un fichier CSV avec le module Feeds.


Importer des données dans Drupal - résumé

Le module Feeds et l'extension Feeds Tamper sont des outils complets qui facilitent la gestion de grandes quantités de données. Avec eux, nous pouvons automatiser le processus de migration et d'importation de contenu, ce qui permet d'économiser beaucoup de temps et de travail. Que nous importions des produits, des utilisateurs ou des articles de blog, nous pouvons personnaliser le processus en mappant les données d'un fichier CSV aux champs appropriés dans Drupal.

Étapes clés du processus d'importation :

  • Configurer le module Feeds : spécifier la source de données et le type de contenu et définir le parseur et le processeur pour traiter les données selon les besoins.
  • Mapping des champs : attribuer les colonnes du fichier CSV aux champs correspondants dans Drupal, ce qui permet une représentation précise de la structure des données.
  • Manipulation des données avec Feeds Tamper : la possibilité de transformer les données avant l'importation (par exemple, séparer les tags ou gérer les multimédias), ce qui est extrêmement utile pour les formats de données plus complexes.

Il est important de se rappeler que le module Feeds Tamper offre un contrôle supplémentaire sur les données importées, ce qui est particulièrement utile lorsque les données doivent être ajustées - par exemple, lorsque les tags sont stockés dans un seul champ ou que les images sont séparées par des virgules.

Si vous envisagez de migrer vos données vers Drupal ou de gérer une grande quantité de contenu, le module Feeds et son extension sont des outils indispensables qui vous permettront d'automatiser de nombreux processus, d'éviter les erreurs et de gagner un temps précieux. De plus, la capacité de mettre à jour les données existantes rend le processus efficace et flexible. Avez-vous besoin d'une assistance supplémentaire pour ces processus ? Nos experts de l' agence Drupal peuvent vous aider à optimiser votre travail avec ce CMS.

migrate Drupal 7 website Droptica