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_QUANTITYObjets envoyés / reçus, champs exhaustifs. (O) = obligatoire, (O/F) = obligatoire selon vos paramètres FuturLog, string[n] = longueur max n, ? = nullable. Les champs non annotés sont facultatifs.
{
"OrderNumber": "string[9]", // (O) unique
"BrandCode": "string[3]", // (O/F) code enseigne
"CurrencyCode": "string[3]", // devise (EUR, USD, ...)
"CustomerNumber": "string[50]", // n° commande client (B2B)
"Language": "string[2]", // langue enseigne
"Incoterm": "string[3]",
"DateUtc": "datetime?", // date de la commande
"ScheduledTransmissionDate": "datetime?", // transmission logisticien programmée
"MerchantCarrierCode": "string[7]", // transporteur marchand : code
"MerchantCarrierLabel": "string[50]", // transporteur marchand : nom
"ShippingServiceCode": "string[3]", // A2P, CIT, BPR, CDI, ACP, DOM, RDV, MRL...
"PickerComments": "string[500]", // commentaire préparateur
"EshopId": "string", "EshopCustom1": "string", // réf. / info e-shop
"CustomInvoiceBase64": "string", // facture personnalisée (Base64)
"CustomDocumentBase64": "string", // document personnalisé (Base64)
"Address": { // (O) adresse de livraison
"CorporateName": "string[100]",
"LastName": "string[50]", "FirstName": "string[50]",
"Address1": "string[35]", // (O)
"Address2": "string[35]", "Address3": "string[35]",
"ZipCode": "string[10]", // (O)
"City": "string[50]", // (O)
"ProvinceCode": "string[2]", // US / Canada
"CountryCode": "string[2]", // (O)
"MobilePhone": "string[30]", // (O)
"Phone": "string[30]",
"Email": "string[100]",
"PickupPointNumber": "string[10]", // point-relais
"Comments": "string[500]"
},
"Billing": { // facturation
"CorporateName": "string[50]",
"LastName": "string[50]", "FirstName": "string[50]",
"Address1": "string[35]", // (O)
"Address2": "string[35]", "Address3": "string[35]",
"ZipCode": "string[10]", // (O)
"City": "string[50]", // (O)
"ProvinceCode": "string[2]", // US / Canada
"CountryCode": "string[2]", // (O)
"BillNumber": "string[50]", // n° de facture
"TotalAmount": "decimal?", // (O) total commande TTC
"ShipmentPrice": "decimal?", // frais de port TTC
"ShipmentVAT": "decimal?", // (O/F) TVA des frais de port
"Discount": "decimal?", "DiscountHT": "decimal?", "DiscountTTC": "decimal?" // remise (HT/TTC selon paramètres)
},
"Gift": { // cadeau
"Message": "string", // message carte cadeau
"PackageType": "int?" // type de papier cadeau
},
"OrderLines": [ { // (O) lignes de commande
"ProductCode": "string[30]", // (O) réf. produit
"InternalProductCode": "string[30]", // (O) réf. interne
"ProductLabel": "string[120]", // (O)
"ProductBatchNumber": "string[30]", // n° de lot
"Quantity": 0, // (O)
"UnitPrice": "decimal?", "UnitPriceHT": "decimal?", "UnitPriceTTC": "decimal?", // (O/F) prix unitaire (HT/TTC selon paramètres)
"VATRate": "decimal?" // (O/F) taux de TVA
} ]
}
{
"Code": "string[30]", // (O) code produit
"Label": "string[120]", // (O) libellé produit
"BarCode": "string[60]", // code-barres
"BrandCode": "string[3]", // code enseigne
"ExternalCode": "string[60]", // code fournisseur
"HsCode": "string[10]", // nomenclature douanière
"OriginCountryCode": "string[2]", // pays d'origine
"Family": "string[100]", // catégorie de produit
"Model": "string[100]", "Color": "string[50]", "Size": "string[100]",
"Type": "string[100]", // 'p' = physique, 'v' = virtuel
"Weight": "decimal?", // poids en kg
"Height": "decimal?", "Width": "decimal?", "Length": "decimal?", // dimensions en cm
"UnitPriceHT": "decimal?", // dernier prix HT
"TvaRate": "decimal?", // taux de TVA
"WeePrice": "decimal?", // éco-participation
"AlertThreshold": 0, // seuil d'alerte (stock restant)
"IsActive": true, "IsLotManaged": false,
"PictureUrl": "string[300]", // URL de l'image
"EshopId": "string", "EshopCustom1": "string", // réf. / info e-shop
"Parameter1": "string", "Parameter2": "string", // paramètres custom
"ProductsInBundle": [ { "Code": "string[30]", "Quantity": 1 } ] // composants (si produit composé)
}
{
"ScheduledDate": "datetime", // (O) date de réception prévue
"SupplierName": "string[100]", // (O) fournisseur
"ReceiptNumber": "string[12]", // n° de réception
"CarrierName": "string[100]", // transporteur
"DeliveryComments": "string[500]", // commentaire livraison
"ReceiptLines": [ { // (O) lignes de réception
"ProductCode": "string[30]", // (O) réf. produit
"Quantity": 0 // (O) quantité annoncée
} ]
}
{
"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 |