• 0
Felipe

Atributos value_name e value_id

Question

Estou tentando entender a parte dos Atributos, mas não estou entendo a lógica do  value_name e value_id para post/put na api.

No exemplo mostra:

"attributes": [{
			"id": "COLOR",
			"value_id": "52049"
		},
		{
			"id": "VOLTAGE",
			"value_name": "198813"
		},
		{
			"id": "DIAMETER",
			"value_id": “-1”,
			"value_name": null
		}

 ]

 

O ID, é fácil de identificar, a parte que não estou entendendo value_id e value_name... eu sei que existem alguns atributos que possuem valores com ids já setados, mas não compreendi a ideia de uma hora usar o value_name e ou o value_id? O que devo levar em consideração para saber a hora de usar cada um deles?

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0
58 minutes ago, gbandoni said:

Resposta simples , se a atributo tem uma lista de opções tu usa value_id , se não tiver , value_name . As opções podem ser lidas fazendo um get em category

Grato... entendi... geraria erro se tentasse enviar as duas opções? apenas na situação de N/A... pois tenho categorias que aceitam outros valores, sem ser os IDs já setados...

Edited by Felipe

Share this post


Link to post
Share on other sites
  • 0
55 minutes ago, Felipe said:

Grato... entendi... geraria erro se tentasse enviar as duas opções? apenas na situação de N/A... pois tenho categorias que aceitam outros valores, sem ser os IDs já setados...

você deve pesquisar as opções disponíveis na categoria antes de enviar

Share this post


Link to post
Share on other sites
  • 0
12 hours ago, Felipe said:

Grato... entendi... geraria erro se tentasse enviar as duas opções? apenas na situação de N/A... pois tenho categorias que aceitam outros valores, sem ser os IDs já setados...

Você sempre precisa consultar a categoria porque elas mudam muito sem avisar

Vou pegar um exemplo (Esculturas de bronze) que é uma categoria cheia de esquisitices

https://api.mercadolibre.com/categories/MLB40186/attributes

Veja esse atributo

    {
        "id": "CHARACTER",
        "name": "Personagem",
        "tags": {
            "catalog_required": true
        },
        "hierarchy": "PARENT_PK",
        "relevance": 1,
        "value_type": "string",
        "value_max_length": 255,
        "values": [
            {
                "id": "2489096",
                "name": "Mãe de Jesus"
            },
            {
                "id": "2489097",
                "name": "Cavalo"
            },
            {
                "id": "2489098",
                "name": "Dom Quixote"
            },
            {
                "id": "2489099",
                "name": "Touro"
            },
            {
                "id": "2489100",
                "name": "Buda"
            }
        ],
        "attribute_group_id": "OTHERS",
        "attribute_group_name": "Outros"
    }

Veja que o value_type dele é "string" e mesmo assim ele tem opções nesse caso se tu anunciar uma estatua de touro tu deve informar value_id , se voce estiver vendendo uma sailor moon você vai usar value_name

 

 

    {
        "id": "ARTWORK_TYPE",
        "name": "Tipo de obra",
        "tags": {
            "catalog_required": true
        },
        "hierarchy": "PARENT_PK",
        "relevance": 1,
        "value_type": "list",
        "values": [
            {
                "id": "2489101",
                "name": "Original"
            },
            {
                "id": "2489102",
                "name": "Réplica"
            }
        ],
        "attribute_group_id": "OTHERS",
        "attribute_group_name": "Outros"
    }

Veja que esse atributo é do tipo "list" . Se tu informar value_name ele pode recusar ou vai ignorar (ja tive os dois casos) Aqui voce sempre informa value_id

 

    {
        "id": "MATERIAL_TYPE",
        "name": "Tipo de material",
        "tags": {
            "fixed": true
        },
        "hierarchy": "FAMILY",
        "relevance": 1,
        "value_type": "string",
        "value_max_length": 255,
        "values": [
            {
                "id": "2489113",
                "name": "Bronze"
            }
        ],
        "attribute_group_id": "OTHERS",
        "attribute_group_name": "Outros"
    }

Por último olha esse atributo. Ele é do tipo string o que indicaria que você poderia colocar o que quisesse como value_name , certo ?

 

Errado

Veja que o produto tem em tags fixed = true . O que significa que o atributo é somente leitura (afinal essa é a categoria "estatua de bronze". Se tu informar um value_id aqui diferente de "2489113" ou um value_name diferente de Bronze ele vai retornar um erro. Dependendo da categoria não informar esse atributo , mesmo fixo , gera uma warning. Outros ele adiciona sozinho

Edited by gbandoni
salvei antes da hora

Share this post


Link to post
Share on other sites
  • 0

@gbandoni Em relação ao último exemplo, como uso apenas categorias específicas, quando eu retornava a TAG fixed: true , eu nem mostrava o SELECT dela, pois na API diz:

  • fixed: indica que há um valor fixo para a categoria e todos os itens postados nesta seção terão esse valor. Por exemplo, se você está vendendo um Micro-ondas na categoria MLB232411 correspondente a Micro-ondas -> Outras Marcas -> 18 Litros, esta possui o atributo VOLUMEN_CAPACITY com os valores 18 Litros, 20 Litros, etc., mas sabemos que para essa categoria o valor adequado para o atributo é 18 Litros, por isso não é necessário que você envie no momento da postagem porque nós vamos preenchê-lo automaticamente.

 

Já a TAG "catalog_required": true , mesmo não tendo nenhuma informação dela na API, eu tenho uma categoria que tem ela, e ela é obrigatória de preenchimento, mas em meu caso não possuí valores, tenho que adicionar um ano qualquer... talvez seja, não tem valores (NAME), qualquer informação de acordo com o formato, tem valores, o ID deve ser digitado...

 

E quando não tem nada especificado nas TAGS, eu coloco como se fosse obrigatório o preenchimento, e neste caso, a categoria mesmo tendo VALUES especificados, elas aceitam outras entradas.

 

 

 

Share this post


Link to post
Share on other sites
  • 0
4 hours ago, Felipe said:

@gbandoni Em relação ao último exemplo, como uso apenas categorias específicas, quando eu retornava a TAG fixed: true , eu nem mostrava o SELECT dela, pois na API diz:

  • fixed: indica que há um valor fixo para a categoria e todos os itens postados nesta seção terão esse valor. Por exemplo, se você está vendendo um Micro-ondas na categoria MLB232411 correspondente a Micro-ondas -> Outras Marcas -> 18 Litros, esta possui o atributo VOLUMEN_CAPACITY com os valores 18 Litros, 20 Litros, etc., mas sabemos que para essa categoria o valor adequado para o atributo é 18 Litros, por isso não é necessário que você envie no momento da postagem porque nós vamos preenchê-lo automaticamente.

tags fixas não podem ser alteradas, então você está fazendo certo nesse ponto. mas o que o @gbandoni disse foi a respeito de como trabalhar com id e name, ignore a parte dos demais detalhes, foi só um exemplo

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