Skip to main content

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

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
  • /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 propriétésentê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
désignation;référence;offre de prix;historiqueDesignation;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