Service FTP : Format de données attendu
Le point FTP contient deux sous-dossiers afin de permettre au service de traiter les données reçues :
- work : Dossier dans lequel les ZIP réceptionnés seront décompressés afin d'être traités
- histo : Dossier contenant l'ensemble des ZIP réceptionnés et traités
- format des ZIP :
{yyyy-MM-dd} {HH}h{mm}m{ss}s.zip
- Exemple :
2022-09-26 16h56m03s.zip
- Exemple :
- format des ZIP :
Le service scanne automatiquement la racine du point FTP afin de détecter et traiter tout nouveau ZIP.
Format des données envoyés en FTP
Toutes les données envoyées via FTP, quelles que soient leurs types, doivent être compressées en ZIP au préalable.
Le ZIP n'a pas besoin d'avoir un nommage spécifique, il doit juste être compressé en ZIP "classique" (Extension ".zip" et niveau de compression "normale").
Une fois généré, le ZIP doit être déposé à la racine du point FTP afin que notre service puisse le détecter.
Une fois la réception du ZIP terminé, celui-ci sera alors décompressé afin d'être traité.
Télécharger l'exemple de ZIP avec les données au format JSON : TODO
Télécharger l'exemple de ZIP avec les données au format CSV : TODO
Structure du ZIP attendu
Le ZIP peut contenir les éléments suivants :
- Un fichier de données des clients (voir détails)
- Un fichier de données des articles (voir détails)
- Un dossier contenant les fiches techniques des articles* (voir détails)
- Un dossier contenant les fiches de données de sécurité des articles* (voir détails)
- Un dossier contenant les photos des articles* (voir détails)
- Un dossier contenant les photos des clients** (voir détails)
* : Le fichier de données articles doit être inclus dans le zip pour que ce dossier soit traité
** : Le fichier de données clients doit être inclus dans le zip pour que ce dossier soit traité
Exemple de contenu de fichier ZIP
- clients.csv
- produits.csv
- /FT
- 00012.pdf
- 00245.pdf
- /FDS
- 00012.pdf
- 00012.pdf
- /photo
- 00012.jpg
- 00245.jpg
- /client
- 8054.jpg
Télécharger l'exemple : TODO
Fichier de données clients
Nommage
Le service FTP accepte les données dans les formats suivants :
- JSON
- CSV
Le fichier d'import des données clients peut être nommé comme ci-après (l'extension du fichier n'est pas prise en compte) :
- cli
- client
- clients
Exemple de nom pour le fichier clients
- cli.csv
- clients.json
Format JSON
Le fichier JSON doit contenir une liste de clients.
Liste des propriétés d'un client :
Propriété | Description | Exemple d'utilisation |
Reference | Référence du client | "Reference": "8054" |
Designation | Nom du client | "Designation": "Mairie de Perpignan" |
OffreDePrix | Liste les références des produits dans l'offre de prix du client | "OffreDePrix":
["00000001", "aaa1"]
|
Historique | Liste les références des produits dans l'historique du client | "Historique":
["00000001"]
|
Les propriétés reference
et designation
sont obligatoires afin que le client en question soit traité.
Exemple complet avec 2 clients au format JSON
[
{
"Reference": "8054",
"Designation": "Mairie de Perpignan",
"OffreDePrix": ["00000001", "aaa1"],
"Historique": ["00000001"]
},
{
"Reference": "84513",
"Designation": "EPHAD de Perpignan",
"Historique": ["aaa1"]
}
]
Télécharger l'exemple : exemple_complet_2_clients.json
Format CSV
Le fichier CSV doit contenir une liste de clients.
L'ensemble des entêtes peuvent être défini sous différent nommage (ex: "ref" ou "référence") et l'ordre n'importe pas.
Chaque entête / valeur doivent être séparé par un ";" (point virgule) ou "," (virgule).
Liste des entêtes du fichier CSV / propriétés d'un client :
Entête | Description |
Reference | Référence du client |
Designation | Nom du client |
OffreDePrix | Liste les références des produits dans l'offre de prix du client |
Historique | Liste les références des produits dans l'historique du client |
Les entêtes reference
et designation
sont obligatoires afin que le fichier CSV soit traité
Exemple d'entêtes valides
Reference;Designation;offreDePrix;Historique
désignation;référence;offre de prix;historique
nom;ref.;offre;histo
titre;réf
Voir les règles REGEX des entêtes
Référence :
^\s*((cli|client|organn?isation|soci[ée]t[ée])?[s]?\s*(r(e|é)f[.]?|r(e|é)f(e|é)rence)[s]?|(r(e|é)f[.]?|r(e|é)f(e|é)rence)[s]?\s*(du|de|l[']?)?\s*(cli|client|organn?isation|soci[ée]t[ée])?[s]?)\s*$
Désignation :
^\s*((cli|client|organn?isation|soci[ée]t[ée])[s]?\s*(d(e|é)signation|titre|nom|libell(e|é))[s]?|(d(e|é)signation|titre|nom|libell(e|é))[s]?\s*(du|de|l[']?)?\s*(cli|client|organn?isation|soci[ée]t[ée])?[s]?)\s*$
Offre de prix :
^\s*((cli|client|organn?isation|soci[ée]t[ée])?[s]?\s*(offre)[s]?\s*(du|de|l[']?)?\s*(prix)?|(offre)[s]?\s*(du|de|l[']?)?\s*(prix)?\s*(du|de|l[']?)?\s*(cli|client|organn?isation|soci[ée]t[ée])?[s]?)\s*$
Historique :
^\s*((cli|client|organn?isation|soci[ée]t[ée])?[s]?\s*(histo[.]?|historique)[s]?|(histo[.]?|historique)[s]?\s*(du|de|l[']?)?\s*(cli|client|organn?isation|soci[ée]t[ée])?[s]?)\s*$
Exemple complet avec 2 clients au format CSV
Designation;Reference;offreDePrix;Historique
8054;Mairie de Perpignan;00000001,aaa1;00000001
84513;EPHAD de Perpignan;;aaa1
Télécharger l'exemple : exemple_complet_2_clients.csv
Fichier de données articles
Nommage
Le service FTP accepte les données dans les formats suivants :
- JSON
- CSV
Le fichier d'import des données articles peut être nommé comme suivant (l'extension du fichier n'est pas prise en compte) :
- art
- article
- produits
Exemple de nom pour le fichier articles
- art.csv
- articles.json
Format JSON
Le fichier JSON doit contenir une liste d'articles.
Liste des propriétés d'un article:
Propriété | Description | Exemple d'utilisation |
Reference | Référence de l'article | "Reference": "00000001" |
ReferenceGroupe | Référence groupe de l'article | "ReferenceGroupe": "00000001A" |
Designation | Nom de l'article | "Designation": "Dégraissant spray" |
Description | Description de l'article | "Description": "Dégraissant en spray de 500ml..." |
Dosage | Dosage recommandée de l'article | "Dosage": "Prêt à l'emploi" |
Temperature | Température recommandée de l'article | "Temperature": "Température ambiante" |
Les propriétés reference
et designation
sont obligatoires afin que l'article en question soit traité.
Exemple complet avec 2 articles au format JSON
[
{
"Reference": "00000001",
"ReferenceGroupe": "00000001A",
"Designation": "Dégraissant spray",
"Description": "Dégraissant en spray de 500ml...",
"Dosage": "Prêt à l'emploi",
"Temperature": "Température ambiante"
},
{
"Reference": "aaa1",
"Designation": "Désinfectant 5L",
"Description": "Bidon de 5L de désinfectant...",
"Dosage": "0,2 à 1 %",
"Temperature": "à l'eau chaude"
},
]
Télécharger l'exemple : exemple_complet_2_articles.json
Format CSV
Le fichier CSV doit contenir une liste d'articles.
L'ensemble des entêtes peuvent être défini sous différent nommage (ex: "ref" ou "référence") et l'ordre n'importe pas.
Chaque entête / valeur doivent être séparé par un ";" (point virgule) ou "," (virgule).
Liste des entêtes du fichier CSV / propriétés d'un article:
Entête | Description |
Reference | Référence de l'article |
ReferenceGroupe | Référence groupe de l'article |
Designation | Nom de l'article |
Description | Description de l'article |
Dosage | Dosage recommandée de l'article |
Temperature | Température recommandée de l'article |
Les entêtes reference
et designation
sont obligatoires afin que le fichier CSV soit traité
Exemple d'entêtes valides
Reference;ReferenceGroupe;Designation;Description;Dosage;Temperature
désignation;référence;référence groupe;dosage;température
nom;ref.;dosage;temp
titre;réf
Voir les règles REGEX des entêtes
Référence :
^\s*((produit|art|article)?[s]?\s*(r(e|é)f[.]?|r(e|é)f(e|é)rence)[s]?|(r(e|é)f[.]?|r(e|é)f(e|é)rence)[s]?\s*(du|de|l[']?)?\s*(produit|art|article)?[s]?)\s*$
Référence groupe :
^\s*((produit|art|article)?[s]?\s*(r(e|é)f[.]?|r(e|é)f(e|é)rence)[s]?\s*(grp[.]|groupe)[s]?|(r(e|é)f[.]?|r(e|é)f(e|é)rence)[s]?\s*\s*(grp[.]|groupe)[s]?\s*(du|de|l[']?)?\s*(produit|art|article)?[s]?)\s*$
Désignation :
^\s*((produit|art|article)[s]?\s*(d(e|é)signation|titre|nom|libell(e|é))[s]?|(d(e|é)signation|titre|nom|libell(e|é))[s]?\s*(du|de|l[']?)?\s*(produit|art|article)?[s]?)\s*$
Description :
^\s*((produit|art|article)[s]?\s*(description|d(e|é)tail)[s]?|(d(e|é)signation|titre|nom)[s]?\s*(du|de|l[']?)?\s*(produit|art|article)?[s]?)\s*$
Dosage :
^\s*((produit|art|article)?[s]?\s*(dosage)[s]?|(dosage)[s]?\s*(du|de|l[']?)?\s*(produit|art|article)?[s]?)\s*$
Température :
^\s*((produit|art|article)?[s]?\s*(temp[.]?|temp(e|é)rature)[s]?|(temp[.]?|temp(e|é)rature)[s]?\s*(du|de|l[']?)?\s*(produit|art|article)?[s]?)\s*$
Exemple complet avec 2 articles au format CSV
Reference;ReferenceGroupe;Designation;Description;Dosage;Temperature
00000001;00000001A;Dégraissant spray;Dégraissant en spray 500ml...;Prêt à l'emploi;Température ambiante
aaa1;Désinfectant 5L;Bidon de 5L de désinfectant...;0,2 à 1 %;à l'eau chaude
Télécharger l'exemple : exemple_complet_2_articles.csv
Dossiers des documents des articles
Dossier fiches technique
Ce dossier permet de stocker les fiches techniques au format PDF des articles ajoutés / modifiés dans le fichier de données article.
Les PDF doivent être nommés avec la référence de l'article concerné.
Exemple de PDF contenu dans le dossier
- 00000001.pdf
- aaa1.pdf
Télécharger l'exemple : TODO
Le dossier peut être défini sous différents nommage (ex: "ft" ou "fiches techniques")
Voir la règle REGEX de nom du dossier
^(ft|fiches?(\s*|-)?tech(nique)?)$
Dossier fiches de données de sécurité
Ce dossier permet de stocker les fiches de données de sécurité au format PDF des articles ajoutés / modifiés dans le fichier de données article.
Les PDF doivent être nommés avec la référence de l'article concerné.
Exemple de PDF contenu dans le dossier
- 00000001.pdf
- aaa1.pdf
Télécharger l'exemple : TODO
Le dossier peut être défini sous différents nommages (ex: "fds" ou "fiches de sécurité")
Voir la règle REGEX de nom du dossier
^(fds|fiches?(\s*|-)?(de)?(\s*|-)?s['ée]cu(rit['ée]e?)?)$
Dossier photo
Ce dossier permet de stocker les photos au format JPG des articles ajoutés / modifiés dans le fichier de données article.
Les photos doivent être nommées avec la référence de l'article concerné.
Exemple de photos contenu dans le dossier
- 00000001.jpg
- aaa1.jpg
Télécharger l'exemple : TODO
Le dossier peut être défini sous différents nommages (ex: "img" ou "photos")
Voir la règle REGEX de nom du dossier
^(photo|img|image|picture)s?$
Dossiers des documents des clients
Dossier client
Ce dossier permet de stocker les photos au format JPG des articles ajoutés / modifiés dans le fichier de données client.
Les photos doivent être nommées avec la référence du client concerné.
Exemple de photos contenu dans le dossier
- 8054.jpg
- 84513.jpg
Télécharger l'exemple : TODO
Le dossier peut être défini sous différents nommages (ex: "cli" ou "clients")
Voir la règle REGEX de nom du dossier
^cli(ent?s)?$