Flete dinámico
Contenidos
→Dinámica de integración →Tiempo de respuesta →Contingencia →Contrato de la API →Errores
Dinámica de integración
Para integrar esta funcionalidad debes disponibilizar un endpoint, en el cual Mercado Libre realizará una llamada para obtener la información del flete que se muestra en la plataforma al momento de la compra.
Tiempo de respuesta
El tiempo de respuesta del endpoint no puede superar los 400 ms. Antes de activar el endpoint, habrá varias validaciones, entre ellas, la validación de carga para evaluar el tiempo de respuesta y el resultado será compartido con el integrador. En caso de superar el tiempo límite, la integración no será aprobada y no podrá ser activada para los vendedores.
Contingencia
En los casos de falla en la cotización y que el comprador no quede sin una respuesta, utilizamos como contingencia la calculadora MELI. En esta herramienta interna el vendedor carga sus tarifarios con el apoyo del asesor comercial.
La contingencia se activará en las siguientes situaciones:
- Errores/falta de disponibilidad del integrador.
- Tasa de timeouts muy alta (en caso de superar los 400 ms).
- Cuando se devuelva -1 al error_code no response.
Contrato de la API
Para la creación del endpoint, deben seguirse las reglas del contrato, como se indica a continuación:
- El nombre del endpoint estará a cargo del integrador, y solo bastará respetar el “contrato” estipulado para los request y responses.
- En el request se encuentra apenas un ítem de un vendedor.
- La requisición es hecha a traves de un POST en el ednpoint del integragor, que por su vez debe soportar las versiones del http 1.1 y 2.0.
A continuación, se presenta la descripción de cada uno de los ítems admitidos en el payload:
destination (string): obligatorio. Es la información de la dirección donde el producto va ser entregado.
- Para Brasil, Argentina y México será informado el código postal.
- Para Chile, región/comuna, separado por "/".
- Para Colombia, departamento/ciudad.
- Para Uruguay, departamento/localidad.
buyer_id (string): opcional. Es el identificador del usuario que está comprando en Mercado Libre. Solo está disponible cuando el usuario que realiza la cotización está logueado en la plataforma Mercado Libre.
items (array): obligatorio. Es una lista de ítems que están siendo comprados.
seller_id (string): obligatorio. Es la identificación de la cuenta dentro de Mercado Libre.
item_id (string): obligatorio. Es la identificación del item registrado en Mercado Libre.
store_id (string): opcional. Es la identificación de la tienda oficial dentro de Mercado Libre.
sku (string): obligatorio. Es la identificación del producto al ser comprado.
quantity (int): obligatorio. Es la cantidad que será comprada de un mismo item.
origin (string): opcional. Es el Código Postal registrado por el vendedor.
price (float): opcional. Es el precio unitario del producto multiplicado por la cantidad de ítems elegidos por el comprador, al momento de la cotización.
dimensions (object): obligatorio. Es la lista de medidas de un producto.
- length (float): obligatorio en el caso de que existan dimensions. Es el largo del producto (en centímetros).
- width (float): obligatorio en el caso de que existan dimensions. Es el ancho del producto (en centímetros).
- height (float): obligatorio en el caso de que existan dimensions. Es el alto del producto (en centímetros).
- weight (float): obligatorio en el caso de que existan dimensions. Es el peso del producto (en kilogramos).
Ejemplo:
{
"destination":"13295000",
"items":[
{
"seller_id":"89540000",
"item_id":"MLB1246956299",
"sku":"0001166000",
"quantity":1,
"origin":"02611-000",
"price":316,
"dimensions":{
"length":1,
"height":1,
"width":1,
"weight":1
}
}
]
}
Respuesta: El response debe tener la cotización correspondiente al ítem comprado.
A continuación, se presenta la descripción de cada uno de los ítems admitidos en el payload:
packages (array): Es la lista de paquetes creada por el vendedor.
items (array): Es la lista de ítems dentro de un mismo paquete.
sku (string): Es la identificación del item que será comprado.
seller_id (string): Es la identificación de la cuenta que está vendiendo el producto. Generalmente, es una copia de la información ya dada en el request.
store_id (string): opcional. Es la identificación del negocio que está vendiendo el producto. Generalmente, es una copia de la información ya dada en el request.
quantity (int): Es la cantidad del producto que se enviará
stock (int): Es la disponibilidad del producto en stock por CD. En el caso de que esa información no esté disponible, debe devolverse el valor -1.
error_code (int): Es el código que identificará el tipo de error relacionado con el producto. La lista de los códigos admitidos será presentada en las siguientes secciones.
quotations (array): Son las informaciones del flete para un ítem.
cost (float): Es el costo real del flete. En el caso de no disponer de esa información, debe devolverse el mismo valor de price.
price (float): Es el precio del flete que será presentado al comprador. Esta información difiere de cost, ya que existe la posibilidad de que el flete sea subvencionado parcial o totalmente (flete gratis).
handling_time (int): Es el tiempo, en días hábiles, que se utilizará para separar y embalar el producto. Abarca todos los procesos previos al envío efectivo del paquete. En el caso de que esa información no esté disponible, debe devolverse el valor 0.
shipping_time (int): Es el tiempo, en días hábiles, de tránsito del paquete (desde la entrada al camión hasta la entrega al comprador).
promise (int): Es la suma de los valores de handling_time y shipping_time.
caption (string): Es el nombre asignado a la cotización. La opción esperada es Normal.
service_id (int) : Es el código que identifica un servicio/carrier dentro del contexto del vendedor. Los valores válidos van de 0 a 99. Este código es único e de responsabilidad exclusivo del vendedor/integrador, siendo responsabilidad de Mercado Libre solo pasar este valor.
Ejemplo:
{
"packages": [
{
"items": [
{
"sku": "00266983118",
"seller_id": "207740981",
"quantity": 1,
"stock": -1,
"error_code": 0,
"store_id": null
}
],
"quotations": [
{
"cost": 66.6,
"price": 66.6,
"handling_time": 0,
"shipping_time": 39,
"promise": 39,
"caption": "Normal",
"service_id": 10
}
]
}
]
}
Errores
A continuación, se presenta la lista de los códigos de errores válidos.
Parámetro | Descripción |
---|---|
-1 | Error inesperado (utilizar solo en casos muy específicos). |
0 | Sin error. |
2 | CP de destino inválido. |
3 | Producto no disponible para el Código Postal de destino. |
4 | El producto escogido no existe. |