• 0
Sign in to follow this  
Eduardo

Envio de Atributos pela API

Question

Boa noite, estou tentando enviar via API alguns atributos que em minha aplicação são descritos como opcionais, como por exemplo se o veículo tem Alarme. 

Estou enviando da mesma forma como os demais atributos como transmissão, cor, etc... porém quando envio o atributo HAS_ALARM por exemplo a API me retorna esse erro, abaixo, e mesmo passando os valores pontuados na resposta da API o sistema não envia as informações e dessa forma os campos de checkbox no formulário de edição no ML não ficam selecionados.

Attribute HAS_ALARM has an invalid value (null). Allowed values are [242084, 242085].

Gostaria de saber se alguem já passou por isso, onde eu encontro explicação clara e objetiva sobre essa questão:

Estou passando o seguinte formato para a API:

array(
      'id'            => 'HAS_ALARM',
      'value_name'    => 'Alarme'
)

Obrigado.

 

Edited by Eduardo

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

Os valores possíveis para dizer se um veículo tem alarme ou não, são:

"values": [
      {
        "id": "242084",
        "name": "Não",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sim",
        "metadata": {
          "value": true
        }
      }
    ],

O correto seria enviar

array(
      'id'            => 'HAS_ALARM',
      'value'    => '242085'
)

Para obter a lista completa de atributos e valores, você pode fazer um GET

curl https://api.mercadolibre.com/categories/CATEGORY_ID/attributes

Nos avise sobre o resultado. :27_sunglasses:

Abraços,
Wesley.

Share this post


Link to post
Share on other sites
  • 0

Olá ,

 

eu não trabalho com veículos, mas em produtos é assim:

      "attribute_combinations"=> array(
        array(
          "name"=> "Cor",	          
          "value_name"=> "Preta"
        )
      ),

Então ACHO que o seu é assim:
 

array(
      'name'            => 'HAS_ALARM',
      'value_name'    => 'Alarme'
)
ou
array(
      'id'            => 'HAS_ALARM',
      'value_name'    => true
)
ou
array(
      'id'            => 'HAS_ALARM',
      'value_name'    => 1
)

tente mudar entre o name e o id

Share this post


Link to post
Share on other sites
  • 0

Pessoal, muito obrigado pela ajuda de vocês.

Consegui resolver o problema, basicamente para campos do tipo boolean como esses, basta que junto ao array que eu já estava passando no meu exemplo acima eu enviasse o parâmetro value_id com uma string '242085' que caracteriza que o atributo deve ser marcado. 

 

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
Sign in to follow this