• 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

sua variável está com o conteúdo errado.

picture_ids:https://...jpg

Se são IDs não podem conter URL.
Reveja o exemplo de como cadastrar um item com variação e as suas variáveis.

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

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