Skip to main content

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 seront décompressésdécompressés afin d'êtreêtre traitéstraités
  • histo : Dossier contenant l'ensemble des ZIP réceptionnésréceptionnés et traitéstraités
    • format des ZIP : {yyyy-MM-dd} {HH}h{mm}m{ss}s.zip
      • Exemple : 2022-09-26 16h56m03s.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 :

* : 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

  • /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 :

PropriétéPropriété Description Exemple d'utilisation
Reference RéférenceRéférence du client "Reference": "8054"
Designation Nom du client "Designation": "Mairie de Perpignan"
OffreDePrix Liste les référencesréférences des produits dans l'offre de prix du client "OffreDePrix": 
["00000001", "aaa1"]
Historique Liste les référencesréférences des produits dans l'historique du client "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 :

EntêteEntête Description
Reference RéférenceRéférence du client
Designation Nom du client
OffreDePrix Liste les référencesréférences des produits dans l'offre de prix du client
Historique Liste les référencesréférences des produits dans l'historique du client

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:

PropriétéPropriété Description Exemple d'utilisation
Reference RéférenceRéférence de l'article "Reference": "00000001"
ReferenceGroupe RéférenceRéférence groupe de l'article "ReferenceGroupe": "00000001A"
Designation Nom de l'article "Designation": "DégraissantDégraissant spray"
Description Description de l'article "Description": "DégraissantDégraissant en spray de 500ml..."
Dosage Dosage recommandéerecommandée  de l'article "Dosage": "PrêtPrêt àà l'emploi"
Temperature TempératureTempérature recommandéerecommandée  de l'article "Temperature": "TempératureTempérature ambiante"

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:

EntêteEntête Description
Reference RéférenceRéférence de l'article
ReferenceGroupe RéférenceRéférence groupe de l'article
Designation Nom de l'article
Description Description de l'article
Dosage Dosage recommandéerecommandée  de l'article
Temperature TempératureTempérature recommandéerecommandée de l'article

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)?$