Documentação do Mercado Shops
Confira todas as informações necessárias sobre as APIs Mercado Shops.Documentação do
Última atualização em 24/10/2023
Gerenciar pixels
Considerações
- A aplicação deve ser registada em https://developers.mercadolibre.com , obtendo o application_id. (O aplicativo deve ser registrado no Mshop).
- Para autorizar requisições, utiliza-se o Oauth (mais info).
- Lembre-se de que um application_id só pode ter um pixel_id. Para adquirir outro, você deve registrar outro aplicativo. Por sua vez, um Pixel_id pode ter vários vendedores associados a ele.
- Para associar um script a um vendedor, este deve ter delegado um domínio ao MercadoShops. Caso esta etapa não tenha sido realizada, a API retornará um código de status 401 com a seguinte mensagem: Your shop is not authorized for this request, you must have a delegated domain . Para identificar se o vendedor tem domínio delegado ou não (mais info.)
- O formato dos scripts deve ser um modelo Handlebars de forma que um código JavaScript possa ser obtido substituindo a variável de usuário. O código JavaScript obtido do script deve poder ser executado dentro de uma condição. Além disso, é preferível que o script seja mantido o menor possível, com um tamanho total menor que 2kB, e se for necessária lógica adicional, o script deve fazer uma chamada para buscar e executar outro arquivo JavaScript armazenado em um CDN fornecido pelo Integrador.
- O nome do arquivo .Json não pode conter espaços ou caracteres especiais, o Custom-script não os permite nos nomes dos Pixels.
- O script deve conter a variável definida no arquivo .Json. É viável chamar a variável de VARIABLE.
Exemplo de scripts correto:
script.hbs
if (/*condition*/) {
var
src="https://test-pixel.com/api/script/mercadoshops/onLoad.js?=shop123"; var script = document.createElement("script");
script.setAttribute("src", src);
document.getElementsByTagName("head")[0].appendChild(script);
}
Esse scripts será exibido na loja da seguinte maneira:
var src="https://test-pixel.com/api/script/mercadoshops/onLoad.js?={{VARIABLE}}"; var script = document.createElement("script");
script.setAttribute("src", src);
document.getElementsByTagName("head")[0].appendChild(script);
Exemplo de scripts incorreto:
Glossário de campos e parâmetros
Campos | Descrição do campo | Possíveis valores para o campo e sua descrição |
---|---|---|
pixel_id | Identificação do script do aplicativo. | String |
sections | Contém os argumentos que indicam a(s) seção(ões) da loja onde o pixel será impactado. As letras minúsculas devem ser respeitadas e pelo menos uma seção deve ser indicada. Se nenhum for especificado ou o nome estiver incorreto, um erro 400 será retornado. | Os valores possíveis são: home, search, cart, vip e contact. |
external_client_id | Id do vendedor, ao qual o pixel será aplicado. | String |
integration_id | Identificador da integração criada anteriormente ao vendedor no endpoint POST. É o valor da resposta correspondente ao id. | String |
Identifique o domínio da loja
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
https://api.mercadolibre.com/shops/public-domains
Resposta:
{
"domain": "www.shop.domain.com",
"shop_id": 123242154125,
"status": "ACTIVE",
"delegation_type": "PARTIAL",
"site": "MCO"
}
Parámetros de respuesta
Campos | Descrição do campo | Possíveis valores para o campo e sua descrição |
---|---|---|
domain | Domínio delegado | String |
shop_id | Id da shop | Long |
status | Estado da delegação | REGISTERED, CHECK_FOR_TOTAL_DELEGATION, CHECK_FOR_PARTIAL_DELEGATION, DELEGATION_OK, DELEGATION_ERROR, CERTIFICATE_OK, CERTIFICATE_ERROR, NAVIGATION_OK, NAVIGATION_ERROR, ACTIVE, ERROR, DOMAIN_EXPIRED, CERTIFICATE_EXPIRED, INACTIVE, DELEGATION_CEASED, DELEGATION_ANALYZE, DELEGATION_RESTART, DELEGATION_PREVIOUS, DELEGATION_REREGISTER, CERTIFICATE_ANALYZE, NAVIGATION_ANALYZE, ANALYZE |
delegation_type | Tipo de delegação | TOTAL, PARTIAL |
site | Id do site do vendedor | MLA, MBO, MLB, MLC, MCO, MCR, MRD, MCU, MEC, MGT, MHN, MLM, MNI, MPA, MPY, MPE, MPT, MSV, MLU, MLV |
Erros
Status_Code | Código de error | Mensagem de erro | Descrição |
---|---|---|---|
401 | unauthorized | Seller has pending to ask their identity validation | O vendedor não validou sua identidade. |
401 | unauthorized | Signature not found by user_id and checkpoint_id | O vendedor não assinou os termos e condições. |
401 | unauthorized | Client.id not allowed to continue operation | O client_id não tem permissão para acessar as informações do fornecedor. |
401 | unauthorized | invalid_token | |
403 | forbidden | ACCESS_TOKEN_NOT_GRANTED | Você não tem permissão para realizar a consulta. |
404 | not_found | shop_id not found in kvs | O vendedor não tem delegação de domínio. |
429 | too_many_requests | Over quota | Muitos pedidos foram feitos em pouco tempo. |
500 | internal_server_error | É causado por um erro inesperado em qualquer etapa do fluxo. |
Associar script ao Shop do vendedor
Chamada:
curl -X POST-H 'Authorization: Bearer $ACCESS_TOKEN' -H "Content-Type: application/json" -d
{...}
https://api.mercadolibre.com/shops/custom-scripts/ext/integration
Exemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' -H "Content-Type: application/json" -d
'{
"pixel_id": "XXXXX",
"sections": ["home", "search", "vip", "cart", "contact"],
"external_client_id": "XXXXX",
}
'
https://api.mercadolibre.com/shops/custom-scripts/ext/integration
Resposta:
{
"id": "XXXXX",
"pixel": {
"id": "XXXXX",
"description": "XXXXX"
},
"created_at": "XXXXX",
"sections": ["home", "search", "vip", "cart", "contact"]
}
Status Code | Response body | Notas |
---|---|---|
201 - Created | Dados da integração recém-criada (id, data de criação, seções, detalhes do pixel). | É importante guardar o id retornado por este endpoint, ele deve ser utilizado ao desabilitar a integração. |
400 - Unauthorized | { "error": "Unauthorized Shop", "message": "Shop does not have a valid domain" } | A loja a que pretende integrar não tem domínio delegado. |
400 - Bad Request | { "error": "Active integration already exists", "message": "Seller already has an active integration with this script" } | A integração que você está tentando executar já está ativa no domínio do vendedor. |
400 - Bad Request | { "error": "Script doesn't exist", "message": "Unable to find the script with the provided ID: " } | O script que você deseja integrar na loja não existe. |
401 - Unauthorized | { "error": "Unauthorized", "message": "You are unauthorized for this request" } | O token de autorização é inválido. |
500 - Internal Server Error | Erro interno. |
Desativar pixel
Com o seguinte recurso você pode desativar o pixel em todas as seções em que o vendedor foi ativado anteriormente.
Chamada:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shops/custom-scripts/ext/integration?integration_id={INTEGRATION_ID}
Exemplo:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shops/custom-scripts/ext/integration?integration_id={INTEGRATION_ID}
Resposta:
{
"updated_at": "XX/XX/XX",
"status": "Disabled",
"external_client_id": "XXXXX"
}
Status Code
Status Code | Response body | Notas |
---|---|---|
200 - OK | ||
400 - Bad Request | { "error": "Integration already disabled", "message": "It is not possible to process your request. The integration is already disabled" } | A integração já havia sido desativada anteriormente. |
400 - Bad Request | { "error": "Integration doesn't exist", "message": "The integration doesn't exist" } | A integração que você deseja desativar não existe. |
401 - Unauthorized | { "error": "Unauthorized", "message": "You are unauthorized for this request" } | O token de autorização não é válido. |
500 - Internal Server Error | Erro interno. |