Service FTP : Format de données attendu
Le point FTP contient deux sous-dossiers afin de permettre au service de traiter les donnéesdonnées reçuesreçues :
- work : Dossier dans lequel les ZIP
réceptionnésréceptionnés serontdécompressésdécompressés afin d'êtreêtretraitéstraités - histo : Dossier contenant l'ensemble des ZIP
réceptionnésréceptionnés ettraitéstraité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étecterdétecter et traiter tout nouveau ZIP.
Format des donnéesdonnées envoyésenvoyés en FTP
Toutes les donnéesdonnées envoyéesenvoyées via FTP, quelles que soient leurs types, doivent êtreêtre compresséescompressées en ZIP au préalable.préalable.
Le ZIP n'a pas besoin d'avoir un nommage spécifique,spécifique, il doit juste êtreêtre compressécompressé en ZIP "classique" (Extension ".zip" et niveau de compression "normale").
Une fois généré,généré, le ZIP doit êtreêtre déposédéposé àà la racine du point FTP afin que notre service puisse le détecter.détecter.
Une fois la réceptionréception du ZIP terminé,terminé, celui-ci sera alors décompressédécompressé afin d'êtreêtre traité.traité.
TéléchargerTélécharger l'exemple de ZIP avec les donnéesdonnées au format JSON : TODO
TéléchargerTélécharger l'exemple de ZIP avec les donnéesdonnées au format CSV : TODO
Structure du ZIP attendu
Le ZIP peut contenir les élémentséléments suivants :
- Un fichier de
donnéesdonnées des clients (voirdétails)détails) - Un fichier de
donnéesdonnées des articles (voirdétails)détails) - Un dossier contenant les fiches techniques des articles* (voir
détails)détails) - Un dossier contenant les fiches de
donnéesdonnées desécuritésécurité des articles* (voirdétails)détails) - Un dossier contenant les photos des articles* (voir
détails)détails) - Un dossier contenant les photos des clients** (voir
détails)détails)
* : Le fichier de donnéesdonnées articles doit êtreêtre inclus dans le zip pour que ce dossier soit traitétraité
** : Le fichier de donnéesdonnées clients doit êtreêtre inclus dans le zip pour que ce dossier soit traité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échargerTélécharger l'exemple : TODO
Fichier de donnéesdonnées clients
Nommage
Le service FTP accepte les donnéesdonnées dans les formats suivants :
- JSON
- CSV
Le fichier d'import des donnéesdonnées clients peut êtreêtre nomménommé comme ci-aprèsaprè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éspropriétés d'un client :
| Description | Exemple d'utilisation | |
| Reference | "Reference": "8054" | |
| Designation | Nom du client | "Designation": "Mairie de Perpignan" |
| OffreDePrix | Liste les |
"OffreDePrix":
["00000001", "aaa1"]
|
| Historique | Liste les |
"Historique":
["00000001"]
|
Les propriétéspropriétés reference et designation sont obligatoires afin que le client en question soit traité.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échargerTélécharger l'exemple : exemple_complet_2_clients.json
Format CSV
Le fichier CSV doit contenir une liste de clients.
L'ensemble des entêtesentêtes peuvent êtreêtre définidéfini sous différentdifférent nommage (ex: "ref" ou "référence"référence") et l'ordre n'importe pas.
Chaque entêteentête / valeur doivent êtreêtre séparéséparé par un ";" (point virgule) ou "," (virgule).
Liste des entêtesentêtes du fichier CSV / propriétéspropriétés d'un client :
| Description | |
| Reference | |
| Designation | Nom du client |
| OffreDePrix | Liste les |
| Historique | Liste les |
Les entêtesentêtes reference et designation sont obligatoires afin que le fichier CSV soit traitétraité
Exemple d'entêtesentêtes valides
Reference;Designation;offreDePrix;Historique
désignation;référence;désignation;référence;offre de prix;historique
nom;ref.;offre;histo
titre;réfréf
Voir les règlesrègles REGEX des entêtesentêtes
RéférenceRéférence :
^\s*((cli|client|organn?isation|soci[ée]ée]t[ée]é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]ée]t[ée]ée])?[s]?)\s*$
DésignationDésignation :
^\s*((cli|client|organn?isation|soci[ée]ée]t[ée]é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]ée]t[ée]ée])?[s]?)\s*$
Offre de prix :
^\s*((cli|client|organn?isation|soci[ée]ée]t[ée]é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]ée]t[ée]ée])?[s]?)\s*$
Historique :
^\s*((cli|client|organn?isation|soci[ée]ée]t[ée]ée])?[s]?\s*(histo[.]?|historique)[s]?|(histo[.]?|historique)[s]?\s*(du|de|l[']?)?\s*(cli|client|organn?isation|soci[ée]ée]t[ée]é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échargerTélécharger l'exemple : exemple_complet_2_clients.csv
Fichier de donnéesdonnées articles
Nommage
Le service FTP accepte les donnéesdonnées dans les formats suivants :
- JSON
- CSV
Le fichier d'import des donnéesdonnées articles peut êtreêtre nommé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éspropriétés d'un article:
| Description | Exemple d'utilisation | |
| Reference | "Reference": "00000001" | |
| ReferenceGroupe | "ReferenceGroupe": "00000001A" | |
| Designation | Nom de l'article | "Designation": " |
| Description | Description de l'article | "Description": " |
| Dosage | Dosage |
"Dosage": " |
| Temperature | "Temperature": " |
Les propriétéspropriétés reference et designation sont obligatoires afin que l'article en question soit traité.traité.
Exemple complet avec 2 articles au format JSON
[
{
"Reference": "00000001",
"ReferenceGroupe": "00000001A",
"Designation": "DégraissantDégraissant spray",
"Description": "DégraissantDégraissant en spray de 500ml...",
"Dosage": "PrêtPrêt àà l'emploi",
"Temperature": "TempératureTempérature ambiante"
},
{
"Reference": "aaa1",
"Designation": "DésinfectantDésinfectant 5L",
"Description": "Bidon de 5L de désinfectant.désinfectant...",
"Dosage": "0,2 àà 1 %",
"Temperature": "àà l'eau chaude"
},
]
TéléchargerTélécharger l'exemple : exemple_complet_2_articles.json
Format CSV
Le fichier CSV doit contenir une liste d'articles.
L'ensemble des entêtesentêtes peutpeuvent êtreêtre définidéfini sous différentdifférent nommage (ex: "ref" ou "référence"référence") et l'ordre n'importe pas.
Chaque entêteentête / valeur doitdoivent êtreêtre séparéséparé par un ";" (point virgule) ou "," (virgule).
Liste des entêtesentêtes du fichier CSV / propriétéspropriétés d'un article:
| Description | |
| Reference | |
| ReferenceGroupe | |
| Designation | Nom de l'article |
| Description | Description de l'article |
| Dosage | Dosage |
| Temperature |
Les entêtesentêtes reference et designation sont obligatoires afin que le fichier CSV soit traitétraité
Exemple d'entêtesentêtes valides
Reference;ReferenceGroupe;Designation;Description;Dosage;Temperature
désignation;référence;référencedésignation;référence;référence groupe;dosage;températuretempérature
nom;ref.;dosage;temp
titre;réfréf
Voir les règlesrègles REGEX des entêtesentêtes
RéférenceRé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érenceRé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ésignationDé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ératureTempé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égraissantDégraissant spray;DégraissantDégraissant en spray 500ml...;PrêtPrêt àà l'emploi;TempératureTempérature ambiante
aaa1;DésinfectantDésinfectant 5L;Bidon de 5L de désinfectant.désinfectant...;0,2 àà 1 %;àà l'eau chaude
TéléchargerTé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ésajoutés / modifiésmodifiés dans le fichier de donnéesdonnées article.
Les PDF doivent êtreêtre nommésnommés avec la référenceréférence de l'article concerné.concerné.
Exemple de PDF contenu dans le dossier
- 00000001.pdf
- aaa1.pdf
TéléchargerTélécharger l'exemple : TODO
Le dossier peut êtreêtre définidéfini sous différentsdifférents nommage (ex: "ft" ou "fiches techniques")
Voir la règlerègle REGEX de nom du dossier
^(ft|fiches?(\s*|-)?tech(nique)?)$
Dossier fiches de donnéesdonnées de sécuritésécurité
Ce dossier permet de stocker les fiches de donnéesdonnées de sécuritésécurité au format PDF des articles ajoutésajoutés / modifiésmodifiés dans le fichier de donnéesdonnées article.
Les PDF doivent êtreêtre nommésnommés avec la référenceréférence de l'article concerné.concerné.
Exemple de PDF contenu dans le dossier
- 00000001.pdf
- aaa1.pdf
TéléchargerTélécharger l'exemple : TODO
Le dossier peut êtreêtre définidéfini sous différentsdifférents nommages (ex: "fds" ou "fiches de sécurité"sécurité")
Voir la règlerègle REGEX de nom du dossier
^(fds|fiches?(\s*|-)?(de)?(\s*|-)?s['ée]ée]cu(rit['ée]ée]e?)?)$
Dossier photo
Ce dossier permet de stocker les photos au format JPG des articles ajoutésajoutés / modifiésmodifiés dans le fichier de donnéesdonnées article.
Les photos doivent êtreêtre nomméesnommées avec la référenceréférence de l'article concerné.concerné.
Exemple de photos contenu dans le dossier
- 00000001.jpg
- aaa1.jpg
TéléchargerTélécharger l'exemple : TODO
Le dossier peut êtreêtre définidéfini sous différentsdifférents nommages (ex: "img" ou "photos")
Voir la règlerè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ésajoutés / modifiésmodifiés dans le fichier de donnéesdonnées client.
Les photos doivent êtreêtre nomméesnommées avec la référenceréférence du client concerné.concerné.
Exemple de photos contenu dans le dossier
- 8054.jpg
- 84513.jpg
TéléchargerTélécharger l'exemple : TODO
Le dossier peut êtreêtre définidéfini sous différentsdifférents nommages (ex: "cli" ou "clients")
Voir la règlerègle REGEX de nom du dossier
^cli(ent?s)?$