- Appelons notre marchand de test "Julia" et disons que son numéro de compte est "1".
- Veuillez noter qu'elle utilise Postman pour passer tous ses appels API.
- Les résultats ou exemple de requête seront affichés au format JSON si cela est possible,
- Ce sont de purs exemples ils doivent être adaptés à votre compte utilisateur.
Se connecter à l'API Lengow : Get Access Token
La première étape avant d'effectuer un appel ou toute action au sein de l'API Lengow consiste à entrer dans l'API.
- Cet appel se construit comme ici :
Conseil Lengow : avec l'aide de vos développeurs, vous pouvez configurer un script qui effectue cet appel automatiquement toutes les heures.
Remarque : le "token" envoyé par l'API Lengow est valide 3600 secondes et peut être utilisé comme Lengow_AUTH dans Postman.
Vérifier ses actions effectuées sur une commande
Julia a corrigé une de ses actions d'expédition "ship" sur une commande. Elle souhaite vérifier que sa correction est correcte et que l'action qu'elle a envoyée a été correctement traitée par l'API Lengow.
-
GET /orders/actions/
-- endpoint /orders/actions --
-- GET method --
GET /orders/actions/?account_id=1&marketplace_order_id=12-05319-12345
-- API response --
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 13244460,
"marketplace_order_id": "12-05319-123452",
"account_id": 1,
"marketplace": "ebay_fr",
"action_type": "ship",
"processed": true,
"queued": false,
"tracking_number": "2L01286914523",
"tracking_url": null,
"carrier": "FR_ColiposteColissimoRecommended",
"custom_carrier": null,
"line": "193393034918-1749999860009",
"declared_value": null,
"currency_code": null,
"invoice_number": null,
"shipping_method": null,
"shipping_date": null,
"shipping_service_id": null,
"shipping_service_offer_id": null,
"created_at": "2020-07-02T08:03:37.912433Z",
"updated_at": "2020-07-02T08:03:39.262053Z",
"weight": null,
"weight_unit": null,
"comment": null,
"delay": null,
"reason": null,
"charges": null,
"errors": null,
"delivery_date": null,
"delivery_experience": null,
"return_tracking_number": null,
"refund_price": null,
"refund_shipping_price": null,
"refund_mode": null,
"refund_reason": null,
"refund_quantity": null,
"refund_shipping": null,
"refund_shipping_taxes": null,
"refund_taxes": null,
"carrier_name": null,
"carrier_pickup": null,
"package_dimension_length": null,
"package_dimension_width": null,
"package_dimension_height": null,
"package_dimension_unit": null,
"from_address_name": null,
"from_address_line": null,
"from_address_city": null,
"from_address_state_province": null,
"from_address_postal_code": null,
"from_address_country_code": null,
"from_address_mail": null,
"from_address_phone": null,
"pickup_id": null,
"refund_id": null,
"return_carrier": null
},
{
"id": 13244455,
"marketplace_order_id": "12-05319-123452",
"account_id": 1,
"marketplace": "ebay_fr",
"action_type": "ship",
"processed": false,
"queued": false,
"tracking_number": null,
"tracking_url": null,
"carrier": "FR_ColiposteColissimoRecommended",
"custom_carrier": null,
"line": "193393034918-1749999860009",
"declared_value": null,
"currency_code": null,
"invoice_number": null,
"shipping_method": null,
"shipping_date": null,
"shipping_service_id": null,
"shipping_service_offer_id": null,
"created_at": "2020-07-02T08:02:50.609088Z",
"updated_at": "2020-07-02T08:02:50.681358Z",
"weight": null,
"weight_unit": null,
"comment": null,
"delay": null,
"reason": null,
"charges": null,
"errors": "Tracking needs number AND carrier for ship order action",
"delivery_date": null,
"delivery_experience": null,
"return_tracking_number": null,
"refund_price": null,
"refund_shipping_price": null,
"refund_mode": null,
"refund_reason": null,
"refund_quantity": null,
"refund_shipping": null,
"refund_shipping_taxes": null,
"refund_taxes": null,
"carrier_name": null,
"carrier_pickup": null,
"package_dimension_length": null,
"package_dimension_width": null,
"package_dimension_height": null,
"package_dimension_unit": null,
"from_address_name": null,
"from_address_line": null,
"from_address_city": null,
"from_address_state_province": null,
"from_address_postal_code": null,
"from_address_country_code": null,
"from_address_mail": null,
"from_address_phone": null,
"pickup_id": null,
"refund_id": null,
"return_carrier": null
}
]
}
- Réponse de l'API
La réponse de l'API indique que 2 actions ont été effectuées sur cette commande:
"count": 2
Dans les résultats, on peut voir que l'ID de commande apparaît deux fois. Cela signifie que le serveur affiche la même commandes deux fois car deux actions ont été effectuées.
La dernière action est affichée en haut de la réponse.
En bas de la réponse API (la première action de Julia), examinez les paramètres suivants:
- "action_type"
- "processed"
- "queued"
- "error"
1 / La première action "ship" (expédition), envoyée plus tôt par Julia (celle tout en bas de la réponse API), n'est pas valide car on voit dans la réponse de l'API:
"processed": false
"error": "Tracking needs number AND carrier for ship order action"
- Vous pouvez voir que le paramètre "tracking_number" est vide ("null") dans la première action "ship".
- "processed": true
- "queued": false
- "error": null
Trouver les informations de livraison sur une commande
Julia, notre marchand test, a reçu une nouvelle commande pour le canal La Redoute. Elle souhaite trouver les informations de livraison pour pouvoir l'expédier.
C'est à dire, qu'elle cherche à savoir quelles sont les informations qu'elle doit compléter pour correctement envoyer sa commande.
Voici les étapes qu'elle suit dans l'API Lengow :
ETAPE 1
GET /orders/?account_id=1&marketplace_order_id=2020.111.123456789
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"marketplace": "laredoute",
"account_id": 1,
"marketplace_country_iso2": "FR",
"marketplace_order_id": "2020.111.123456789",
"merchant_order_id": [
"1234567"
],
"marketplace_status": "ToShip",
"lengow_status": "waiting_shipment",
"workflow_rank": 5,
"marketplace_order_date": "2020-11-12T15:23:18Z",
"total_order": 74.8,
"total_tax": "0.00",
"shipping": 9.9,
"discount": 0.0,
"commission": null,
"processing_fee": null,
"currency": {
"iso_a3": "EUR",
"symbol": "€",
"name": "Euro"
},
"original_currency": {
"iso_a3": "EUR",
"symbol": "€",
"name": "Euro"
},
"original_total_order": 74.8,
"original_total_tax": "0.00",
"original_shipping": 9.9,
"original_discount": 0.0,
"original_commission": null,
"original_processing_fee": null,
"comments": null,
"invoice_number": null,
"invoice_url": null,
"payments": [],
"packages": [
{
"cart": [
{
"id": 8623271,
"marketplace_order_line_id": "2020.111.123456789-1",
"marketplace_product_id": "4001072020053",
"merchant_product_id": {
"field": "ID_PRODUCT",
"id": "111111"
},
"feed_id": 12345,
"marketplace_package_id": null,
"marketplace_status": "ToShip",
"lengow_status": "waiting_shipment",
"title": "Visionneuse diapositive automatique - Diascop 3",
"category": "Accueil > Accessoires > Visionneuses",
"url_product": null,
"url_image": null,
"order_line_meta": {
"DeliveryMode": "Home",
"DeliveryType": "Regular"
},
"amount": "64.90",
"tax": "0.00",
"discount": null,
"shipping": null,
"original_amount": "64.90",
"original_tax": "0.00",
"original_discount": null,
"original_shipping": null,
"quantity": 1,
"documents": [],
"created_at": null,
"updated_at": null,
"orderline_types": []
}
],
"delivery": {
"id": 151186892,
"type": "delivery",
"first_line": "500 AVENUE TEST",
"zipcode": "69300",
"city": "CALUIRE ET CUIRE",
"vat_number": null,
"company": null,
"civility": "Monsieur",
"first_name": null,
"last_name": null,
"second_line": "",
"complement": "ETAGE 3E",
"phone_home": null,
"phone_office": null,
"phone_mobile": "06700000000",
"full_address": null,
"full_name": "TEST BOB DUPONT",
"email": "*****.fr",
"metas": null,
"state_region": null,
"common_country_iso_a2": "FR",
"trackings": [
{
"number": null,
"method": "Home / Regular",
"carrier": null,
"url": null,
"is_delivered_by_marketplace": null,
"parcel_weight": null,
"shipped_at": null,
"pickup_store": {
"id": null
},
"relay": {
"id": null,
"name": null
},
"marketplace_order_line_ids": [
"2020.111.123456789-1"
]
}
]
}
}
],
"billing_address": {
"id": 151198390,
"type": "billing",
"first_line": "500 AVENUE TEST",
"zipcode": "69300",
"city": "CALUIRE ET CUIRE",
"vat_number": null,
"company": null,
"civility": "Monsieur",
"first_name": null,
"last_name": null,
"second_line": "",
"complement": "ETAGE 3E",
"phone_home": null,
"phone_office": null,
"phone_mobile": "06700000000",
"full_address": null,
"full_name": "TEST BOB DUPONT",
"email": "*****.fr",
"metas": null,
"state_region": null,
"common_country_iso_a2": "FR"
},
"contact_address": null,
"documents": [],
"imported_at": "2020-11-12T16:09:07.256186Z",
"updated_at": "2020-11-12T16:32:15.849000Z",
"order_meta": {
"checksum": "b4aa946ef504ed758359db880c03bd62"
},
"anonymized": false,
"order_types": []
}
]
}
- La commande est bien au statut "waiting_shipment".
- "method": "Home / Regular"
"pickup_store": { "id": null },
GET /marketplaces/?marketplace=laredoute
Dans la réponse que lui retourne l'API Lengow, elle trouve les informations de
- statuts des commandes
- action autorisées sur les commandes et les paramètres obligatoires à renseigner pour effectuer l'action
- transporteurs autorisés par la marketplace dans la balise "carriers"
"actions": {
"ship": {
"args": [
"carrier",
"tracking_number"
],
"carrier": {
"type": "string",
"valid_values": {},
"default_value": "",
"accept_free_values": true
- les informations de "carrier" (transporteur)
- un "tracking_number" (numéro de tracking colis).
Comme il n'y a pas de liste de transporteurs imposés, elle peut utiliser le transporteur de son choix.
Récupération de documents
Julia, notre marchand test, a reçu une nouvelle commande pour le canal Zalando. Elle veut télécharger les documents qu'elle doit joindre au colis : facture, bon de livraison et bon de retour.
Note : Ces documents sont édités par Lengow et peuvent aussi être téléchargés sur la plateforme Lengow, comme expliqué dans notre guide Zalando.
ETAPE 1
Une fois connectée à l'API Lengow, elle interroge sa commande en utilisant le endpoint /orders comme ceci :
GET /orders/?account_id=1&marketplace_order_id=10987654321
Dans la réponse que lui retourne l'API Lengow, elle trouve la section "documents", où sont donnés les IDs de ces documents :
"documents": [
{
"id": 2111112,
"marketplace_doc_id": "DELIVERY_NOTE_123fc456-f789-101b-b12g-a134c1235678",
"url": "http://api.lengow.io/v3.0/document/2111112",
"created_at": "2022-05-14T06:26:19.479581Z",
"doc_type": {
"lengow_type": "DELIVERY",
"marketplace_code": "DELIVERY_NOTE",
"marketplace_label": "Zalando delivery notes"
}
},
{
"id": 2111111,
"marketplace_doc_id": "RETURN_123fc456-f789-101b-b12g-a134c1235678",
"url": "http://api.lengow.io/v3.0/document/2111111",
"created_at": "2022-05-14T06:26:19.478343Z",
"doc_type": {
"lengow_type": "RETURN",
"marketplace_code": "RETURN",
"marketplace_label": "Zalando return form"
}
},
{
"id": 2111110,
"marketplace_doc_id": "BILL_123fc456-f789-101b-b12g-a134c1235678",
"url": "http://api.lengow.io/v3.0/document/2111110",
"created_at": "2022-05-14T06:26:19.475280Z",
"doc_type": {
"lengow_type": "BILL",
"marketplace_code": "BILL",
"marketplace_label": "Zalando invoice"
}
}
]
ETAPE 2
A partir des IDs trouvés (2111110, 2111111 et 2111112 dans cet exemple), Julia télécharge les documents correspondants en utilisant le endpoint /document (un appel par document):
GET /document/2111110?account_id=1
Résultat visible dans Postman: