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

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, quelques soit 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 :

* : 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 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 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é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 : TODOexemple_complet_2_clients.json


Format CSV

Le fichier CSV doit contenir une liste de clients.

L'ensemble des entêtes peuvent être définies sous différentes nommage (ex: "ref" ou "référence") et l'ordre n'importe pas.

Chaque entêtes / valeur doivent être séparé par un ";" (point 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 : TODOexemple_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 : TODOexemple_complet_2_articles.json


Format CSV

Le fichier CSV doit contenir une liste d'articles.

L'ensemble des entêtes peuvent être définies sous différentes nommage (ex: "ref" ou "référence") et l'ordre n'importe pas.

Chaque entêtes / valeur doivent être séparé par un ";" (point 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 : TODOexemple_complet_2_articles.csv

Dossiers des documents des articles

Dossier fiches technique

Ce dossier permet de stocker les fiches technique 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 sécurité

Ce dossier permet de stocker les fiches de sécurité au format PDF des articles ajoutés / modifiés dans le fichier de données article.

Les PDF doivent être nommé 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: "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 nommage (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 nommage (ex: "cli" ou "clients")

Voir la règle REGEX de nom du dossier
^cli(ent?s)?$