Service FTP : Format de données attendues
Le point FTP contient deux sous-dossier afin de permettre à notre service de traiter les données reçues :
- work : Dossier dans le quel les ZIP réceptionné seront décompressés afin d'être traité
- histo : Dossier contenant l'ensemble des ZIP réceptionné et traité
- 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 les racine du point FTP afin de détecter et traiter tout nouveau ZIP.
Format des données envoyés en FTP
Toutes données envoyés via FTP, quelque soit leur type, doivent être compressées en ZIP au préalable.
Le ZIP n'a pas besoin d'avoir un nommage spécifique, il 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
- Un fichier de données des articles
- Un dossier contenant les fiches technique des articles*
- Un dossier contenant les fiches de sécurité des articles*
- Un dossier contenant les photos des articles*
- Un dossier contenant les photos des clients**
* : 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 client
Nommage
Le service FTP accepte les données dans les formats suivants :
- JSON
- CSV
Le fichier d'import des données clients doit être nommé comme suivant (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é 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 : TODO
Format CSV
Le fichier CSV doit contenir une liste de clients.
Liste des entêtes du fichier CSV / propriété 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é
L'ensemble des entêtes peuvent être définies sous différentes nommage (ex: "ref" ou "référence")
Exemple d'entêtes valides
Designation;Reference;offreDePrix;Historique
désignation;référence;offre de prix;historique
nom;ref.;offre;histo
titre;réf
Voir les règles REGEX des enêtes
Désignation du client :
^\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*$
Référence du client :
^\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*$
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 : TODO
Format du fichier de données article
Le fichier d'import des données articles doit être nommé comme suivant (l'extension du fichier n'est pas prise en compte) :
- art
- article
- articles
- produits
- produits
- product
- products
Exemple de fichier articles:
- art.csv
- articles.json