Créer une nouvelle commande
Transmet une commande à préparer et expédier. Le numéro de commande est obligatoire et unique.
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_ORDERE_NO_ORDER_LINEE_NO_ORDER_NUMBERE_ALREADY_EXISTING_ORDERE_UNKNOWN_ERRORAPI REST / JSON pour connecter vos systèmes à la logistique Futurlog : commandes, produits, stock, réceptions et retours. Vos programmes appellent nos web services pour piloter vos flux en continu.
Les Web Services Futurlog (FuturWeb) permettent d'échanger des informations entre vos systèmes et ceux de Futurlog. Le principe : ce sont vos programmes qui appellent nos services pour transmettre (descente) vos catalogues et commandes, et pour récupérer (remontée) le stock, les statuts et le tracking. L'API est REST et échange du JSON.
Chaque appel s'authentifie directement dans l'URL, via votre code marchand, votre login et votre clé. La structure générale d'une requête est :
https://jws.futurlog.com/{Application}/{Action}/{MerchantCode}/{Login}/{Key}/{Parameter}
| Paramètre | Description |
|---|---|
| MerchantCode | Votre code marchand, 3 caractères alphanumériques. |
| Login | Votre identifiant. En environnement de test, il est suffixé par -test. |
| Key | Votre clé secrète de 64 caractères [a-Z0-9]. Distincte entre test et production. |
-test et une clé différente. Validez vos intégrations en test avant de basculer sur les identifiants de production.Toutes les requêtes envoient l'en-tête Accept: application/json. Une réponse réussie renvoie un code HTTP 200 (un booléen pour les créations, une liste pour les lectures). En cas d'échec, le corps contient un objet Error :
{
"Error": {
"Message": "...",
"Code": "E_UNKNOWN_MERCHANT",
"Data": [ { "Key": "...", "Value": "..." } ]
}
}
Transmet une commande à préparer et expédier. Le numéro de commande est obligatoire et unique.
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_ORDERE_NO_ORDER_LINEE_NO_ORDER_NUMBERE_ALREADY_EXISTING_ORDERE_UNKNOWN_ERRORRécupère les expéditions (statuts, colis, tracking) à partir d'une date. À appeler en fin de journée.
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_UNKNOWN_ERRORListe de référence des états de commande (40 états, codes 1 à 490).
Annonce un retour client attendu en entrepôt (pour contrôle qualité et remise en stock).
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_ORDERE_UNKNOWN_PRODUCT_CODEE_NO_RETURN_LINE_QUANTITYE_UNKNOWN_BRANDE_UNKNOWN_ERRORCreateNewProduct crée l'article (ou le met à jour s'il existe). UpdateProduct le met à jour (ou le crée s'il n'existe pas).
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_PRODUCT_CODEE_UNKNOWN_ERRORE_NO_PRODUCT_CODEE_UNKNOWN_PRODUCT_CODEE_UNKNOWN_MERCHANTE_UNKNOWN_ERRORNiveaux de stock disponibles à la vente. Sans productCode, retourne tous les produits. Recalage quotidien en fin de journée.
Annonce une réception de marchandise à venir en entrepôt.
E_NO_RECEIPTE_ALREADY_EXISTING_RECEIPTE_NO_RECEIPT_LINEE_NO_SCHEDULED_DATEE_NO_SUPPLIER_NAMEE_UNKNOWN_PRODUCT_CODEE_NO_RECEIPT_LINE_QUANTITYPrincipaux objets envoyés / reçus. (O) = obligatoire, string[n] = longueur max n.
{
"OrderNumber": "string[9]", // (O) unique
"BrandCode": "string[3]",
"CurrencyCode": "string[3]",
"CustomerNumber": "string[50]",
"Language": "string[2]",
"Incoterm": "string[3]",
"MerchantCarrierCode": "string[7]",
"ScheduledTransmissionDate": "datetime?",
"Address": {
"LastName": "string[50]", "FirstName": "string[50]",
"Address1": "string[35]", // (O)
"ZipCode": "string[10]", // (O)
"City": "string[50]", // (O)
"CountryCode": "string[2]", // (O)
"MobilePhone": "string[30]", // (O)
"Email": "string[100]",
"PickupPointNumber": "string[10]"
},
"Billing": { "TotalAmount": "decimal?", /* (O) ... */ },
"OrderLines": [ { // (O)
"ProductCode": "string[30]", // (O)
"InternalProductCode": "string[30]",// (O)
"ProductLabel": "string[120]", // (O)
"Quantity": 0, // (O)
"UnitPrice": "decimal?", "VATRate": "decimal?"
} ]
}
{
"Code": "string[30]", // (O)
"Label": "string[120]", // (O)
"BarCode": "string[60]", "BrandCode": "string[3]",
"HsCode": "string[10]", "OriginCountryCode": "string[2]",
"Weight": "decimal?", "Height": "decimal?", "Width": "decimal?", "Length": "decimal?",
"IsActive": true, "IsLotManaged": false,
"AlertThreshold": 0, "PictureUrl": "string[300]",
"ProductsInBundle": [ { "Code": "string[30]", "Quantity": 1 } ]
}
{
"ScheduledDate": "datetime", // (O)
"SupplierName": "string[100]", // (O)
"ReceiptNumber": "string[12]", "CarrierName": "string[100]",
"ReceiptLines": [ { "ProductCode": "string[30]", "Quantity": 0 } ] // (O)
}
{
"Data": [ {
"Code": "string[30]",
"AvailableQuantity": 0,
"ReservedQuantity": 0,
"BatchesStock": [ { "Number": "string[50]", "OnHandQuantity": 0 } ]
} ]
}
ShipmentReturn (commandes, colis, tracking), ReceiptReturn, OrderReturn, CarrierReturn, StateReturn, OrderErrorReturn, ProductErrorReturn.Renvoyés dans l'objet Error.Code. Principaux codes par domaine :
| Domaine | Codes |
|---|---|
| Authentification | E_UNKNOWN_USER_OR_KEY · E_UNKNOWN_MERCHANT |
| Commande | E_NO_ORDER · E_NO_ORDER_LINE · E_NO_ORDER_NUMBER · E_ALREADY_EXISTING_ORDER · E_ORDER_NUMBER_TOO_LONG · E_NO_COUNTRY_CODE · E_UNKNOWN_CARRIER · E_UNKNOWN_BRAND · E_NO_ADDRESS · E_NO_ZIPCODE · E_NO_EMAIL · E_INVALID_EMAIL · E_INVALID_TOTAL_AMOUNT |
| Produit | E_NO_PRODUCT_CODE · E_UNKNOWN_PRODUCT_CODE · E_PRODUCT_CODE_TOO_LONG · E_NO_PRODUCT_LABEL · E_UNKNOWN_HS_CODE · E_ALREADY_EXISTING_BAR_CODE · E_CIRCULAR_SUBSTITUTION |
| Réception | E_NO_RECEIPT · E_ALREADY_EXISTING_RECEIPT · E_NO_RECEIPT_LINE · E_NO_SCHEDULED_DATE · E_NO_SUPPLIER_NAME |
| Général | E_UNKNOWN_ERROR |