Crear un nuevo pedido
Transmite un pedido para preparar y enviar. El número de pedido es obligatorio y único.
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_ORDERE_NO_ORDER_LINEE_NO_ORDER_NUMBERE_ALREADY_EXISTING_ORDERE_UNKNOWN_ERRORAPI REST / JSON para conectar sus sistemas a la logística Futurlog: pedidos, productos, stock, recepciones y devoluciones. Sus programas llaman a nuestros web services para gestionar sus flujos de forma continua.
Los Web Services Futurlog (FuturWeb) permiten intercambiar información entre sus sistemas y los de Futurlog. El principio: son sus programas los que llaman a nuestros servicios para transmitir (bajada) sus catálogos y pedidos, y para recuperar (subida) el stock, los estados y el seguimiento. La API es REST e intercambia JSON.
Cada llamada se autentica directamente en la URL, mediante su código de comerciante, su login y su clave. La estructura general de una solicitud es:
https://jws.futurlog.com/{Application}/{Action}/{MerchantCode}/{Login}/{Key}/{Parameter}
| Parámetro | Descripción |
|---|---|
| MerchantCode | Su código de comerciante, 3 caracteres alfanuméricos. |
| Login | Su identificador. En entorno de prueba, lleva el sufijo -test. |
| Key | Su clave secreta de 64 caracteres [a-Z0-9]. Distinta entre prueba y producción. |
-test y una clave diferente. Valide sus integraciones en prueba antes de pasar a las credenciales de producción.Todas las solicitudes envían la cabecera Accept: application/json. Una respuesta correcta devuelve un código HTTP 200 (un booleano para las creaciones, una lista para las lecturas). En caso de error, el cuerpo contiene un objeto Error:
{
"Error": {
"Message": "...",
"Code": "E_UNKNOWN_MERCHANT",
"Data": [ { "Key": "...", "Value": "..." } ]
}
}
Transmite un pedido para preparar y enviar. El número de pedido es obligatorio y único.
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_ORDERE_NO_ORDER_LINEE_NO_ORDER_NUMBERE_ALREADY_EXISTING_ORDERE_UNKNOWN_ERRORRecupera los envíos (estados, paquetes, seguimiento) a partir de una fecha. Se recomienda llamar al final del día.
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_UNKNOWN_ERRORLista de referencia de los estados de pedido (40 estados, códigos del 1 al 490).
Anuncia una devolución de cliente prevista en el almacén (para control de calidad y reposición de stock).
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_ORDERE_UNKNOWN_PRODUCT_CODEE_NO_RETURN_LINE_QUANTITYE_UNKNOWN_BRANDE_UNKNOWN_ERRORCreateNewProduct crea el artículo (o lo actualiza si ya existe). UpdateProduct lo actualiza (o lo crea si no existe).
E_UNKNOWN_USER_OR_KEYE_UNKNOWN_MERCHANTE_NO_PRODUCT_CODEE_UNKNOWN_ERRORE_NO_PRODUCT_CODEE_UNKNOWN_PRODUCT_CODEE_UNKNOWN_MERCHANTE_UNKNOWN_ERRORNiveles de stock disponibles para la venta. Sin productCode, devuelve todos los productos. Recálculo diario al final del día.
Anuncia una recepción de mercancía prevista en el almacén.
E_NO_RECEIPTE_ALREADY_EXISTING_RECEIPTE_NO_RECEIPT_LINEE_NO_SCHEDULED_DATEE_NO_SUPPLIER_NAMEE_UNKNOWN_PRODUCT_CODEE_NO_RECEIPT_LINE_QUANTITYObjetos enviados / recibidos, lista exhaustiva de campos. (O) = obligatorio, (O/F) = obligatorio según sus parámetros FuturLog, string[n] = longitud máx. n, ? = nullable. Los campos sin anotación son facultativos.
{
"OrderNumber": "string[9]", // (O) único
"BrandCode": "string[3]", // (O/F) código de la enseña
"CurrencyCode": "string[3]", // divisa (EUR, USD, ...)
"CustomerNumber": "string[50]", // n.º de pedido cliente (B2B)
"Language": "string[2]", // idioma de la enseña
"Incoterm": "string[3]",
"DateUtc": "datetime?", // fecha del pedido
"ScheduledTransmissionDate": "datetime?", // transmisión programada al logístico
"MerchantCarrierCode": "string[7]", // transportista del comerciante: código
"MerchantCarrierLabel": "string[50]", // transportista del comerciante: nombre
"ShippingServiceCode": "string[3]", // A2P, CIT, BPR, CDI, ACP, DOM, RDV, MRL...
"StockType": "string[3]", // tipo de stock (STD, DEF, BLQ), STD por defecto
"PickerComments": "string[500]", // comentario del preparador
"EshopId": "string", "EshopCustom1": "string", // ref. / info e-shop
"CustomInvoiceBase64": "string", // factura personalizada (Base64)
"CustomDocumentBase64": "string", // documento personalizado (Base64)
"Address": { // (O) dirección de entrega
"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]", // EE. UU. / Canadá
"CountryCode": "string[2]", // (O)
"MobilePhone": "string[30]", // (O)
"Phone": "string[30]",
"Email": "string[100]",
"PickupPointNumber": "string[10]", // punto de recogida
"Comments": "string[500]"
},
"Billing": { // facturación
"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]", // EE. UU. / Canadá
"CountryCode": "string[2]", // (O)
"BillNumber": "string[50]", // n.º de factura
"TotalAmount": "decimal?", // (O) total del pedido con IVA
"ShipmentPrice": "decimal?", // gastos de envío con IVA
"ShipmentVAT": "decimal?", // (O/F) IVA de los gastos de envío
"Discount": "decimal?", "DiscountHT": "decimal?", "DiscountTTC": "decimal?" // descuento (sin/con IVA según parámetros)
},
"Gift": { // regalo
"Message": "string", // mensaje de la tarjeta regalo
"PackageType": "int?" // tipo de papel de regalo
},
"OrderLines": [ { // (O) líneas de pedido
"ProductCode": "string[30]", // (O) ref. de producto
"InternalProductCode": "string[30]", // (O) ref. interna
"ProductLabel": "string[120]", // (O)
"ProductBatchNumber": "string[30]", // n.º de lote
"Quantity": 0, // (O)
"UnitPrice": "decimal?", "UnitPriceHT": "decimal?", "UnitPriceTTC": "decimal?", // (O/F) precio unitario (sin/con IVA según parámetros)
"VATRate": "decimal?" // (O/F) tipo de IVA
} ]
}
{
"Code": "string[30]", // (O) código de producto
"Label": "string[120]", // (O) descripción del producto
"BarCode": "string[60]", // código de barras
"BrandCode": "string[3]", // código de la enseña
"ExternalCode": "string[60]", // código de proveedor
"HsCode": "string[10]", // nomenclatura aduanera
"OriginCountryCode": "string[2]", // país de origen
"Family": "string[100]", // categoría de producto
"Model": "string[100]", "Color": "string[50]", "Size": "string[100]",
"Type": "string[100]", // 'p' = físico, 'v' = virtual
"Weight": "decimal?", // peso en kg
"Height": "decimal?", "Width": "decimal?", "Length": "decimal?", // dimensiones en cm
"UnitPriceHT": "decimal?", // último precio sin IVA
"TvaRate": "decimal?", // tipo de IVA
"WeePrice": "decimal?", // eco-participación
"AlertThreshold": 0, // umbral de alerta de stock
"IsActive": true, "IsLotManaged": false,
"PictureUrl": "string[300]", // URL de la imagen
"EshopId": "string", "EshopCustom1": "string", // ref. / info e-shop
"Parameter1": "string", "Parameter2": "string", // parámetros personalizados
"ProductsInBundle": [ { "Code": "string[30]", "Quantity": 1 } ] // componentes (si es un producto compuesto)
}
{
"ScheduledDate": "datetime", // (O) fecha de recepción prevista
"StockType": "string[3]", // tipo de stock objetivo: STD (defecto), DEF (defectuoso), BLQ (bloqueado)
"SupplierName": "string[100]", // (O) proveedor
"ReceiptNumber": "string[12]", // n.º de recepción
"CarrierName": "string[100]", // transportista
"DeliveryComments": "string[500]", // comentario de entrega
"ReceiptLines": [ { // (O) líneas de recepción
"ProductCode": "string[30]", // (O) ref. de producto
"Quantity": 0 // (O) cantidad anunciada
} ]
}
{
"Data": [ {
"Code": "string[30]",
"AvailableQuantity": 0,
"ReservedQuantity": 0,
"BatchesStock": [ { "Number": "string[50]", "OnHandQuantity": 0 } ]
} ]
}
ShipmentReturn (pedidos, paquetes, seguimiento), ReceiptReturn, OrderReturn, CarrierReturn, StateReturn, OrderErrorReturn, ProductErrorReturn.Devueltos en el objeto Error.Code. Principales códigos por dominio:
| Dominio | Códigos |
|---|---|
| Autenticación | E_UNKNOWN_USER_OR_KEY · E_UNKNOWN_MERCHANT |
| Pedido | 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 |
| Producto | 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 |
| Recepción | E_NO_RECEIPT · E_ALREADY_EXISTING_RECEIPT · E_NO_RECEIPT_LINE · E_NO_SCHEDULED_DATE · E_NO_SUPPLIER_NAME |
| General | E_UNKNOWN_ERROR |