Blog

Pourquoi utiliser l'import massif de données

Un outil d’import de données massif tel que fourni par votre ERP PHPReaction signifie qu’en quelques clics seulement, vous pouvez ajouter ou modifier d’un seul coup des centaines de produits, ventes, entrées en inventaire, etc. ! C’est un outil nécessaire lorsque vous voulez faire une migration de données, ou tout simplement lorsque vous manipulez beaucoup de données.

Pour une explication générale de l’utilité de telles importations et de leurs étapes préalables, référez-vous à la page suivante : https://phpreaction.com/fonctionnalites/assistance-importation/

Comment utiliser l'import dans PHPReaction?

Pour utiliser l’outil d’importation massive de données présent dans l’ERP PHPReaction, vous n’avez qu’à vous rendre sur la page listant le type de données que vous voulez importer (par exemple, si vous désirez importer des produits, vous devez vous rendre sur la page de liste de produits).

 

Exemple pour se rendre sur la liste des produits.

Vous devez ensuite cliquer sur le bouton « Importer » qui se trouve à gauche de la liste.

Exemple pour importer des produits.

Standards des grilles CSV pour l'importation

L’importation des données se fait à l’aide d’un fichier de type CSV. Afin d’importer les bonnes valeurs et que le tout se fasse sans erreurs, il est important de structurer son fichier CSV de la bonne façon, c’est à dire en suivant les standards de fichiers d’importations PHPReaction CSV qui seront définis ci-dessous.

Format et structure des grilles

Pour ce qui est du format, il était précédemment mentionné que le type de fichier pour l’import serait CSV. En gros, un fichier CSV est une façon de structurer des données en les séparant toutes par des virgules. Heureusement, pour rendre la tâche plus facile, certains logiciels (notamment Microsoft Excel, LibreOffice Calc, MacOS Numbers, etc.) permettent de structurer ces données sous forme de grille. Ci-dessous se trouvent un exemple de CSV sous forme brute, et un exemple de CSV sous forme de grille.

CSV sous forme brute : 

CSV sous forme de grille : 

Vous aurez pu remarquer qu’il est préférable de travailler sous forme de grille. En gros, le fichier CSV sous forme de grille est composé de deux parties principales : 

Les entêtes qui définissent les propriétés auxquels on veut attribuer une donnée

et

Les entrées qui représentent chacune un « objet » (par exemple un produit) que nous voulons importer. Chaque cellule de la ligne d’entrée représente la donnée indiquée par son entête respective.

 

Notez aussi qu’il ne faut laisser aucune cellule vide, car sinon cela créera une erreur d’import !

Les types de données

Tel que mentionné précédemment, chaque cellule de l’entrée indique la donnée respective à son entête. Cependant, tout dépendant de la propriété que représente cette entête, différents types de données devront être employés.

En gros, un type de donnée est une façon de représenter la donnée. Ce peut être sous forme de mots, sous forme d’identifiant unique (ID) d’une autre resource, sous forme de nombre décimal, etc. Ci-dessous se trouvent une liste détaillée de chaque type de donnée possible, ainsi que leur explication et un exemple l’utilisant.

Type de donnée

Terme communément utilisé

Explication

Exemple

Identifiant unique

ID ou Relation

Il s’agit d’une propriété permettant de faire référence à une autre resource.

Dans la grille de création d’un produit, sous l’entête « type », je pourrais mettre l’ID « 2 », qui représenterait le type de produit qui a « 2 » comme identifiant unique. Cela attribuerait le type de produit « 2 » au produit.

Nombre entier

Integer ou tout simplement int

Il s’agit d’un nombre entier, donc qui ne comporte aucune virgule.

Dans la grille de création d’une entrée en inventaire, sous la propriété « quantité », je pourrais mettre le nombre « 10 », signifiant que j’ai cette quantité en inventaire. Vous remarquerez que ce type de propriété (la quantité par exemple) ne pourrait pas être fractionnelle, et c’est la raison pour laquelle le type « integer » lui est attribué.

Nombre décimal

Decimal, double ou float

Il s’agit d’un nombre fractionnel avec une virgule.

Dans la grille de création d’un produit, je pourrais mettre la valeur « 19.99 » sous la propriété « prix », afin d’attribuer cette valeur au prix. Vous remarquerez qu’étant donné qu’un prix n’est pas nécessairement un nombre entier, le type de donnée « decimal » lui est attribué.

Un mot ou une phrase

String

Il s’agit d’une série de caractères représentant un mot ou une phrase. Contrairement au type « text », le type « string » ne peut généralement contenir qu’environ 255 caractères.

Dans la grille de création d’un produit, sous la propriété « nom », je pourrais mettre la valeur « Patate ». Vous remarquerez que pour cette propriété, un texte à plusieurs lignes n’est pas nécessaire, et c’est pourquoi que la type de données « string » lui est attribué.

Un texte

Text

Il s’agit d’une série de phrases, normalement étendues sur plusieurs lignes. Contrairement au type “string”, le type “text” ne possède pas vraiment de limite atteignable.

Dans la grille de création d’une produit, sous la propriété “description”, je pourrais entrer une description complète de mon produit sur plusieurs lignes et/ou paragraphes. Vous remarquerez que pour cette propriété, il n’est pas tant réaliste d’utiliser un “string” étant donné que la limite de caractères serait vite atteinte.

Une date et un temps

datetime

Il s’agit d’une date et d’un temps enchaînés dans une liste de caractères spécifiques. Le format utilisé est le datetime ISO 8601, qui s’écrit sous la forme “2000-01-01T00:00:00-05:00”.

Dans la grille de création d’une vente, sous la propriété “date de livraison”, je pourrais mettre la valeur “2021-01-01T00:00:00-05:00” pour signifier que la vente sera livrée le 1er Janvier 2021 à 0h00.

Une proposition logique

boolean ou bool

Il s’agit d’indiquer si la propriété est respectée / activée (vrai) ou si elle ne l’est pas (faux). En général, un le type “boolean” peut représenter la valeur “vrai” par “true” ou “1” et la valeur “faux” par “false” ou “0”. Dans le cas d’un fichier CSV, ce sont les valeurs numériques qui sont utilisées.

Dans la grille de création d’un produit, sous la propriété “suivi d’inventaire”, je pourrais mettre la valeur “1” pour représenter que le produit en cours de création active la fonction “suivi d’inventaire”. Vous remarquerez que tel qu’énoncé précédemment, la valeur “1” représente “vraie” ou “activée” à la propriété “suivi d’inventaire”.

Métadonnées de PHPReaction

Dans votre ERP, lorsque vous vous dirigez dans les Paramètres > Importer > Metadonnées > Metadonnées, vous pourrez voir une liste complète de tous les types de resources de votre ERP, et si vous cliquez sur l’une d’elle, vous pourrez voir toutes les propriétés de cette resource, ainsi que les types de données de ces propriétés. Cette de votre ERP est très utile à la construction de vos grilles CSV.

Ci-dessous se trouve donc un exemple de la procédure afin d’accéder aux propriétés et à leur type de données pour la création d’un produit.

*Légende* : 

1. Indique une relation à sur une autre resource, donc demande de fournir un identifiant unique ou de créer la resource resource correspondante lors de l’import (les différents cas seront expliqués ci-dessous).

2. Indique le type de donnée « datetime »

3. Indique le nom de la propriété

4. Indique le type de donnée « string »

5. Indique que la propriété est optionnelle

6. Indique le type de donnée « decimal« 

Les relations entre les données

Dans l’exemple ci-dessus, vous avez peut-être remarqué que lorsqu’une relation avec une autre resource était indiqué, il y avait un terme à côté. Dans le cas de l’exemple, le terme était « One to many« , pour indiquer qu’un produit (One) peut être lié à plusieurs traductions (Many). Ce terme indique donc le type de relation entre deux resources. On vous explique ici brièvement les relations possibles entre les resources, puisque tout dépendant du type de relation, l’approche pour la création de la grille CSV peut différer légèrement … :

  • Si le type de relation est « One to many« , vous devrez créer la resource lors de l’import. Pour se faire, dans l’entête de la propriété dans votre grille, vous devrez faire référence à la resource à créer à l’aide d’une barre oblique « / », puis créer ses propriétés comme si vous étiez aussi en train de faire un fichier d’import de cette resource (voir l’exemple ci-dessous).
  • Si le type de relation est « Many to one« , vous devez faire référence à la resource déjà existante. Pour se faire, vous pouvez laisser l’entête comme telle, mais comme valeur, vous devez fournir l’identifiant unique de la resource à laquelle vous faites référence.

*Légende* – Fichier d’import de produit : 

1. Relation « One to many » vers la resource « traductions ». Donc ici, on crée la traduction à partir du fichier d’import du produit.

2. Relation « Many to one » vers la resource « type de produit ». Donc ici, on fait référence à la resource déjà existante « type de produit » en donnant son identifiant unique comme valeur.

3. Propriétés internes de produit qui sont des « boolean« . Nous indiquons donc si la propriété est activée ou non à l’aide de « 1 » et de « 0 ».

4. Propriété interne de produit qui est un « decimal« . Nous indiquons donc la valeur décimale requise.

5. Propriétés internes de produit qui sont des « string« . Nous indiquons donc les chaînes de caractères appropriées. 

Pourquoi vérifier ses données avant l'import?

Il est important de vérifier les données que nous entrons dans les grilles, afin d’éviter plusieurs types d’erreurs d’import. Ce genre d’erreur est souvent difficile à identifier, et est la plupart du temps lié à une mauvaise création du fichier d’import (mauvais en-têtes) ou à des références menant nul part.

Des références menant nul part / inexistantes sont la plupart du temps intégrées dans un fichier d’import de mise à jour (par exemple, mise à jour d’un produit selon son code client) ou lors de relations « Many to one » vers d’autres ressources (voir plus haut pour plus de détails).

Comment vérifier ses données avant l'import?

Il y a plusieurs façons de vérifier ses données avant de les importer, mais la meilleure façon si vous avez beaucoup de données est de faire une comparaison brute avec les références utilisées.

Une comparaison brute serait donc de retirer une liste des données référées dans l’ERP (par exemple, tous les codes clients de produits présentement sur PHPReaction), prendre les codes clients qui sont dans le fichier d’import, et utiliser un outil de grilles (comme Microsoft Office Excel) afin d’identifier les valeurs « uniques » (donc les valeurs à SOUSTRAIRE du fichier d’import).

Voir l’exemple ci-dessous pour ce qui concerne cette opérations avec l’outil Excel.

Vous devez préalablement avoir exporté une liste des données référées dans votre fichier d’import (ex. tous les codes clients des produits présents sur PHPReaction).

Dans Excel : 

  • Dans une colonne, copier / coller la liste des données référées (ex. les codes clients des produits) qui sont actuellement présentes dans PHPReaction.
  • Dans une autre colonne, copier / coller la liste de ces données qui se trouvent dans votre fichier d’import.

Votre grille excel devrait donc ressembler à quelque chose comme cela : 

  • Ensuite, sélectionnez ces deux colonnes (il faut que toutes les deux colonnes soient en bleu) et, dans votre barre d’outil (juste en haut de votre grille), sélectionnez l’option « Conditional formating« .

  • Sélectionnez ensuite « Highlight Cells Rules » puis « Duplicate Values« .
  • Dans le nouveau menu qui apparaît, cliquez sur la liste déroulante où il est présentement sélectionné « duplicate« , puis choisissez plutôt « unique« . Vous pouvez ensuite cliquer sur « OK« .

  • Toutes les cellules qui sont « uniques » seront donc en rouge. Vous pouvez donc ignorer les cellules en rouge de la colonne de gauche, et vous concentrer sur celles de la colonne de droite. Ces cellules en rouge de la colonne de droite indiquent les références qui menent nul part et qui peuvent donc causer des erreurs. Il serait donc important de soustraire ces données de votre grille d’import.

Quelques imports populaires

Vous trouverez ci-dessous une liste des fichiers CSV d’imports tout de même populaires que vous pourrez télécharger et donc vous pourrez vous inspirer pour créer vos propres grilles CSV.

Imports

Types

Descriptions

Fichiers CSV
(pour télécharger)

Logicel Produit
Import de produits

Création

Créer tous les produits listés dans le fichier selon les propriétés spécifiées. Cliquez-ici pour télécharger 

Logicel Produit & inventaire
Import d’entrées d’inventaire

Création

Créer les nombres en inventaire d’un produit en particulier en se basant sur le SKU du produit. Cliquez-ici pour télécharger

Général PHPReaction
Import de balises

Création

Créer toutes les balises (communément appelées « tags ») listées dans le fichier. Cliquez-ici pour télécharger 

Import de balisages

Création

Créer tous les liens listés dans le fichier entre des balises et des produits.  Cliquez-ici pour télécharger

Logiciel Ventes
Import de clients

Création

Créer tous les clients listés dans le fichier selon les propriétés spécifiées.  Cliquez-ici pour télécharger

Logiciel Achats
Import de fournisseurs

Création

Créer tous les fournisseurs listés dans le fichier selon les propriétés spécifiées. Cliquez-ici pour télécharger 

Logicel Produit
Import de fournisseurs alternatifs

Création

Créer tous les fournisseurs alternatifs pour un produit spécifique selon les propriétés spécifiées dans le fichier. Cliquez-ici pour télécharger

Logicel Produit
Import d’options de produit

Création

Créer toutes les options de produits listées dans le fichier selon les propriétés spécifiées. Cliquez-ici pour télécharger

Logicel Produit
Import d’options sur les produits

Création

Créer toutes les liaisons associant un produit à une option spécifiée. Cliquez-ici pour télécharger

Logicel Produit
Import de types de produits

Création

Créer tous les types de produits listés dans le fichier d’import. Cliquez-ici pour télécharger

Logicel Produit
Import des coûts et des prix d’un produit selon son SKU

Mise à jour

Mettre à jour le prix et le coût de tous les produits listés en se fiant sur les SKUs fournis pour identifier les produits concernés.  Cliquez-ici pour télécharger

Logicel Produit
Import des coûts et des prix d’un produit selon son code client

Mise à jour Mettre à jour le prix et le coût de tous les produits listés en se fiant sur les codes clients fournis pour identifier les produits concernés.   Cliquez-ici pour télécharger

Logicel Produit
Import des coûts et des prix d’un produit selon son code de fournisseur

Mise à jour Mettre à jour le prix et le coût de tous les produits listés en se fiant sur les codes de fournisseurs fournis pour identifier les produits concernés.   Cliquez-ici pour télécharger 

Logicel Produit
Changer le titre et / ou la description d’un produit selon son SKU

Mise à jour Mettre à jour le titre ou la description d’un produit (qui sont considérés des « traductions » de celui-ci) en se basant sur le sku fournit. Cliquez-ici pour télécharger

Logiciel Comptabilité
Importer des entrées de compte par slug dans une transaction

Création Importer des entrées dans une transaction manuelle en utilisant le « Slug » (« encaisse » => « bank ») des comptes comme référence Cliquez-ici pour télécharger

Logiciel Comptabilité
Importer des entrées de compte par ID dans une transaction

Création Importer des entrées dans une transaction manuelle en utilisant le « ID » (« encaisse » AC123 => 123) des comptes comme référence Cliquez-ici pour télécharger

Logiciel Comptabilité
Importer des entrées de compte par Ref dans une transaction

Création Importer des entrées dans une transaction manuelle en utilisant la « Ref » (« encaisse » #1101 => 1101) des comptes comme référence Cliquez-ici pour télécharger