• 0
martinac

Errors en update item (PUT) con variantions

Question

Buenas, tengo inconvenientes cuando el item tiene variations para actualizar los precios y cantidades.

 

Si hago algo así, pasando sólo los campos que quiero modificar (PUT a https://api.mercadolibre.com/items/{Item_id}?access_token=$ACCESS_TOKEN):

"variations": [
{
"id": {variation_id},
"available_quantity": 4,
"price":100
},
{
"id": {variation_id},
"available_quantity": 3,
"price":100
}
]

Me da este error: item.attributes.missing_required.

Entonces para salvarlo le agrego attribute_combinations (aunque no es mi intención modificar los attributes) para cada variation:

"attribute_combinations": [
         { "id": {attribute_id},
          "name": "Color Primario",
          "value_id": "92028",
          "value_name": "Blanco"
},
{"id":{attribute_id},
"name":"Talle",
"value_id": "102000",
"value_name":"U"
}
]

Pero ahora obtengo un error más incomprensible: item.pictures.variation.quantity.

 

Alguien podría orientarme sobre ese error? No lo encuentro en las guías de errores frecuentes, no sé a qué se refiere.

 

Aun mejor, explicarme cómo actualizar solamente precio / cantidad disponible de las variantes? Entiendo que el precio debería ser un atributo del ítem y no de las variantes, pero en las guías de desarrollo los ejemplos están sugeridos de esta manera.

 

Muchas gracias!

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Martina,

 

analizando el caso encontramos un pequeño bug:

 

El comportamiento de variations es como indica la documentación http://developers.mercadolibre.com/modify-items-with-variations/, el error

 

{"message":"Validation error","error":"validation_error","status":400,"cause":[{"code":"item.pictures.variation.quantity","message":"Every variation must have between 1 and 6 pictures."}]}

 

indica que toda variations debe contener al menos una imagen.

 

En cuanto a la modificación de una variación aquí encontramos un bug. SI ingresas el id de la variación que quieres modificar / conservar como un String ("id":"12345") en lugar de un número ("id":12345) la API no reconoce dicho campo y toma la variación como una nueva. Por esta razón es que pide todos los campos nuevamente. Ya esta reportado el bug para que en un futuro en estos casos la API devuelva un 400 -  id must be a number.

Muchas gracias por tu aporte.

Share this post


Link to post
Share on other sites
  • 0

Por favor, consertem esse bug, me matei durante dias tentando entender o motivo de não estar atualizando o estoque de itens com variação e descubro que por causa de uma aspas ele não funciona. A API deveria reportar o erro correto 'id must be a number' ao invés desse erro maluco assim como indicado pelo nlegresti, porém esse bug persiste desde Março, não foi corrigido mesmo tendo sido descoberto há 3 meses atrás. 

Share this post


Link to post
Share on other sites
  • 0

Outro detalhe importante. Em um item com variação, se algum deles tenta ser atualizado para estoque zero, recebo o mesmo erro descrito acima. Aparentemente a API não aceita itens sem estoque, porém como eu faço no caso de acabar apenas uma das variações? Os unitários também não aceitam estoque zero. Não achei nada na documentação que indique como lidar com essa questão. 

Share this post


Link to post
Share on other sites
  • 0

Estou tendo bastante dificuldade com essa API, segue um trecho copiado da documentação de vocês: 

 

Update stock on variations

It’s important that you send these values in all the variations because if you don’t send the ‘available_quantity’ for a variation, the API will understand that it the available_quantity is 0.

 

Estou enviando o JSON apenas com as variações com estoque, ignorando as que estão com o estoque zero justamente para forçar o MercadoLivre a entender que eles não estão mais disponíveis, assim como indica a documentação, porém se faço isso eu recebo esse mesmo erro genérico, nunca consigo saber exatamente o que ocorre lá dentro.

Obs: é importante citar que em itens com estoque ele atualiza tudo perfeitamente, estou tendo problemas apenas com itens com estoque zero. 

 

Segue um exemplo: 

 

JSON enviado:

{

"variations":[
{"id":8589260825,"available_quantity":2},
{"id":8589260828,"available_quantity":5},
{"id":8589260834,"available_quantity":1},
{"id":8589260837,"available_quantity":3},
{"id":8589260840,"available_quantity":2},
{"id":8589260843,"available_quantity":2},
{"id":8589260846,"available_quantity":4},
{"id":8589260849,"available_quantity":3},
{"id":8589181748,"available_quantity":4},
{"id":8589181752,"available_quantity":4},
{"id":8589181756,"available_quantity":2}
]
}
 
 
Retorno recebido: 
 
{"message":"Validation error","error":"validation_error","status":400,"cause":[{"code":"item.attributes.missing_required","message":"The attributes [63000, 33000] are required for category MLB108744. Check the attribute is present in the attributes list or in all variation attributes combination."},{"code":"item.attributes.invalid","message":"The attributes [null] are invalid for category MLB108744"},{"code":"item.variations.attribute_combinations.missing","message":"You cannot create a variation without attribute_combinations."},{"code":"item.variations.attribute_combinations.missing","message":"You cannot create a variation without attribute_combinations."},{"code":"item.variations.attribute_combinations.missing","message":"You cannot create a variation without attribute_combinations."},{"code":"item.variations.attribute_combinations.invalid","message":"Attributes [null] do not allow_variations for category MLB108744. Is not possible varying over them."},{"code":"item.pictures.variation.quantity","message":"Every variation must have between 1 and 6 pictures."},{"code":"nullable","message":"Property variation.price cannot be null"},{"code":"nullable","message":"Property variation.price cannot be null"},{"code":"nullable","message":"Property variation.price cannot be null"}]}

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