• 0
faloi

Agregar variantes a una listing existente

Question

Hola! Estoy intentando crear nuevas variations en listings existentes pero no sé bien cómo debería ir el JSON, y tampoco encontré nada al respecto en el site de developers.

 

Si bien pude hacerlo andar lo que no logro es crear una variation con una nueva imagen, ya que ignora el campo "pictures". Entonces me imagino que yo tendría que:

 

1- de alguna manera crear la picture, por ejemplo con un POST items/{itemId}/picturesEsto lo probé y falló:

//Request
{
  "source": "http://www.mis-dibujos-favoritos.com/Images/Large/Heroes-para-ninos-Troll-face-437429.png"
}

//Response
{
    "message": "id was not found or was not valid.",
    "error": "id.invalid",
    "status": 400,
    "cause": []
}

2- asumiendo que hago andar la request anterior y que me devuelve un picture_id válido, crear la variation que me interesa

 

Alguna ayuda sobre esto? Gracias!

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Por si a alguien le sirve, completo el ejemplo suponiendo que ya había variantes. Lo que hay que hacer es incluir también las viejas pictures en el array:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d '{
    "pictures": [
        {
            "id": "MLA6712993380_072014"
        },
        {
            "source": "http://www.data-arg.com.ar/images/1344004295-mercadolibre.jpg"
        }
    ],
    "variations": [
        {
            "id": 6487051582,
        },
        {
            "id": 6487051583,
            "picture_ids": [
                "http://www.data-arg.com.ar/images/1344004295-mercadolibre.jpg"
            ]
        }
    ]
}' https://api.mercadolibre.com/items/{item_id}?access_token=$ACCESS_TOKEN

Share this post


Link to post
Share on other sites
  • 0

Bueno finalmente pude hacerlo funcionar, pero con una solución que está lejos de ser ideal.

  1. Me fijo qué imagenes tengo que subir y las subo una por una utilizando el endpoint POST /pictures. Esto me toma 2P requests, P a mi hosting de imagenes para bajar cada picture y a Meli para subirla, siendo la cantidad de pictures que tenga la variation
  2. Una vez subidas, tengo que asociarlas con la listing, endpoint POST /items/MLAXXX/pictures. Otras requests
  3. Finalmente, creo la nueva variation, endpoint PUT /items/MLAXXX. Acá es una sola request

Sumando todo esto, para crear una variante con 4 fotos termino haciendo: 2 * 4 + 4 + 1 = 13 requests, lo cual es muy muy muy feo. Agradezco si alguien puede darme una mano para mejorar alguno de todos esos pasos!

Share this post


Link to post
Share on other sites
  • 0

Buenas, hay otra forma de hacerlo que consiste en agregar la url con la imagen a subir tanto en al array de pictures del item, como en el array de picture_ids de la variante, y hacer un PUT a /items/{item_id} con tu access_token.

 

Por ejemplo:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d '{
    "pictures": [
        {
            "source": "http://www.data-arg.com.ar/images/1344004295-mercadolibre.jpg"
        }
    ],
    "variations": [
        {
            "id": 6487051583,
            "picture_ids": [
                "http://www.data-arg.com.ar/images/1344004295-mercadolibre.jpg"
            ]
        }
    ]
}' https://api.mercadolibre.com/items/{item_id}?access_token=$ACCESS_TOKEN
 
Saludos!

Share this post


Link to post
Share on other sites
  • 0
I'm with same problem, but I created a similar listing and used code to add in old listing. 
The problem: I want put 10 variations in my listing.
Without old items the erros is that I can't delete existent items that have bids.
I tried add new items using site, but the system don't "show add new item" when I have 6 variations.
 
With old variations the API show error "item.attribute_combinations.not_modifiable"
So, my array is:

$novo = array( 
 
"variations" => array(
array(
 "id" => 7394404802,
 "price" => 22.9,
 "available_quantity" => 6,
 "picture_ids" => array(
"20939-MLB20200506414_112014",
"20965-MLB20200506431_112014",
"20925-MLB20200506454_112014"
 ),
 "seller_custom_field" => "300z5pt"
),
array(
 "id" => 7394404805,
 "price" => 22.9,
 "available_quantity" => 7,
 "picture_ids" => array(
"20980-MLB20200506858_112014",
"20961-MLB20200506869_112014"
 ),
 "seller_custom_field" => "300z5bc"
),
array(
 "id" => 7414907774,
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21086-MLB20202391370_112014",
"21036-MLB20202391386_112014"
 ),
 "seller_custom_field" => "300z5vm"
),
array(
 "id" => 7414907777,
 "price" => 22.9,
 "available_quantity" => 4,
 "picture_ids" => array(
"21099-MLB20202392529_112014",
"21060-MLB20202392545_112014"
 ),
 "seller_custom_field" => "300z5vd"
),
array(
 "id" => 7414907780,
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21021-MLB20202392651_112014"
 ),
 "seller_custom_field" => "300z5rx"
),
array(
 "id" => 7414907783,
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21031-MLB20202399893_112014"
 ),
 "seller_custom_field" => "300z5ou"
),
 
array(
 "id" => 7428525595, 
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21046-MLB20203687256_112014",
"21064-MLB20203687753_112014"
 ),
 "seller_custom_field" => "300z5ae"
),
 
array(
 "id" => 7428525598,
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21086-MLB20203687821_112014",
"21093-MLB20203686472_112014"
 ),
 "seller_custom_field" => "300z5ac"
),
array(
 "id" => 7428525601,
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21086-MLB20203687446_112014"
 ),
 "seller_custom_field" => "300z5am"
),
array(
 "id" => 7428525604,
 "price" => 22.9,
 "available_quantity" => 5,
 "picture_ids" => array(
"21016-MLB20203688610_112014",
"21051-MLB20203688646_112014"
 ),
 "seller_custom_field" => "300z5rs"
)
),
"attribute_combinations" => array(
 array(
 array(
 "id" => "33000",
 "value_id" => "52049"
),
array(
 "id" => "23000",
 "value_id" => "21993",
  )
),
 
array(
array(
 "id" => "33000",
 "value_id" => "52055"
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
),
array(
array(
 "id" => "33000",
 "value_id" => "51998"
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
),
 
array(
array(
 "id" => "33000",
 "value_id" => "52019"
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
),
array(
array(
 "id" => "33000",
 "value_id" => "52047"
),
array(
 "id" => "23000",
 "value_id" => "21993",
)
),
array(
array(
 "id" => "33000",
 "value_id" => "52012"
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
),
 
array(
array(
 "id" => "33000",
 "value_id" => "52040"
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
  ),
  array(
array(
 "id" => "33000",
 "value_id" => "52031"
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
),
array(
array(
 "id" => "33000",
 "value_id" => "52007"
),
array(
 "id" => "23000",
 "value_id" => "21993",
)
),
array(
array(
 "id" => "33000",
 "value_id" => "51994",
),
array(
 "id" => "23000",
 "value_id" => "21993"
)
)
)
);
 

I am using too much force?

Share this post


Link to post
Share on other sites
  • 0

me pasa lo mismo! 

trate la solucion que dijo Florencia, pero tampoco pude... me dice que la propiedad pictures_id es invalidad... 

para subirla por primera vez, sale todo ok, pero para agregar nuevas variaciones es un calvario jajaja.

algun otro intento que pueda hacer?

Share this post


Link to post
Share on other sites
  • 0
On 8/7/2017 at 5:43 AM, JonathanPHP said:

me pasa lo mismo! 

trate la solucion que dijo Florencia, pero tampoco pude... me dice que la propiedad pictures_id es invalidad... 

para subirla por primera vez, sale todo ok, pero para agregar nuevas variaciones es un calvario jajaja.

algun otro intento que pueda hacer?

Hola amigo, yo estoy igual sin poder subir el item, solo una observacion es picture_id

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...