Mercado Envios Flex

Importante:
Atualmente a funcionalidade já está disponível para vendedores dos países MLA, MLB, MLC, MCO, MLU.

Este recurso permitirá fazer as configuração de envios na modalidade Mercado Envios Flex, tais como: prazo de entrega, limite de envios por dia e áreas de cobertura através da integração.
Mercado Envios Flex é uma ferramenta que facilita e potencia as entregas com velocidade em até 24 horas. Os vendedores podem fazer um seguimento dos envios y ter uma organização na logística para enviar todos os produtos com maior praticidade e, principalmente, agilidade. Conheça mais os benefícios de Mercado Envios Flex.
Para sua ativação é necessário que o vendedor tenha o endereço de envio dentro das localidades com cobertura de Flex e com a reputação acima de amarela, com isso ativação poderá ser feita de duas maneiras: através da Central de Vendedores ou diretamente na edição do item, já irá aparecer a opção de oferecer Flex. Após a primeira ativação na plataforma, as demais poderão ser feitas diretamente através da sua integração.

Conteúdos

→Configurar o usuário de test
→Consultar configuração do vendedor
→Determine o prazo de entrega e limite de envios
→Amplie sua área de cobertura
→Consultar Flex no item
→Ativar Flex no item
→Desativar Flex no item

Configurar o usuário de test

Para os usuários de test é necessário ativar internamente através do cust_id. O cust_id tem que estar configurado com o endereço de envio de acordo com as áreas de cobertura nos países:

  • Para MLC: deve configurar com a cidade, por exemplo: Lo Barnechea.
  • Para MLA: deve configurar para um endereço de CABA (Ciudade Autónoma de Buenos Aires).
  • Para MCO: deve configurar qualquer bairro de Bogota.
  • Para MLB: deve configurar para um endereço com cobertura a Flex, conforme alguns exemplos de CEPs:
    São Paulo
    Central: 01401000
    Oeste: 05002070
    Leste: 03424010
    Norte: 02308000
    Sul1: 04342011
    Sul2: 04866100

  • Para MLU: deve estar configurado para Montevideo ou Canelones.

Consultar configuração do vendedor

Através deste endpoint, é possivel consultar a configurações do seller para verificar se esta ativada com Mercado Envios Flex. Este endpoint é um GET (para retornar a informação), mas termina sendo un POST porque requer uma query com o cust_id.

Chamada:

curl -X POST https://api.mercadolibre.com/shipping/selfservice/configuration?access_token=$ACCESS_TOKEN

Exemplo:

curl -X POST https://api.mercadolibre.com/shipping/selfservice/configuration?access_token=$ACCESS_TOKEN

{
    "query": "{ configuration(user_id: 534720659){ adoption{ service_id status creation_date last_update penalty_status recover_date delivery_window } address{ id address_line zip_code city{ id name } } capacity{ availables selected current_count } cutoff{ availables{ value unit } selected{ value unit } } training_time{ activation_date offset{ value unit } } zones{ id label price{ cents currency_id decimal_separator fraction symbol } is_mandatory selected } }}"
}
Nota:
En MLA não retorna os bairros (o atributo “neighborhoods”) porque é bastante claro o nome das zonas, que son partidos (um conjunto de bairros), exemplo: CABA, Vicente Lopez, etc.

Resposta:

{
    "configuration": {
        "address": {
            "address_line": "Avenida Brigadeiro Luís Antônio - de 2253 a 3139 - lado ímpar 50",
            "city": {
                "id": "BR-SP-44",
                "name": "São Paulo"
            },
            "id": 1091302682,
            "zip_code": "01401000"
        },
        "adoption": {
            "creation_date": "2020-03-10T15:43:36-03:00",
            "delivery_window": "same_day",
            "last_update": "2020-03-11T09:43:38-03:00",
            "penalty_status": "",
            "recover_date": "0001-01-01T00:00:00Z",
            "service_id": 214241,
            "status": "in"
        },
        "capacity": {
            "availables": [
                0,
                10,
                20,
                30,
                40,
                60,
                80,
                100
            ],
            "current_count": 0,
            "selected": 100
        },
        "cutoff": {
            "availables": [
                {
                    "unit": "HOUR",
                    "value": 12
                },
                {
                    "unit": "HOUR",
                    "value": 13
                },
                {
                    "unit": "HOUR",
                    "value": 14
                },
                {
                    "unit": "HOUR",
                    "value": 15
                },
                {
                    "unit": "HOUR",
                    "value": 16
                },
                {
                    "unit": "HOUR",
                    "value": 17
                },
                {
                    "unit": "HOUR",
                    "value": 18
                }
            ],
            "selected": {
                "unit": "HOUR",
                "value": 18
            }
        },
        "training_time": {
            "activation_date": "2020-03-10T00:00:00.000Z",
            "unit": "DAY",
            "value": 7
        },
        "zones": [
            {
                "id": "BR-SP-Centro",
                "is_mandatory": false,
                "label": "Centro",
                "polygon": {
                    "properties": {
                        "name": "Centro"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "8",
                    "symbol": "R$"
                },
                "selected": true
            },
            {
                "id": "BR-SP-Leste-1",
                "is_mandatory": false,
                "label": "Leste 1",
                "polygon": {
                    "properties": {
                        "name": "Leste 1"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Leste-2",
                "is_mandatory": false,
                "label": "Leste 2",
                "polygon": {
                    "properties": {
                        "name": "Leste 2"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Leste-3",
                "is_mandatory": false,
                "label": "Leste 3",
                "polygon": {
                    "properties": {
                        "name": "Leste 3"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Leste-4",
                "is_mandatory": false,
                "label": "Leste 4",
                "polygon": {
                    "properties": {
                        "name": "Leste 4"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Leste-5",
                "is_mandatory": false,
                "label": "Leste 5",
                "polygon": {
                    "properties": {
                        "name": "Leste 5"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Norte-1",
                "is_mandatory": false,
                "label": "Norte 1",
                "polygon": {
                    "properties": {
                        "name": "Norte 1"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Norte-2",
                "is_mandatory": false,
                "label": "Norte 2",
                "polygon": {
                    "properties": {
                        "name": "Norte 2"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Norte-3",
                "is_mandatory": false,
                "label": "Norte 3",
                "polygon": {
                    "properties": {
                        "name": "Norte 3"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Oeste-1",
                "is_mandatory": false,
                "label": "Oeste 1",
                "polygon": {
                    "properties": {
                        "name": "Oeste 1"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Oeste-2",
                "is_mandatory": false,
                "label": "Oeste 2",
                "polygon": {
                    "properties": {
                        "name": "Oeste 2"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Oeste-3",
                "is_mandatory": false,
                "label": "Oeste 3",
                "polygon": {
                    "properties": {
                        "name": "Oeste 3"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Sul-1",
                "is_mandatory": false,
                "label": "Sul 1",
                "polygon": {
                    "properties": {
                        "name": "Sul 1"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Sul-2",
                "is_mandatory": false,
                "label": "Sul 2",
                "polygon": {
                    "properties": {
                        "name": "Sul 2"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "13",
                    "symbol": "R$"
                },
                "selected": false
            },
            {
                "id": "BR-SP-Sul-3",
                "is_mandatory": false,
                "label": "Sul 3",
                "polygon": {
                    "properties": {
                        "name": "Sul 3"
                    }
                },
                "price": {
                    "cents": "90",
                    "currency_id": "BRL",
                    "decimal_separator": ".",
                    "fraction": "15",
                    "symbol": "R$"
                },
                "selected": false
            }
        ]
    }
}

Também é possível consultar as localizações de coordenadas do mapa através de um geojson, neste caso a query poderia ser executada assim no atributo zones:

zones{ id label polygon{ type geometry{ type coordinates } properties{ name } }

Resposta:

{
                "id": "BR-SP-Sul-1",
                "is_mandatory": false,
                "label": "Sul 1",
                "polygon": {
                    "geometry": {
                        "coordinates": [
                            [
                                [
                                    -46.687368,
                                    -23.6263235
                                ],
                            ]
…………..

Determine o prazo de entrega e limite de envios

Também permitirá configurar quantos envios com o Mercado Envios Flex você vai oferecer por dia nos seus anúncios. Ao alcançar o limite, os envios rápidos não serão mais mostrados nos seus anúncios.


Parâmetros esperados:

delivery_window (required): indica se o usuário escolheu fazer entregas no mesmo dia (consideramos apenas os dias úteis):

  • same_day: o usuário escolheu fazer entregas no mesmo dia.
  • next_day: o usuário escolheu fazer entregas no dia seguinte.

cutoff: indica o horário limite para receber pedidos a ser enviados no mesmo dia. Se o usuário escolheu “next_day” em delivery_window, o cutoff não pode ser vazio. Possíveis valores: 12 / 13 / 14 / 15 / 16 / 17 / 18.

capacity: capacidade máxima por dia selecionada pelo seller, o seu valor pode ser vazio, porque não é necessário atualizá-lo.
Possíveis valores: 10 / 20 / 30 / 40 / 60 / 80 / 100 / 0 (indica que é "Mais de 100).

Chamada:

curl -X PUT https://api.mercadolibre.com/users/$USER_ID/shipping/selfservice/adoption?access_token=$ACCESS_TOKEN

Exemplo:

curl -X PUT https://api.mercadolibre.com/users/534720659/shipping/selfservice/adoption?access_token=$ACCESS_TOKEN

{
        "delivery_window": "same_day",
        "cutoff": 12,
        "capacity": 20
}

Resposta:

{
    "user_id": 534720659,
    "service_id": 214241,
    "status": "pending",
    "penalty_status": null,
    "delivery_window": "same_day",
    "cutoff": 12,
    "capacity": 20,
    "training_time": {
        "offset": {
            "value": 0,
            "unit": "DAY"
        },
        "activation_date": "2020-03-10T00:00:00.000Z"
    },
    "creation_date": "2020-03-10T15:43:36-03:00",
    "last_update": "2020-03-10T15:44:36-03:00",
    "recover_date": null,
    "site_id": "MLB",
    "is_test": true
}

Amplie sua área de cobertura

Este endpoint permite que você configure as regiões onde quer entregar com Mercado Envios Flex.

Neste recurso é necessário enviar as zonas que deseja adicionar e também as que já estavam adicionadas, senão serão eliminadas.

Através da consulta da configuração do vendedor é possível obter as zonas liberadas pelo Mercado Livre para serem elegidas pelo vendedor.

Chamada:

curl -X PUT https://api.mercadolibre.com/users/$user_id/shipping/selfservice/coverage/zones?access_token=$ACCESS_TOKEN

Exemplo:

curl -X PUT https://api.mercadolibre.com/users/534720659/shipping/selfservice/coverage/zones?access_token=$ACCESS_TOKEN

["BR-SP-Sul-2"]

Resposta:

[
    {
        "service_id": 214241,
        "zones": [
            "BR-SP-Sul-2"
        ]
    }
]

Consultar Flex no item

Este endpoint permite que você consulte se o item está habilitado para ME Flex ou não.

Chamada:

curl -X GET https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID?access_token=$ACCESS_TOKEN

Exemplo:

curl -X GET https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403?access_token=$ACCESS_TOKEN

Resposta:

Status: 204 No Content

Possíveis respostas:

204 - No Content: o item oferece Flex.
403 - Forbidden: site está desabilitado para Flex.
404 - Not Found: o ítem não oferece Flex ou o item não existe.
message: item down: o item não oferece Flex.
message: item not found: o item não foi encontrado.
Também é possível verificar se o item está ativado com Flex ou não através do recurso de /items, nas tags:
self_service_out: item não ativo
self_service_in: item ativo


Ativar Flex no item

Este endpoint permite que você ative a opção de Flex no item.

Chamada:

curl -X POST https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID?access_token=$ACCESS_TOKEN

Exemplo:

curl -X POST https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403?access_token=$ACCESS_TOKEN

Resposta:

Status: 204 No Content

Possíveis respostas:

204 - No Content: o item foi atualizado corretamente para oferecer Flex.
400 - Bad Request: item is already in flex.
403 - Forbidden: site está desabilitado para Flex.
404 - Not Found: o item não existe.


Desativar Flex no item

Este endpoint permite que você desative a opção de Flex no item.

Chamada:

curl -X DELETE https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID?access_token=$ACCESS_TOKEN

Exemplo:

curl -X DELETE https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403?access_token=$ACCESS_TOKEN

Resposta:

Status: 204 No Content

Possíveis respostas:

204 - No Content: o item foi atualizado corretamente para deixar de oferecer Flex.
400 - Bad Request: item is not in flex.
403 - Forbidden: site está desabilitado para Flex.
404 - Not Found: o item não existe.

ou registre-se para receber as últimas notícias sobre nossa API