0% ont trouvé ce document utile (0 vote)
37 vues19 pages

Documentation API REST SIFAM v2

Ce document décrit l'API REST de SIFAM qui permet d'accéder aux informations sur les articles, véhicules, commandes et stocks. L'API supporte différents formats comme JSON, XML et CSV et les données sont mises à jour régulièrement.

Transféré par

kyo007
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues19 pages

Documentation API REST SIFAM v2

Ce document décrit l'API REST de SIFAM qui permet d'accéder aux informations sur les articles, véhicules, commandes et stocks. L'API supporte différents formats comme JSON, XML et CSV et les données sont mises à jour régulièrement.

Transféré par

kyo007
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

API REST SIFAM v2

SIFAM
06/09/2017
API REST SIFAM v2 1

Présentation

Ce document décrit les principales fonctionnalités de l’api REST mise à disposition des clients
SIFAM ayant souscrit au Contrat Ressources.

L’accès à l’api se fait grâce à une clé d’authentification unique à chaque client qui doit être
inclue dans chaque appel. Ce paramètre se nomme api_key.

L’url de base de l’api est : [Link]

La documentation en ligne est visible sur l’url suivante : [Link]

L’api peut être utilisée avec plusieurs types de contenus c'est-à-dire qu’elle permet de récupérer
les données mais aussi d’interpréter les données à traiter de plusieurs formats.

Les types de contenus supportés sont :

- XML

- JSON

- CSV (attention certaines limitations peuvent s’appliquer car le csv a une structure plate
contrairement aux autres formats)

Pour plus de facilités nous utiliserons le JSON dans ce document. Pour changer le format à
utiliser, il suffit de remplacer les occurrences de json par le format choisi (xml ou csv).

La fréquence de mise à jour des données retournées par l’api dépend du type de données :

- Le stock et les prix sont mis à jour toutes les heures


- Les photos sont mises à jour toutes les nuits
- Les informations sur les articles et les véhicules sont mises à jour toutes les nuits

06/09/2017
API REST SIFAM v2 2

Table des matières


Présentation .............................................................. 1

Table des matières ..................................................... 2

1. Les Articles ............................................................. 3

A. Récupération de la liste des familles de produits . 3

B. Récupération du catalogue de produits ................ 4

C. Récupération du stock et des prix ......................... 6

D. Récupération du stock et des prix pour 1 article .. 7

E. Récupération des images pour 1 article ................ 8

2. Les Véhicules.......................................................... 9

A.Réupération des applications motos ...................... 9

3. L’envoi des commandes ....................................... 10

A. Envoi d'une commande en dropshipping ............ 10

B. Envoi d'une commande en livraison magasin ..... 13

4. Le suivi des commandes ....................................... 15

A. Suivi de toutes les commandes ........................... 15

B. Suivi d’une commande ........................................ 16

C. Etapes de traitement des commandes ................ 17

5. Contacts............................................................... 17

06/09/2017
API REST SIFAM v2 3

1. Les Articles

A. Récupération de la liste des familles de produits


La récupération de l’ensemble du catalogue avec tarifs et images étant très longue il est
recommandé de procéder par famille de produits afin d’éviter les délais dépassés lors des
requêtes. Pour cela nous vous fournissons la liste des codes famille disponibles.

URI Méthode Description


/api/[Link] GET Récupération de la liste complète des familles de
produits

Paramètres Type Notes


langue Entier 1: Anglais
2: Français
3: Italien
7 : Portuguais
api_key Alphanumérique Clé API

Exemple d’appel pour la récupération du stock et des prix


$ curl “[Link]

Liste des champs retournés :


Champs Type Description
codeFamille Alphanumérique Code Famille
famille Alphanumérique Désignation famille de produits
api_key Alphanumérique Clé API

Codes de retour :
Code HTTP Description
200 OK, des résultats sont renvoyés
204 Aucun résultat
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 4

B. Récupération du catalogue de produits


URI Methode Description
/articles/{codeFamille}.json GET Récupération du catalogue complet

Paramètres Type Notes


codeFamille Alphanumérique Voir fonction /api/familles pour la liste des familles possibles
images Booléen 0 : Le champ images n’est pas retourné
1 : Le champ images et retourné avec l’ensemble des url
langue Entier 1: Anglais
2: Français
3: Italien
7 : Portuguais
dropshipping Entier 0 : Produits non disponibles en dropshipping
1 : Produits disponibles uniquement en dropshipping
2 : Tous les produits
debut Entier Indique la position du premier enregistrement à renvoyer
-1 indique que tous les éléments doivent être renvoyés
nombre Entier Indique le nombre d’éléments à renvoyer quand le paramètre
début est supérieur à -1

Exemple d’appel pour récupérer l’ensemble du catalogue :


$ curl “[Link]
1&langue=2&dropshipping=1&api_key=XXX”

Liste des champs retournés :


Champs Type Description
reference Chaine Référence de l’article
marque Chaine Marque du produit
designation Chaine Nom du produit
prix_public Décimal Prix public ht conseillé par SIFAM
prix_achat Décimal Prix d’achat ht calculé en fonction des conditions
commerciales du client pour une quantité acheté de 1 produit
stock Chaine Stock disponible
poids Décimal Poids de l’article
c0* Chaine Caractéristique 1
c1* Chaine Caractéristique 2
c2* Chaine Caractéristique 3
c3* Chaine Caractéristique 4
c4* Chaine Caractéristique 5
c5* Chaine Caractéristique 6
c6* Chaine Caractéristique 7
c7* Chaine Caractéristique 8
c8* Chaine Caractéristique 9
c9* Chaine Caractéristique 10
ean Chaine Code EAN 13 du produit

06/09/2017
API REST SIFAM v2 5

famart Chaine Code famille article


sfaart Chaine Code sous famille article
ssfart Chaine Code sous sous famille article
qualite Chaine Code qualité article
designation_famille Chaine Désignation famille article
designation_sfamille Chaine Désignation sous famille article
designation_ssfamille Chaine Désignation sous sous famille article
designation_qualite Chaine Désignation qualité article
description Chaine Description du produit quand disponible
type_article Entier Type de produit
1 : Produit Normal
2 : Pack de Produits (plusieurs produits rassemblés)
3 : Produit Configurable (kit chaine ou kit embrayage)
images Tableau Si le paramètre images est inclus dans l’url avec une valeur de
1, une liste d’URL est renvoyée.
Dans le cas du csv c’est une liste d’URL séparées par des
points-virgules, sinon c’est un tableau de chaines.
* Les champs de caractéristiques varient en fonction du produit

Codes de retour :
Code HTTP Description
200 OK, des résultats sont renvoyés
204 Aucun résultat
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 6

C. Récupération du stock et des prix


URI Méthode Description
/api/[Link] GET Récupération complète des informations de stock

Paramètres Type Notes


dropshipping Entier 0 : Produits non disponibles en dropshipping
1 : Produits disponibles uniquement en dropshipping
2 : Tous les produits
tarifs Booléen 0 : Ne renvoie pas les prix d’achat
1 : Renvoi les prix d’achat
api_key Alphanumérique Clé API

Exemple d’appel pour la récupération du stock et des prix


$ curl
“[Link]
X”

Liste des champs retournés :


Champs Type Description
REFART Alphanumérique Référence article
QUANTITE Entier Quantité en stock
RCPDAT Date Date de la prochaine entrée en stock prévue
DELAY Entier Délai de livraison minimum en jour
PRIX_ACHAT Décimal Prix d’achat HT calculé en fonction des conditions
commerciales du client pour une quantité acheté de 1
produit
PRIX_PUBLIC Décimal Prix public HT conseillé par SIFAM si le paramètre tarifs est à
1

Codes de retour :
Code HTTP Description
200 OK, des résultats sont renvoyés
204 Aucun résultat
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 7

D. Récupération du stock et des prix pour 1 article


URI Méthode Description
/api/stock/{refart}.json GET Récupération complète des informations de stock

Paramètres Type Notes


refart Alphanumérique Référence du produit souhaité
Si la référence comporte un « / » celui-ci doit être remplacé
par un « ~ »
api_key Alphanumérique Clé API

Exemple d’appel pour la récupération du stock et des prix


$ curl “[Link]

Liste des champs retournés :


Champs Type Description
REFART Alphanumérique Référence article
QUANTITE Entier Quantité en stock
RCPDAT Date Date de la prochaine entrée en stock prévue
DELAY Entier Délai de livraison minimum en jours
PRIX_ACHAT Décimal Prix d’achat HT calculé en fonction des conditions
commerciales du client pour une quantité acheté de 1
produit
PRIX_PUBLIC Décimal Prix public HT conseillé par SIFAM

Codes de retour :
Code HTTP Description
200 OK, des résultats sont renvoyés
204 Aucun résultat
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 8

E. Récupération des images pour 1 article


URI Méthode Description
/api/photos/{refart}.json GET Récupération des URL des photos d’un produit

Paramètres Type Notes


dropshipping Entier Référence du produit souhaité
Si la référence comporte un « / » celui-ci doit être remplacé
par un « ~ »
generique Booléen 0 : Ne renvoie pas les photos génériques
1 : Renvoi une photo générique si la photo du produit n’est
pas disponible
api_key Alphanumérique Clé API

Exemple d’appel pour la récupération des images pour 1 article


$ curl “[Link]

Liste des champs retournés :


Champs Type Description
Tableau Dans le cas du csv c’est une liste d’URL séparées par des points-
virgules, sinon c’est un tableau de chaines.

Codes de retour :
Code HTTP Description
200 OK, des résultats sont renvoyés
204 Aucun résultat
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 9

2. Les véhicules

A. Récupération des applications moto


URI Méthode Description
/api/applicationsmoto/{codefamille}.json GET La récupération se fait par famille de
produits.
Attention, les familles n’ont pas toutes
des applications.

Paramètres Type Notes


codeFamille Alphanumérique Voir fonction /api/familles pour la liste des familles possibles
langue Entier 1: Anglais
2: Français
3: Italien
7 : Portuguais
api_key Alphanumérique Clé API

Exemple d’appel pour la récupération des applications moto


$ curl
“[Link]

Liste des champs retournés :


Champs Type Description
REFERENCE Alphanumérique Référence article
TYPE Alphanumérique Type de véhicule
MARQUE Alphanumérique Marque du véhicule
CYLINDREE Entier Cylindrée du véhicule
MODELE Alphanumérique Modèle du véhicule
ANNEE_DEBUT Entier Année de début du modèle
ANNEE_FIN Entier Année de fin du modèle
AVANT_GAUCHE Booléen Position de montage avant gauche
AVANT Booléen Position de montage avant
AVANT_DROIT Booléen Position de montage avant droit
ARRIERE_GAUCHE Booléen Position de montage arrière gauche
ARRIERE Booléen Position de montage arrière
PORTE_COURONNE Booléen Position de montage porte couronne
ARRIERE_DROIT Booléen Position de montage arrière droit
GAUCHE Booléen Position de montage gauche
DROITE Booléen Position de montage droite
INTERIEUR Booléen Position de montage intérieur
EXTERIEUR Booléen Position de montage extérieur
DIVERS Booléen Position de montage autre

06/09/2017
API REST SIFAM v2 10

Codes de retour :
Code HTTP Description
201 OK, des résultats sont renvoyés
204 Aucun résultat
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 11

3. L’envoi de commandes

A. Envoi d’une commande en Drop Shipping


URI Méthode Description
/api/[Link] POST Envoi une commande pour livraison en dropshipping

Paramètres Type Notes


api_key Alphanumérique Clé API

Contenu de la commande
Champs Type Taille Description
CodeClient Alphanumérique 7 Code du client dans votre système
informatique
DateCmd Alphanumérique 8 Date d'envoi de la commande
[Année][Mois][Jour]
HeureCmd Alphanumérique 4 Heure d'envoi de la commande
[Heure][Minutes]
ReferenceCommande Alphanumérique 10 Votre référence de commande unique
permettant de faire le suivi via l'api
ChronoRelais Numérique 1 1 : pour une livraison directe chez le client
2 : pour livraison Chrono Relais (attention
dans ce cas il faut préciser le nom du relais
dans le champ NomLivraison)
NomClient Alphanumérique 30 Nom du client livré
NomLivraison Alphanumérique 30 Nom du client livré ou Nom du Relais
Chronopost si relais choisi
Adresse1 Alphanumérique 40 Champ d'adresse n°1
Adresse2 Alphanumérique 40 Champ d'adresse n°2
Adresse3 Alphanumérique 40 Ne pas utiliser merci
CodePostal Alphanumérique 10 Code postal de livraison
Ville Alphanumérique 40 Ville de livraison
CodePays Alphanumérique 3 FR : France IT : Italie
MC : Monaco
Telephone Alphanumérique 20 Numéro de téléphone du client pour la
livraison et l'envoi de sms d'alerte par le
transporteur
Email Alphanumérique 80 Adresse email du client pour mail d'alerte
transporteur
Express Entier 11 1 : pour Colissimo 5 : Bartolini
2 : pour Chronopost
Prefix Alphanumérique 3 Code à 3 lettres fourni par Sifam
Articles Tableau Tableau d’articles (voir détail ci-dessous)

06/09/2017
API REST SIFAM v2 12

Tableau d’articles
Champs Type Taille Description
ReferenceArticle Alphanumérique 20 Référence SIFAM de l’article
Quantite Entier 11 Quantité Commandée

Exemple d’envoi de commande en drop shipping

Soit un fichier [Link] dont le contenu est le suivant :


{
"CodeClient":"2",
"DateCmd":"20151009",
"HeureCmd":"1050",
"ReferenceCommande":"REFERENCE_DE_COMMANDE_UNIQUE",
"ChronoRelais":1,
"NomClient":"MONSIEUR DUPONT",
"NomLivraison":"MONSIEUR DUPONT",
"Adresse1":"Nom de la rue",
"Adresse2":"",
"Adresse3":"",
"CodePostal":"06000",
"Ville":"NOM DE LA VILLE",
"CodePays":"FR",
"Telephone":"0600000000",
"Email":"contact@[Link]",
"Express":2,
"Prefix":"XXX",
"Articles":[
{
"ReferenceArticle":"612090",
"Quantite":"1"
},
{
"ReferenceArticle":"712090",
"Quantite":"1"
}
]
}

06/09/2017
API REST SIFAM v2 13

Exemple de code PHP permettant l’envoi de la commande :


<?php
$fileHandle = fopen("[Link]", "rb");
$data_string = stream_get_contents($fileHandle);
fclose($fileHandle);
$ctx =
curl_init('[Link]
curl_setopt($ctx, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ctx, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ctx, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ctx, CURLOPT_VERBOSE, true);
curl_setopt($ctx, CURLOPT_HEADER, true);

curl_setopt($ctx, CURLOPT_HTTPHEADER, array(


'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$response = curl_exec($ctx);
$httpcode = curl_getinfo($ctx, CURLINFO_HTTP_CODE);
curl_close($ctx);

echo $httpcode;
?>

Codes de retour :
Code HTTP Description
201 La commande a été crée
400 La syntaxe de la requête est erronée
403 Accès non autorisé
409 La commande existe déjà
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 14

B. Envoi d’une commande directement en magasin


URI Méthode Description
/api/[Link] POST Envoi une commande pour livraison au magasin

Paramètres Type Notes


api_key Alphanumérique Clé API

Contenu de la commande :
Champs Type Taille Description
ReferenceCommande Alphanumérique 10 Référence de commande unique permettant
de faire le suivi via l’api
Articles Tableau Tableau d’articles (voir détail ci-dessous)

Tableau d’articles
Champs Type Taille Description
ReferenceArticle Alphanumérique 20 Référence SIFAM de l’article
Quantite Entier 11 Quantité Commandée

Exemple d’envoi de commande en livraison directe au magasin

Soit un fichier [Link] dont le contenu est le suivant :


{
"ReferenceCommande":"REFERENCE_DE_COMMANDE_UNIQUE",
"Articles":[
{
"ReferenceArticle":"612090",
"Quantite":"1"
},
{
"ReferenceArticle":"712090",
"Quantite":"1"
}
]
}

06/09/2017
API REST SIFAM v2 15

Exemple de code PHP permettant l’envoi de la commande :


<?php
$fileHandle = fopen("[Link]", "rb");
$data_string = stream_get_contents($fileHandle);
fclose($fileHandle);
$ctx =
curl_init('[Link]
curl_setopt($ctx, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ctx, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ctx, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ctx, CURLOPT_VERBOSE, true);
curl_setopt($ctx, CURLOPT_HEADER, true);
curl_setopt($ctx, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$response = curl_exec($ctx);
$httpcode = curl_getinfo($ctx, CURLINFO_HTTP_CODE);
curl_close($ctx);
echo $httpcode;
?>

Codes de retour :
Code HTTP Description
201 La commande a été crée
400 La syntaxe de la requête est erronée
403 Accès non autorisé
409 La commande existe déjà
503 Connexion impossible au serveur de base de données

06/09/2017
API REST SIFAM v2 16

4. Le suivi des commandes

A. Suivi de toutes les commandes


URI Méthode Description
/api/[Link] GET Liste l’état de l'ensemble des commandes

Paramètres Type Notes


api_key Alphanumérique Clé API

Exemple d’appel pour le suivi de l’ensemble des commandes


$ curl “[Link]

Liste des champs retournés :


Champs Type Description
REFCMD Alphanumérique Référence de Commande du Client
NOCMD Alphanumérique Référence de Commande SIFAM
DATECMD Date Date de la Commande
BONLIV Alphanumérique Référence du Bon de Livraison SIFAM
NOM Alphanumérique Nom du client livré
ADDR1 Alphanumérique Adresse de Livraison 1
ADDR2 Alphanumérique Adresse de Livraison 2
ADDR3 Alphanumérique Adresse de Livraison 3
CP Alphanumérique Code Postal de Livraison
VILLE Alphanumérique Ville de Livraison
CODEPAYS Alphanumérique Code du Pays de Livraison
PAYS Alphanumérique Pays de Livraison
BONTRANSPORT Alphanumérique Référence du Bon de Transport SIFAM
POIDS Décimal Poids de l’expédition Colis
TRANSPORTEUR Alphanumérique Nom du Transporteur
TRACKING Alphanumérique Numéro de Suivi
URL Alphanumérique URL de Suivi

06/09/2017
API REST SIFAM v2 17

B. Suivi d’une commande


URI Méthode Description
/api/commande/{refcmd}.json GET Récupère l’état d’une commande spécifique

Paramètres Type Notes


api_key Alphanumérique Clé API

Exemple d’appel pour le suivi d’une commande


$ curl “[Link]

Liste des champs retournés :


Champs Type Description
REFCMD Alphanumérique Référence de Commande du Client
NOCMD Alphanumérique Référence de Commande SIFAM
DATECMD Date Date de la Commande
BONLIV Alphanumérique Référence du Bon de Livraison SIFAM
NOM Alphanumérique Nom du client livré
ADDR1 Alphanumérique Adresse de Livraison 1
ADDR2 Alphanumérique Adresse de Livraison 2
ADDR3 Alphanumérique Adresse de Livraison 3
CP Alphanumérique Code Postal de Livraison
VILLE Alphanumérique Ville de Livraison
CODEPAYS Alphanumérique Code du Pays de Livraison
PAYS Alphanumérique Pays de Livraison
BONTRANSPORT Alphanumérique Référence du Bon de Transport SIFAM
POIDS Décimal Poids de l’expédition Colis
TRANSPORTEUR Alphanumérique Nom du Transporteur
TRACKING Alphanumérique Numéro de Suivi
URL Alphanumérique URL de Suivi

06/09/2017
API REST SIFAM v2 18

C. Les étapes de traitement des commandes sont les suivantes :


Une commande qui n’est pas présente dans le flux après 10 minutes (entre 8h et 19h), n’a pas
été intégrée dans notre système, il est donc nécessaire de nous contacter pour identifier
l’origine du problème.

1. Réception de la commande
Les champs REFCMD, NOCMD et DATECMD sont remplis.

2. La commande est en cours de préparation


Les champs BONLIV, NOM, ADDR1, ADDR2, ADDR3, CP, VILLE, CODEPAYS, PAYS sont
remplis en plus des champs précédents.

3. La commande est prête à être expédiée


Les champs BONTRANSPORT, POIDS et TRANSPORTEUR sont remplis en plus de tous les
champs précédents.

4. La commande est expédiée


Les champs TRACKING et URL sont remplis en plus de tous les champs précédents.

5. Contacts

Pour plus d’informations, vous pouvez nous contacter par :

Email : service-informatique@[Link]

Téléphone : 04 97 000 444

06/09/2017

Vous aimerez peut-être aussi