Aller au contenu

La fonction api.get_parcelshops_by_address

Cette fonction permet de récupérer une liste de point relais en fonction d’une adresse. Elle prend 3 arguments en paramètre :

  • username: donné par IMX
  • password: donné par IMX
  • data: dictionnaire de données contenant les données de votre requête

Requête

Liste des champs

Nom Description
Version c(1)Version de l’API Valeur par défaut : "1"
country c(2)Code ISO 2 du pays de l’origine de recherche.Les pays valides dépendent du réseau relais choisi.
cf. options.network
address1 c(60)Adresse1 de l’origine de recheche. La somme du nombre de caractère de addresse1, addresse2, addresse3 ne doit pas etre supérieure à 60.
address2 c(60)Adresse2 de l’origine de recheche.
address3 c(60)Adresse3 de l’origine de recheche.
town c(20)Ville de l’origine de recherche.
postcode c(20)Code postal de l’origine de recherche.
weight n(,0)Poids en kg du colis.
shipping_date c(10)Date de dépôt du colis dans le réseau (JJ/MM/AAAA)
type c(10)mettre valeur « P » par défaut
language c(2)FR par defaut
options Dictionnaire décrivant les différentes options. Contient les champs suivants :
.network c(40)Choix du réseau de relais.
.nb_max n(3,0)Nombre maximal de point relais retourné.25 max.
.distance_max n(3,0)Distance maximale en km des points relais retournés.40 max.d>
.latitude n(3,20)Latitude de l’adresse en Degré décimal.
.longitude n(3,20)Longitude de l’adresse en Degré décimal.

Réponse

Liste des champs

Champs Description
success booleanIndique si la requête s’est correctement déroulée.
response_quality n(1,0)Qualité de la réponse,
0 : Mauvaise qualitérésultat à ignorer.
1 : Qualité moyenne la recherche a été réalisée sur le code postal destinataire.
2 : Qualité excellentela recherche a été réalisée sur l’adresse destinataire.
nb_relais n(3,0)Nombre de point relais trouvé.
errors Liste décrivant les différentes erreurs. Contient les champs suivants :
.field c(40)Nom du champ générant une erreur.Exemples : country, options.networks, postcode, etc.
.message c(400)Description de l’erreur.
.code c(20)Non renseigné.
output Liste décrivant les différentes erreurs. Contient les champs suivants :
.distance n(3,0)Distance en m entre l’origine de la recherche et le point relais, n’est pertinente que si l’adresse est localisée, sinon vaut 0
.options Objet de type dictionnaire qui contient des informations additionnelles relatif au point relais
..homepage c(80)URL du site web du point relais.
..extra_info c(80)Infos additionnelle du point relais
..url_google_maps c(80)URL qui permet de l’ocaliser le point relais sur google maps
.details Objet de type dictionnaire contenu dans la liste output qui contient les informations d’un point relais
..parcelshop_id c(80)ID du point relais.
..name c(80)Nom du point relais.
..longitude n(10,10)Longitude du point relais.
..latitude n(10,10)Latitude du point relais.
..address Objet de type dictionnaire qui contient les données d’adresse du point relais.
...company c(80)Raison sociale du point relais.
...address1 c(80)Adresse 1 du point relais.
...address2 c(80)Adresse 2 du point relais.
...address3 c(80)Adresse 3 du point relais.
...postcode c(20)Code postal du point relais.
...town c(80)Ville du point relais.
...province c(80)Province, état, region du point relais.
...country c(2)Code ISO 2 du pays du point relais.
...email c(80)Email du point relais.
...phone c(80)Numéro de téléphone du point relais.
..holidays Liste des périodes de fermeture du point relais
...start datetimeDate de début de la période de fermeture du point relais.
...end datetimeDate de fin de la période de fermeture du point relais.
..opening_hours Liste des jours et horaires d’ouvertures du point relais
...weekday c(10)Nom d’un jour(mon, tue, wed, thu, fri, sat, sun)
...open_morning c(80)Horaire d’ouverture le matin du point relais.
...close_morning c(80)Horaire de fermeture le matin du point relais.
...open_afternoon c(80)Horaire d’ouverture l’après-midi du point relais
...close_afternoon c(80)Horaire de fermeture l’après-midi du point relais

Exemples

python

En python

Exemple de requête avec le language python et le module jsonrpclib :

data = {
        "address1": "4 Route de Varigney",
        "postcode": "70800",
        "town": "Briaucourt",
        "country": "FR",
        "options" : {
            "networks" : "chronopost",
            "nb_max" : 2,
            "distance_max" : 40,
        }    
}

server = jsonrpclib.Server("https://webservice.imxpostal.fr/smc/rpc/")

resultat = server.api.get_parcelshops_by_address(USERNAME? PASSWORD? data)

pprint.pprint(resultat)

Résultat obtenu :

{
    "success": true,
    "response_quality": 2,
    "nb_relais": 2, 
    "output": [
    {
        "distance": 14492,
        "details": {
            "address": {
                "address1": "1 GRANDE RUE",
                "address2": null, 
                "address3": null, 
                "company": "",
                "country": "FR",
                "email": "",
                "phone": "",
                "postcode": "70220",
                "province": "",
                "town": "FOUGEROLLES"
                },
            "holidays": [
                {
                    "end": "2017-03-04T00:00:00",
                    "start": "2017-02-25T00:00:00"
                }
            ],
            "latitude": "47.88669680",
            "longitude": "6.405361",
            "name": "MAISON DE LA PRESSE",
            "opening_hours": [
                {
                    "close_afternoon": "19:00",
                    "close_morning": "12:15",
                    "open_afternoon": "14:30",
                    "open_morning": "14:30",
                    "weekday": "mon"
                },
                {
                "weekday": "tue",
                "close_afternoon": "19:00",
                "close_morning": "12:15",
                "open_afternoon": "14:30",
                "open_morning": "14:30",
                },                
                // etc.
            ],
            "options": {
                "extra_info": null, 
                "homepage": "", 
                "url_google_maps ": "http://maps.google.fr/maps?q=47.88669680,6.405361"
        },
"parcelshop_id": "0867S"
},
},

{
"distance": 14416,
"details": {
"address": {
"address1": "20 GRANDE RUE", "address2": "RUE PRINCIPALE EN BAS",
"address3": None, "company": "",
"country": "FR",
"email": "",
"phone": "",
"postcode": "70210",
"province": "",
"town": "VAUVILLERS"
},
"holidays": [],
"latitude": "47.9227777778",
"longitude": "6.098055555560", "name": "PROXI SUPER",
"opening_hours": [
{
"close_afternoon": "", "close_morning": "12:00", "open_afternoon": "", "open_morning": "08:30",
"weekday": "sun"
},
{
"close_afternoon": "19:00",
"close_morning": "12:15",
"open_afternoon": "16:00",
"open_morning": "08:30",
"weekday": "sat"
},
{
"close_afternoon": "19:00",
"close_morning": "12:15",
"open_afternoon": "16:00",
"open_morning": "08:30",
"weekday": "fri"
},
{
"close_afternoon": "19:00",
"close_morning": "12:15",
"open_afternoon": "16:00",
"open_morning": "08:30",
"weekday": "th"
},
{
"close_afternoon": "19:00",
"close_morning": "12:15",
"open_afternoon": "16:00",
"open_morning": "08:30",
"weekday": "wed"
},
{

"close_afternoon": "19:00",
"close_morning": "12:15",
"open_afternoon": "16:00",
"open_morning": "08:30",
"weekday": "tue"
},
{
"close_afternoon": "", "close_morning": "19:00", "open_afternoon": "", "open_morning": "14:30",
"weekday": "mon"
}
],
"options": {
"extra_info": None, "homepage": "", "url_google_maps ":
"http://maps.google.fr/maps?q=47.9227777778,6.098055555560"
},
"parcelshop_id": "5668P"
},
}
],
}

La fonction api.get_all_parcelshops

Renvoie la liste de tous les point relais corresponsant au code pays et du network.

3 paramètres sont nėcessaires:

  • username: donné par IMX
  • password: donné par IMX
  • data: jeu de données nécessaire pour utiliser le endpoint

Requête : Description objet data

Fields Description
country c(2)code ISO 2 du pays concernéLa validité d'un code pays dépend du réseau choisi.
options Dictionnaire pour passer des options. Contient le champs ~network~:
.network c(40)Choix du réseau des points relais.

Réponse:

Même structure de réponse que la fonction api.get_parcelshops_by_address précédent.

Exemples:

Exemple 1: Avec le module jsonrpclib de python

# coding:  utf-8
import jsonrpclib

USERNAME = "donné par IMX" 
PASSWORD = "donné par IMX" 

data = {
    "country": "CZ",
    "options" : {
        "network" : "paketa_relais"
    }    
}

server = jsonrpclib.Server("https://webservice.imxpostal.fr/smc/rpc/")

resultat = server.api.get_parcelshops_by_address(USERNAME, PASSWORD, data)

pprint.pprint(resultat)

Exemple 2: Avec le module requests de python

# coding: utf-8
import requests
from pprint import pprint

USERNAME = "username donné par IMX" 
PASSWORD = "password donné par IMX"

data = {
   "id":"XXX",
   "jsonrpc":"2.0",
   "method":"api.get_all_parcelshops",
   "params":[
        USERNAME,
        PASSWORD,
        {
            "country": "CZ",
            "options" : {
                "network" : "paketa_relais"
            }    
        }
    ]
}

url = "https://webservice.imxpostal.fr/smc/rpc/"

try:
    response = requests.post(url, json=data)
except Exception as e:
    raise e
else:
    result = response["output"]
    pprint(result)

La fonction api.get_parcelshop_details

Cette fonction permet de récupérer les informations d’un point relais à partir d’un pays et de l’id du point relais. Cette fonction n’est pas disponible pour le network dpdbe_relais. Elle prend 3 arguments en paramètre : • username: donné par IMX • password: donné par IMX • data: dictionnaire de données contenant les données de votre requête

Cette fonctionne uniquement avec le réseau Hermes, Chronopost et Paketa

Requête

Champs Description
Version c(1) (« 1 ») version de l’API
country c(2) Code ISO 2 du pays du point relais - Obligatoire
parcelshop_id c(80) Identifiant unique du point relais - Obligatoire
language c(2) FR par defaut
options.network c(20) Choix du réseau de relais - Obligatoire

Réponse

Remarque : idem que pour api.get_parcelshops_by_address mais retourne un seul output plutôt qu’une liste.

Champs Description
success booleanIndique si la requête s’est correctement déroulée.
response_quality n(1,0)Qualité de la réponse,
0 : Mauvaise qualitérésultat à ignorer.
1 : Qualité moyenne la recherche a été réalisée sur le code postal destinataire.
2 : Qualité excellentela recherche a été réalisée sur l’adresse destinataire.
nb_relais n(3,0)Nombre de point relais trouvé.
errors Liste décrivant les différentes erreurs. Contient les champs suivants :
.field c(40)Nom du champ générant une erreur.Exemples : country, options.networks, postcode, etc.
.message c(400)Description de l’erreur.
.code c(20)Non renseigné.
output Liste décrivant les différentes erreurs. Contient les champs suivants :
.distance n(3,0)Distance en m entre l’origine de la recherche et le point relais, n’est pertinente que si l’adresse est localisée, sinon vaut 0
.options Objet de type dictionnaire qui contient des informations additionnelles relatif au point relais
..homepage c(80)URL du site web du point relais.
..extra_info c(80)Infos additionnelle du point relais
..url_google_maps c(80)URL qui permet de l’ocaliser le point relais sur google maps
.details Objet de type dictionnaire contenu dans la liste output qui contient les informations d’un point relais
..parcelshop_id c(80)ID du point relais.
..name c(80)Nom du point relais.
..longitude n(10,10)Longitude du point relais.
..latitude n(10,10)Latitude du point relais.
..address Objet de type dictionnaire qui contient les données d’adresse du point relais.
...company c(80)Raison sociale du point relais.
...address1 c(80)Adresse 1 du point relais.
...address2 c(80)Adresse 2 du point relais.
...address3 c(80)Adresse 3 du point relais.
...postcode c(20)Code postal du point relais.
...town c(80)Ville du point relais.
...province c(80)Province, état, region du point relais.
...country c(2)Code ISO 2 du pays du point relais.
...email c(80)Email du point relais.
...phone c(80)Numéro de téléphone du point relais.
..holidays Liste des périodes de fermeture du point relais
...start datetimeDate de début de la période de fermeture du point relais.
...end datetimeDate de fin de la période de fermeture du point relais.
..opening_hours Liste des jours et horaires d’ouvertures du point relais
...weekday c(10)Nom d’un jour(mon, tue, wed, thu, fri, sat, sun)
...open_morning c(80)Horaire d’ouverture le matin du point relais.
...close_morning c(80)Horaire de fermeture le matin du point relais.
...open_afternoon c(80)Horaire d’ouverture l’après-midi du point relais
...close_afternoon c(80)Horaire de fermeture l’après-midi du point relais

Exemples

Python

Exemple de requête avec le language python et le module jsonrpclib :

Résultat obtenu :

{
'success': True 'response_quality': 0,
'nb_relais': 1, 'output': {
'distance': 0 'details': {
'address': {
'address1': '1 GRANDE RUE', 'address2': None, 'address3': None, 'company': '',
'country': 'FR',
'email': '',
'phone': '', 'postcode': '70220', 'province': '',
'town': 'FOUGEROLLES'
},
'holidays': [
{
'end': '2017-03-04T00:00:00', 'start': '2017-02-25T00:00:00'
}
],
'latitude': '47.88669680', 'longitude': '6.405361',
'name': 'MAISON DE LA PRESSE',
'opening_hours': [
{
'close_afternoon': '12:15', 'close_morning': '12:00', 'open_afternoon': '12:00', 'open_morning': '07:00', 'weekday': 'sun'
},

{
'close_afternoon': '17:30', 'close_morning': '12:15', 'open_afternoon': '15:00', 'open_morning': '07:00', 'weekday': 'sat'
},
{
'close_afternoon': '19:00', 'close_morning': '12:15', 'open_afternoon': '14:30', 'open_morning': '06:30', 'weekday': 'fri'
},
{
'close_afternoon': '19:00', 'close_morning': '12:15', 'open_afternoon': '14:30', 'open_morning': '06:30', 'weekday': 'th'
},
{
'close_afternoon': '19:00', 'close_morning': '12:15', 'open_afternoon': '14:30', 'open_morning': '06:30', 'weekday': 'wed'
},
{
'close_afternoon': '19:00', 'close_morning': '12:15', 'open_afternoon': '14:30', 'open_morning': '06:30', 'weekday': 'tue'
},
{
'close_afternoon': '12:15', 'close_morning': '12:00', 'open_afternoon': '12:00', 'open_morning': '06:30', 'weekday': 'mon'
}
],
'options': {
'extra_info': None, 'homepage': '',
'url_google_maps ': 'http://maps.google.fr/maps?q=47.88669680,6.405361'
},
'parcelshop_id': '0867S'
},
},
}

Contact et support

Pour tout support technique quant à l’utilisation et la mise en oeuvre de cette API, merci d’adresser un mail à : ws.dev@imxpostal.fr.