Envío personalizado

Cuando el vendedor decide brindar una logística propia para sus ventas, debe utilizar la opción Envío personalizado. Para esto, deberá ofrecer diferentes costos de envío para que, cuando el comprador realice la compra, pueda seleccionar la que mejor se adapte a su necesidad y de esa manera, asegurarse que recibirá el pedido en su domicilio.

Siempre que se genere un envío dentro de una orden, este crea un ID que puede ser consultado como cualquier otro, sin importar qué logística haya preferido el vendedor.


Contenidos


Accede a detalles de envío

Si bien puedes encontrar cierta información básica sobre los envíos en la orden, te recomendamos trabajarcon el recurso de envíos para obtener todos los detalles. Para hacerlo, deberás conocer el shipment_id. Conoce más detalles sobre acceder al recurso de manejo de envíos.


Ofrece envío personalizado para tus productos

Para crear un item con el envío personalizado en el POST a /items deberás enviar el modo “custom” junto a los diferentes costos con sus descripciones dentro de la sección de shipping.

curl -X POST -H "Content-Type: application/json" -d
JSON
{
	"title": "Anteojos Ray Ban Wayfare",
	"category_id": "MLA3636",
	"price": 10,
	"currency_id": "ARS",
	"available_quantity": 1,
	"buying_mode": "buy_it_now",
	"listing_type_id": "bronze",
	"condition": "new",
	"description": "Item:,  Ray-Ban WAYFARER Gloss Black RB2140 901  Model: RB2140. Size: 50mm. Name:	WAYFARER. Color: Gloss Black. Includes Ray-Ban Carrying Case and Cleaning Cloth. New in Box",
	"video_id": "YOUTUBE_ID_HERE",
	"warranty": "12 months by Ray Ban",
	"pictures": [
    	{
        	"source": "http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"
    	}
	],
	"shipping": {
    	"mode": "custom",
    	"local_pick_up": false,
    	"free_shipping": false,
    	"methods": [],
    	"costs": [
        	{
            	"description": "TEST1",
            	"cost": "70"
        	},
  	      {
            	"description": "TEST2 ",
            	"cost": "80"
        	}
    	]
	}
}
https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN

Ahora, puedes ver el ítem con envío personalizado y la tabla de costos configurada en shipping options. Ten en cuenta que este recurso solo muestra información cuando el vendedor elige la opción custom.
Llamada:

curl -X GET https://api.mercadolibre.com/items/$ITEM_ID/shipping_options

Ejemplo:

curl -X GET https://api.mercadolibre.com/items/MLA803066380/shipping_options

Respuesta:

{
    "destination": null,
    "options": [
        {
            "id": "MLA803066380-0",
            "option_hash": "d02e7314a07319e7ae3df65c40c59114",
            "name": "TEST2 ",
            "currency_id": "ARS",
            "list_cost": 80,
            "cost": 80,
            "base_cost": null,
            "display": "always",
            "speed": null
        },
        {
            "id": "MLA803066380-1",
            "option_hash": "c83f3c67e7df67b84da2a283a2c64a50",
            "name": "TEST1",
            "currency_id": "ARS",
            "list_cost": 70,
            "cost": 70,
            "base_cost": null,
            "display": "always",
            "speed": null
        }
    ],
    "buyer": {
        "id": null,
        "loyalty_level": null,
        "shipping_level": null
    },
    "custom_message": {
        "reason": "",
        "display_mode": null
    }
}

Nota: para países donde Mercado Envíos se encuentra activo, solo puedes agregar envíos custom gratis en categorías que no acepten Mercado Envíos.

Aclaración: si no se especifica el tipo de envío en la creación del ítem, el mismo será “to_be_agreed”. Si el usuario tiene configurada la opción Mercado Envíos por defecto, todas sus publicaciones se crearán bajo esa modalidad, con excepción de aquellas que tengan una categoría que no la soporte.


Ofrece envío gratis en envíos personalizados

Para ofrecer envío gratis, debes tener en cuenta que solo puedesodrás hacerlo siempre y cuando la categoría no acepte Mercado Envíos. Deberás realizar directamente realizar un PUT con el campo free_shipping en true, sin necesidad de agregar costos y descripciones.
Llamada:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
JSON
{
"shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": true,
        "methods": [],
        "costs": []
    }
}

https://api.mercadolibre.com/items/$ITEM_ID?access_token=$ACCESS_TOKEN


Agrega envío personalizado para tus productos

Para agregar un envío personalizado a un ítem deberás hacer un PUT al recurso /items incluyendo el item_id y envía un JSON similar al consignado a continuación.

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
JSON
{
"shipping": {
	"mode": "custom",
	"methods": [],
	"costs": [
    	{
        	"description": "TEST1",
        	"cost": "70"
    	},
    	{
        	"description": "TEST2 ",
        	"cost": "80"
	    }
	]
}
}

https://api.mercadolibre.com/items/$ITEM_ID?access_token=$ACCESS_TOKEN


Agrega un número de seguimiento

Para incluir el número de seguimiento de un envío, debes conocer el shipment_id y hacer un PUT al recurso shipments con los atributos receiver_id, que es el usuario comprador, y el tracking_number.

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d'
JSON
{
    "tracking_number": 000000012345,
    "receiver_id": 12345678
}'
 https://api.mercadolibre.com/shipments/$SHIPMENT_ID?access_token=$ACCESS_TOKEN


Estados de envío y transiciones

Pending
Es el estado inicial con el cual se crea un envío personalizado. P, y que puede pasar a Shipped, Delivered o Cancelled.


Shipped

Es el estado enviado en el cual se pueden actualizar el Tracking ID y el tiempo de promesa de entrega, en horas.


Delivered

Se refiere al estado de envío entregado y, se puede volver al estado de Pending o Shipped.


Cancelled

Representa el estado de envío cancelado, no se puede pasar a ningún otro estado. El envío se anula.


Entrega de producto (disponible en México, Brasil, Argentina, Colombia y Chile)

Con el siguiente recurso puedes informar a los compradores el status de entrega de sus productos cuando no utilicen Mercado Envíos. Comienza a utilizarlo teniendo en cuenta los siguientes escenarios:


Escenario 1

Ocurre cuando la orden tiene un Custom Shipping creado y está en estado “pending”:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
    "speed": 120,
    "status":"shipped",
    "tracking_number": 000000001234,
    "receiver_id": 12345678
}
https://api.mercadolibre.com/shipments/$SHIPMENT_ID?access_token=$ACCESS_TOKEN

Aclaraciones:

  • El campo speed representa la distancia en horas que va a demorar la entrega del producto.

  • La fecha de promesa de entrega será igual a la cantidad de horas especificadas en el campo speed, contadas a partir del día en que se indique este valor.

  • El campo tracking_number es requerido para la API, pero no será en ningún listado y/o detalle de venta.

  • El campo receiver_id hay que tomarlo desde la información del envío.


Escenario 2

Se da cuando la orden tiene un Custom Shipping creado y está en estado “shipped”:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
    "speed": 120,
    "receiver_id": 12345678
}
https://api.mercadolibre.com/shipments/$SHIPMENT_ID?access_token=$ACCESS_TOKEN

Aclaración: en este caso solo se actualiza la promesa de entrega, por lo que no se requiere un tracking_number de parte de la API.


Escenario 3

En caso que haya que Informar que ya fue entregado:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
    "status":"delivered",
    "receiver_id": 12345678
}

https://api.mercadolibre.com/shipments/$SHIPMENT_ID?access_token=$ACCESS_TOKEN


Escenario 4

Cuando sea necesario cancelar una venta:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
    "status":"cancelled",
    "receiver_id": 12345678
}

https://api.mercadolibre.com/shipments/$SHIPMENT_ID?access_token=$ACCESS_TOKEN

Forma parte de nuestra comunidad