• 0
Angel Cantu

[PHP] No me deja Insertar Publicacion (producto) !

Question

Buen dia Foro.

Estoy intentando subir un producto solamente para probar mi API, ya la parte de intercambio del code, obtener el token y el refresqueo antes de que caduque ya lo tengo funcionando y resuelto, ya la Token jamas se me vence :D

Pero al hacer el envio POST para publicar un producto me retorn un error 404 :( especificando sobre "item.category" la cual nose porque lo indica si con anterioridad saque la categoria :(.

## Lo que ENVIO POST

POST https://api.mercadolibre.com/items?access_token=_Token_valida_
Content-Type: json
{"title":"producto de prueba","category_id":"MLM1051","price":"1000.00","currency_id":"USD","available_quantity":"50","buying_mode":"buy_it_now","listing_type_id":"free","condition":"new","description":"descripcion de prueba","warranty":"3 meses","sihpping":{"mode":"me2","local_pick_up":false,"free_shipping":false,"free_method":null},"pictures":[{"source":"https:\/\/miempresa.com/articulo/ID/imagen.jpg"}]}

## Lo que RECIBO de Mercado (el error)

HTTP/1.1 400 Bad Request 
Date: Wed, 26 Apr 2017 22:48:57 GMT 
Content-Type: application/json;charset=UTF-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
X-API-Name: syi-api 
X-API-Version: 1.00 
Vary: Accept,Accept-Encoding, User-Agent 
Cache-Control: max-age=0 
X-GAV: master 
X-Content-Type-Options: nosniff 
X-Nginx-Host: e-00016dc8 
X-Nginx-Pool: items-api-webserver-write-master 
X-Nginx-UpstreamHost: 172.16.38.89:80 
X-Request-Id: d9540-887f-4dad-aff7-da0a2a00 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Headers: Content-Type 
Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS 
Access-Control-Max-Age: 86400 

{"message":"body.invalid_fields","error":"The fields [sihpping] are invalid for requested call.","status":400,"cause":[]}

Con anterioridad la categoria MLM1051 la obtuve como lo indica este manual: http://developers.mercadolibre.com/es/categoriza-productos/

Share this post


Link to post
Share on other sites

16 answers to this question

Recommended Posts

  • 0

preste atenção e revise o código antes de abrir um tópico.... você escreveu errado ... é shipping e não sihpping ... inclusive o próprio código de erro te informou isso... errou em não revisar e errou em não ler o erro... <_<

Share this post


Link to post
Share on other sites
  • 0

Gracias por tu respuesta mldev, pero mi problema continua, ya corregi el error ortografico, pero el mismo error continua.

## Lo Que envio (POST)

POST https://api.mercadolibre.com/items?access_token=_Token_Valida_
Content-Type: json
{"title":"Titulo de Prueba","category_id":"MLM1051","price":"1000.00","currency_id":"USD","available_quantity":"50","buying_mode":"buy_it_now","listing_type_id":"free","condition":"new","description":"Descripcion de prueba","warranty":"3 meses","tags":["immediate_payment"],"shipping":{"mode":"me2","local_pick_up":false,"free_shipping":false,"free_methods":[]},"pictures":[{"source":"https:\/\/miempresa.com/articulo/id/imagen.jpg"}]}

## Lo que Recibo

HTTP/1.1 400 Bad Request 
Date: Thu, 27 Apr 2017 14:35:11 GMT 
Content-Type: application/json;charset=UTF-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
X-API-Name: syi-api 
X-API-Version: 1.00 
Vary: Accept,Accept-Encoding, User-Agent 
Cache-Control: max-age=0 
X-GAV: master 
X-Content-Type-Options: nosniff
 X-Nginx-Host: e-00013f24 
X-Nginx-Pool: items-api-webserver-write-master 
X-Nginx-UpstreamHost: 172.16.38.89:80 
X-Request-Id: be77e-78b5-426a-bddc-fc4235d5 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Headers: Content-Type 
Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS 
Access-Control-Max-Age: 86400 

{"message":"Validation error","error":"validation_error","status":400,"cause":[{"code":"item.category_id.invalid","message":"Is not allowed to post in category MLM1051. Make sure you're posting in a leaf category"}]}

 

Share this post


Link to post
Share on other sites
  • 0

Mas aí está difícil hein Angel?
a mensagem não é clara?

"message":"Validation error",
"error":"validation_error",
"status":400,
"cause":[
    {"code":"item.category_id.invalid",
     "message":"Is not allowed to post in category MLM1051. Make sure you're posting in a leaf category"}
 ]}

não é permitido o uso desta categoria, ela tem categoria filho que deve ser usada. Tente MLM72372

Share this post


Link to post
Share on other sites
  • 0

1) Porque no puedo publicar en la categoria MLM1051 ?
2) La categoria que me mencionas MLM72372 de donde la sacaste ? como ?

Me interesa tener todos los detalles porque esas categorias NO las obtengo de forma manual, sino que en mi sistema de ALMACEN tengo categorias (nivel 1) y subcategorias (nivel 2), de modo que asocioa el nivel 1 y nivel 2 con categorias de nivel 1 y 2 que existen en mercado libre, asi es como yo obtengo el "MLM1051".

En mi sistema le permito al usuario crear un Catalogo y dentro SubCatalogos, despues de que los crea, puede asociar el "ID Mercado" al catalogo y subcatalogo. Por ejemplo, tengo:

* Telefonia ( Mercado ID: MLM1051 / MercadoName: Celulares y Telefonía )
*** Equipo Radio Comunicacion. ( Mercado ID: MLM1058 / MercadoName: Equipos de Radiofrecuencia )

En el ejemplo que envie publique en MLM1051

Saludos !

Share this post


Link to post
Share on other sites
  • 0

há categorias que não tem permissão de publicação, provavelmente porque é uma categoria pai (principal),
https://api.mercadolibre.com/categories/MLM1051

"listing_allowed": false,

Onde eu peguei a outra? 
naveguei na categoria até encontrar uma filha que permitisse. Onde?


https://api.mercadolibre.com/categories/MLM1051
"children_categories": [ {}, {}, {}, {}, {}, {}, {}, {} ],

Há um recuso que você procura as categorias de acordo com o nome do produto: category_predictor.
Ou você pode baixar toda a árvore de categorias (este modo está sendo muito discutido):

Share this post


Link to post
Share on other sites
  • 0

gracias por tu respuesta rodrigojob, pero esto esta muy raro, nose si mi cuenta tiene una restriccion o que sucede.

Hice un peque~o codigo para comprobar que Catalogos de nivel 1 y nivel 2 tiene el elemento "listing_allowed: true", y la prueba la realice sobre la categoria principal de "Computacion" (/categories/MLM1648), y solo 2 (dos) categorias (children_categories) me aparecen con este argumento:

MLM1648 - Computacion
	MLM1912 - Otros (listing_allowed:true)
	MLM187128 - Mini PCs (listing_allowed:true)

En conclusion me da a entender que para la categoria de COMPUTACION (MLM1648) solo podre publicar en "Otros" y "Mini PCs", pero las demas categorias ? porque ?

Saludos !

Share this post


Link to post
Share on other sites
  • 0

Hola Angel,

Para publicar un producto, la categoría que le das debe de tener como lo mencionas el listing_allowed en true, no se puede publicar productos en categrias que no sean "leaf" categories por que las reglas de MercadoLibre no te permite. Sencillamente revisa las categorías que vas a ingresar y listo.

Saludos! :D y suerte

Share this post


Link to post
Share on other sites
  • 0

Sobre la PREDICCION es muy inneficiente (para mi), porque tengo un producto que su modelo es "IC-F4003-48" (Es un radio de comunicacion a frecuencia).

Usando la pagina de www.mercadolibre.com.mx, y colocando en la busqueda el dato de "IC-F4003-48", obtengo resultados de busqueda eficientes.

Pero usando el predictor (https://api.mercadolibre.com/sites/MLM/category_predictor/predict?title=IC-F4003-48), obtengo categorias todalmente fuera del concepto.

## Recepcion al consultar el predictor

{
  "id": "MLM158051",
  "name": "Otros Arduinos",
  "path_from_root": [],
  "prediction_probability": 0.06811825938453878,
  "shipping_modes": []
}

Saludos !

Share this post


Link to post
Share on other sites
  • 0

Hola Angel, 

Te recomiendo mucho mas bajar la lista completa de categorias y armar una base de datos en base a ella. En verdad te ahorras mucho tiempo. Digo el set up es medio tardado pero lo vale. Yo tambien llegue a la conclusion de que la API de prediccion es muy mala jajaja.

Suerte y saludos! >D 

Share this post


Link to post
Share on other sites
  • 0

jajajaja no pues todo termine poniendolo en "OTROS" de su respectivo catalogo principal, ya que los catalogos secundarios (nivel 2) estan en "listened_allowed:false", y solo el de "Otros.." siempre esta en true.

 

Share this post


Link to post
Share on other sites
  • 0

Pues el problema continua, pero ahora me dice otro error:

{"message":"Validation error","error":"validation_error","status":400,"cause":[{"code":"item.available_quantity.invalid","message":"Available quantity max. value is 1 for category MLM1915, condition new and listing type free"},{"code":"item.title.length.invalid","message":"Category MLM1915 does not support titles greater than 60 characters long."}]}

Practicamente solo pueod publicar stock de 1 (uno) unidad:(

Ya lo puse en 1 (uno) unidad y corregi maximo 60 caracteres el titulo, y listo, me dejo !...

Pero quiero tener stock real en linea :S... como lo hago ?

 

Share this post


Link to post
Share on other sites
  • 0

Pues como dice el error, hay categorias (No se por que) que aceptan en quantity 1. Esto en verdad fue un dolor de cabeza cuando me paso. Pero pues ni modo termine eligiendo otra categoria. Lo que puedes hacer es jalar la info desde https://api.mercadolibre.com/categories/MLA24272/attributes los atributos de cada categoria usando ajax o algo y mostrar los datos que te permite poner. Para que al elegirlo sepas que sera valido para el producto que seleccionaste. No se si me explico? 

Exito y Saludos! :D 

Share this post


Link to post
Share on other sites
  • 0
3 hours ago, Angel Cantu said:

Pues el problema continua, pero ahora me dice otro error:


{"message":"Validation error","error":"validation_error","status":400,"cause":[{"code":"item.available_quantity.invalid","message":"Available quantity max. value is 1 for category MLM1915, condition new and listing type free"},{"code":"item.title.length.invalid","message":"Category MLM1915 does not support titles greater than 60 characters long."}]}

Practicamente solo pueod publicar stock de 1 (uno) unidad:(

Ya lo puse en 1 (uno) unidad y corregi maximo 60 caracteres el titulo, y listo, me dejo !...

Pero quiero tener stock real en linea :S... como lo hago ?

 

a resposta está na sua mensagem de erro... LEIA as mensagens de ERRO e RELEIA a documentação e regras do Mercado Livre

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now