• 0
FedeS

Problema con "variations" - invalid property type: [variations]

Question

Estoy intentando publicar un item que me pide una variation obligatoria (color), pero no logro que funcione, ya intente de todo.

El codigo que tengo hasta ahora es este:

$item = array(
            "title" => utf8_encode($mltitle),
            "category_id" => $mlcategory,
            "price" => $mlprice,
            ...
            "variations" =>
                array(
                    "attribute_combinations" =>
                    array(
                        "id" => 83000,
                        "value_id" => "82049"
                    ),
                    "price" => $mlprice,
                    "available_quantity" => $mlquantity,
                    "picture_ids" => $mlimage
                )
        );

Pero me tira este error que no logro solucionar:

Array(    [body] => stdClass Object        (            [message] => body.invalid_field_types            [error] => [invalid property type: [variations] expected List but was JSONObject value:                       [available_quantity:2, price:625, picture_ids:https://...jpg, attribute_combinations:[id:83000, value_id:82049]]]            [status] => 400            [cause] => Array                (                )        )    [httpCode] => 400)

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Obrigado Rodrigo, mas nao foi esse o problema.

 

Eu conseguí cadastrar a variação no item colocando mais um array no variations (era só ler e entender o erro: :P expected List but was JSONObject)

 

No "picture_ids" da pra colocar URL mesmo, eu tentei e deu.

 

O code ficou assim:

$item['variations'] = array(
    array("attribute_combinations" => array(
         array("id" => "83000", "value_id" => "92025")
    ),
    "available_quantity" => $mlquantity, 
    "price" => $mlprice, 
    "picture_ids" => $picture_ids
    )
);

Share this post


Link to post
Share on other sites
  • 0

Olá, eu estou com uma dificuldade nesta área. Estou tentando postar variações mas sinceramente não encontrei na documentação como postar as imagens das variantes com URL's, e da mesma forma não encontrei como obter os picture_ids'. Meu código até o momento está formatado dessa forma (com abreviações e formatação para efeito de exemplo):Segue o código submetido ( com alguma formatação e exclusão de variações para efeito de exemplo:

[variations] => Array (
    [0] => Array(
        [attribute_combinations] => Array(
            [0] => Array( [name] => Color , [value_id] => 283157 , [value_name] => Verde-limão )
            [1] => Array( [name] => Tamanho , [value_id] => 26 , [value_name] => 56 )
        )
        [price] => 428.85
        [available_quantity] => 15
        [attributes] => Array(
            [0] => Array ( [id] => CodProd [value_name] => 1 )
            [1] => Array ( [id] => EAN [value_name] => 7010112848349 )
        )
        [sold_quantity] => 0
        [picture_ids] => Array(
            [0] => Array( [source] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_01.jpg' )
            [1] => Array( [source] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_02.jpg' )
            [2] => Array( [source] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_03.jpg' )
        )
    )
)

O código de erro que a API retorna é o seguinte:

 

 [body] => stdClass Object(
            [message] => body.invalid_field_types
            [error] => [invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_02.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_cinza_03.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_cinza_02.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_preto_03.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_03.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_preto_02.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_preto_01.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_cinza_01.jpg], invalid property type: [variations.picture_ids] expected String but was JSONObject value: [source:https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_01.jpg]]
            [status] => 400
            [cause] => Array ()
        )

 

Obrigado.

Share this post


Link to post
Share on other sites
  • 0

Olá Fernando, eu utilizo assim para criar variações.

<?php
    session_start();
    
    require 'meli.php';
    
    $meli = new Meli($_SESSION['$app_id'], $_SESSION['$app_secret'], $_SESSION['access_token'], $_SESSION['refresh_token']);
    
    $p_item_id = 'MLB898123XYZ';
    
    $dataVar = [];
    
    array_push($dataVar, [
            'attribute_combinations' => [
                    [
                            'name' => 'COR',
                            'value_name' => 'BRANCO',
                            'value_id' => null
                    ]
                    
            ],
            'price' => 989.99,
            'available_quantity' => 1,
            'seller_custom_field' => 'SKU-XYZ',
            'picture_ids' => ['937443-MLB25826086985_072017', https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_01.jpg']
    ]
            );
    
    $dataItem['variations'] = $dataVar;
    
    $result = $meli->put("/items/{$p_item_id}", $dataItem, ['access_token' => $_SESSION['access_token']]);
    
    echo "<pre>";
    print_r($result);
    echo "</pre>";
    
    
    
?>

Share this post


Link to post
Share on other sites
  • 0

Oi Sandro, obrigado pela pronta resposta!

Pelo que eu percebo do seu código, você está fazendo uma atualização de um item já cadastrado no ML certo? No meu caso, eu estou inserindo o item pela primeira vez, e não tenho o 'picture_id' das imagens nem o código do anúncio...

Share this post


Link to post
Share on other sites
  • 0

Oi pessoal,

 

O Xsbr em um outro post e também o pessoal de suporte, que respondeu bem rápido deram o caminho. É necessário colocar as URLs na matriz pictures (mantendo o atributo source) no mesmo nível do variations e acrescentar um picture_ids dentro do variation mas só com string:

[pictures] => Array (
    [0] => Array( [source] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_01.jpg' )
    [1] => Array( [source] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_02.jpg' )
    [2] => Array( [source] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_03.jpg' )
)
[variations] => Array (
    [0] => Array(
        ...
        [picture_ids] => Array(
            [0] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_01.jpg'
            [1] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_02.jpg'
            [2] => 'https://flemingmotos.com.br/image/catalog/Produtos/ASW-Racing/capacete_asw_dual_fluor_03.jpg'
        )
    )
)

Obrigado a todos pela ajuda.

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, mldev said:

@sandro.bustamante, @FedeS@Fernando Morais e @rodrigojob, apenas para informar a recomendação do Mercado Livre é que seja respeitada a linguagem da área do fórum, sem problemas responder as perguntas das áreas em espanhol e inglês, porém terá que ser no idioma correto, não poderá ser utilizado o português. abs!

me aponta alguma que eu errei!
Brincadeira :)
mas isto é justamente o que eu faço. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...