Envio personalizado

Quando o comprador escolhe as preferências do envio e preenche o endereço de entrega, é criado um envio que é associado à ordem.

Quando o envio for criado, um novo feed de order e, posteriormente será informado o estado do pacote até que ele seja entregue.

Assuntos

Acesse os detalhes de envio

É possível poder encontrar algumas informações básicas sobre os envios no pedido, mas é melhor você trabalhar com o recurso de envios para obter todos os detalhes. Para isso, você deverá saber o shipment_id.

Não sei o shipment_id

Você pode encontrá-lo no pedido, nas informações básicas.

Exemplo:

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

Resposta:

{
  "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 obter todos os detalhes de um pedido (status, data de criação, opções de envio, como velocidade do frete, e muito mais) faça uma chamada combinada entre pedidos e envios como o exemplo abaixo:

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

Eu já sei o shipment_id

Caso você já tenha o id, faça uma chamada aos recursos de envio:

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

Exemplo:

{
  "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",
  }

Ofereça envio personalizado para seus produtos

Tudo que você precisa fazer é enviar uma solicitação POST com o JSON à API do produto. O JSON deverá incluir os “custos” do tipo de envio personalizado junto com a descrição dos parâmetros e o custo 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

Uma vez criado um ítem com envio custom e configurada a tabla de custos poderá ver-se em shipping options.
Chamada:

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

NOTA: Nos países onde o modo Mercado Envios está ativo, somente poderá adicionar envíos custom gratis em categorías que não aceitem ME.

Adicione um número de rastreamento

Você também pode adicionar o modo envio personalizado a um produto que tem método de envio not_specified.
Para poder alterar o envio, o produto não deve ter vendas.
É muito simples. Faça uma solicitação PUT para a API do item, incluindo o Item_ID e envie um JSON semelhante ao que segue.

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 também aceita um tracking_number, mas o Mercado Livre não faz o monitoramento do código.

Adicione um número de rastreamento personalizado

Antes de incluir o número de rastreamento, você deve saber o shipiment_id. Você pode localizá-lo fazendo uma chamada ao recurso de pedidos, como é indicado a seguir:

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=

Considerações

Entrega de produto (só disponível para o México e o Brasil)

Com esse recurso, você pode informar os compradores sobre o status de entrega dos seus produtos quando eles não utilizarem Mercado Envio.
Comece a utilizá-lo levando em conta os seguintes cenários:

Cenário 1

Quando a ordem tem um Custom Shipping criado e seu status é “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

Esclarecimentos:

  • O campo speed representa a distância em horas que a entrega do produto vai demorar.
  • A data prometida de entrega será igual à quantidade de horas especificadas no campo “speed”, contadas a partir do dia em que o valor for informado.
  • O campo tracking_number é requerido para a API, mas não será em nenhuma lista e/ou detalhamento de venda.

Cenário 2

Quando a ordem tem um Custom Shipping criado e seu status é “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

Esclarecimento:

  • Neste caso, só será atualizada a promessa de entrega, portanto, a API não pedirá um tracking_number.

Cenário 3

Quando a ordem não tem 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

Esclarecimento:

  • O campo speed deve estar dentro da seção “shipping_options”. Mesmo assim, deve ser especificado um custo no momento de criar o shipping.

Cenário 4

Caso seja necessário informar que o item já foi entregue:

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

Cenário 5

Caso seja necessário cancelar uma venda:

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

Esclarecimento:

  • Ao cancelar a venda mediante feedback, os pagamentos serão devolvidos ao comprador

Qualifique entre 1 e 5