Envío personalizado

Cuando un comprador elige preferencias de envío e ingresa su domicilio se crea un shipment que se asocia a la orden.
Cuando se crea el envío, se recibirá un nuevo feed de order luego, se informará cada cambio de estado hasta que el paquete sea entregado.

Contenidos:

Accede a detalles de envío

Si bien puedes encontrar cierta información básica sobre los envíos en la orden, es mejor que trabajes con el recurso de envíos para obtener todos los detalles. Para hacerlo, deberás conocer el shipment_id.

No conozco el shipment_id

Puedes tomarlo de la orden dentro de la información de envío básica.

Ejemplo:

curl -X GET https://api.mercadolibre.com/orders/:order_id?access_token=

Respuesta:

{
  "id": 123456789,
  "status": "paid",
  "status_detail": null,
  "date_created": "2012-12-18T09:35:07.000-04:00",
  "date_closed": "2012-12-18T09:35:07.000-04:00",
  "order_items":  [
 	{
  	"item":  {
    	"id": "MLB446311775",
    	"title": "Capa Couro Flip Original Samsung Galaxy S3 Siii  Branca",
    	"variation_id": null,
    	"variation_attributes": [
    	],
  	},
  	"quantity": 1,
  	"unit_price": 99.98,
  	"currency_id": "BRL",
	},
  ],
  "total_amount": 99.98,
  "currency_id": "BRL",
  "buyer":  {
	"id": "123456565",
	"nickname": "BUYER NICKNAME",
	"email": "email@buyer.com",
	"phone":  {
  	"area_code": "11",
  	"number": "55565656",
  	"extension": null,
	},
	"first_name": "Name",
	"last_name": "Last Name",
	"billing_info": - {
  	"doc_type": "CPF",
  	"doc_number": "123456789",
	},
  },
  "seller":  {
	"id": "123456",
	"nickname": "SELLER NICKNAME",
	"email": "email@seller.com",
	"phone": - {
  	"area_code": null,
  	"number": "011 4444 1234",
  	"extension": null,
	},
	"first_name": "Name.",
	"last_name": "Last Name LTDA.",
  },
  "payments":  [
	- {
  	"id": "459656119",
  	"transaction_amount": 99.98,
  	"currency_id": "BRL",
  	"status": "approved",
  	"date_created": null,
  	"date_last_modified": null,
	},
  ],
  "feedback":  {
	"purchase": null,
	"sale": null,
  },
  "shipping":  {
	"id": 20176304039,
	"status": "pending",
	"date_created": "2012-12-18T09:37:35.000-04:00",
	"receiver_address":  {
  	"id": 123456789,
  	"address_line": "Rua Júlio Sérgio de Castro 262 0  ",
  	"zip_code": "223232",
  	"city": - {
    	"id": "BR-SP-44",
    	"name": "São Paulo",
  	},
  	"state":  {
    	"id": "BR-SP",
    	"name": "São Paulo",
  	},
  	"country": - {
    	"id": "BR",
    	"name": "Brasil",
  	},
  	"latitude": null,
  	"longitude": null,
  	"comment": null,
	},
	"currency_id": "BRL",
	"cost": 5.9,
  },
  "tags":  [
	"paid",
	"not_delivered",
  ],
}

Para obtener los detalles completos de un shipment (detalle de estado, fecha de creación, opciones de envío, tales como velocidad de envío, etc.) realiza una llamada mixta entre pedidos y envíos como ésta:

https://api.mercadolibre.com/orders/:order_id/shipments?access_token=

Ya conozco el shipment_id

Si ya tienes el id, simplemente realiza una llamada a los recursos de envío:

curl -X GET https://api.mercadolibre.com/shipments/:shipment_id?access_token=

Ejemplo:

{
  "id": 12345678,
  "status": "active",
  "status_history":  {
	"date_shipped": null,
	"date_delivered": null,
  },
  "date_created": "2011-09-07T13:29:42.000-04:00",
  "last_updated": "2011-09-07T13:30:29.000-04:00",
  "tracking_number": null,
  "tracking_method_id":182,
  "tracking_method": null,
  "sender_id": "99580221",
  "receiver_id": "8408542",
  "sender_address":  {
	"id": "53742741",
	"address_line": "Rua X",
	"comment": null,
	"zip_code": "01154020",
	"city":  {
  	"id": "null",
  	"name": "Sao Paulo",
	},
	"state":  {
  	"id": "BR-SP",
  	"name": "Sao Paulo",
	},
    "country":  {
  	"id": "BR",
  	"name": "Brasil",
	},
	"types":  [
      "default_selling_address",
	],
	"latitude": null,
	"longitude": null,
  },
  "receiver_address":  {
	"id": "12181995",
	"address_line": "Estrada Geral Cachoeira de Fátima 77777",
	"comment": null,
	"zip_code": "88990000",
	"city":  {
  	"id": "null",
  	"name": "Praia Grande",
	},
	"state":  {
  	"id": "BR-SC",
  	"name": "Santa Catarina",
	},
	"country":  {
  	"id": "BR",
  	"name": "Brasil",
	},
	"types":  [
  	"default_buying_address",
	],
	"latitude": null,
	"longitude": null,
  },
  "shipping_items":  [
 	{
  	"id": "MLB402220356",
  	"description": "Celular Apple Iphone 4 16gb Libre De Fábrica ",
  	"quantity": 49,
  	"dimensions": “15x15x25,500”,
	},
  ],
  "shipping_option":  {
	"id": 18309457,
	"name": "Express",
	"currency_id": "BRL",
	"cost": 1,
	"speed":{
  	"shipping": 48,
  	"handling": 24
	},
  "comments": "other info shipping",
  }

Ofrece envío personalizado para tus productos

Todo lo que tienes que hacer es un POST. El JSON debe incluir los ‘costos’ para el modo de envío personalizado con la descripción de los parámetros y el costo especificado.

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

Una vez creado un ítem con envío custom y configurada la tabla de costos podrá verse en shipping options.
Llamada:

https://api.mercadolibre.com/items/item_id/shipping_options

NOTA: Para países donde Mercado Envíos se encuentra activo sólo podrás agregar envíos custom gratis en categorías que no acepten ME.

Ofrece envío personalizado para tus productos

También puedes agregar el modo envío personalizado a un artículo con método de envío not_specified.
Es muy fácil. Realiza una solicitud PUT a la API del artículo 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

Este modo también acepta un tracking_number, pero nosotros no monitorearemos el código.

Agrega un número de seguimiento

Antes de incluir el número de seguimiento, debes conocer el shipment_id para poder realizar una solicitud PUT al envío con los atributos service_id y tracking_number.

curl curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d‘{
  "tracking_number": "TR1234567891",
  "status": "shipped"
}’ https://api.mercadolibre.com/shipments/:shipment_id?access_token=

Consideraciones

Entrega de producto (sólo disponible para México y Brasil)

Con el siguiente recurso puedes informar a los compradores el status de entrega de sus productos cuando no utilicen Mercado Envío.
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/{shipping_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.

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/{shipping_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

Se presenta cuando la orden no tiene shipping:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
  "status": "shipped",
  "receiver_id": 12345678,
  "shipping_option": {
      "currency_id": "MXN",
      "cost": 0,
      "speed": 120
  }
}
https://api.mercadolibre.com/orders/{order_id}/shipments?access_token=$ACCESS_TOKEN

Aclaración:

  • El campo speed debe ir dentro de la sección “shipping_options”. Así mismo, se debe especificar un costo al momento de crear el shipping.

Escenario 4

En caso que haya que Informar que ya fue entregado:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
  "fulfilled": true,
  "rating": positive
}
https://api.mercadolibre.com/orders/{orderId}/feedback?access_token=$ACCESS_TOKEN

Escenario 5

Cuando sea necesario cancelar una venta:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
  "fulfilled": false,
  "rating": neutral
}
https://api.mercadolibre.com/orders/{orderId}/feedback?access_token=$ACCESS_TOKEN

Aclaración:

  • Al cancelar la venta mediante el feedback se va a devolver los pagos al comprador.

Por favor califica del 1 al 5