• 0
Leonardo Garcia

Publicacion de Items y campos especiales

Question

Edito completamente porque con prueba y el /item/validate y el error que tira pude descifrar la mayoria.

Ahora bien estoy intentando setear envios gratuitos y no estoy pudiendo.

Les muestro Que estoy enviando

Array
(
    [title] => Prueba
    [category_id] => MLA12666
    [price] => 123
    [currency_id] => ARS
    [available_quantity] => 1
    [buying_mode] => buy_it_now
    [listing_type_id] => silver
    [condition] => new
    [description] => 
    [warranty] => 
    [pictures] => Array
        (
        )

    [accepts_mercadopago] => 1
    [non_mercado_pago_payment_methods] => Array
        (
            [0] => Array
                (
                    [id] => MLAMO
                )

        )

    [shipping] => Array
        (
            [mode] => me2
            [local_pick_up] => 
            [free_shipping] => 1
            [costs] => 
            [methods] => Array
                (
                    [0] => Array
                        (
                            [id] => 800
                        )

                    [1] => Array
                        (
                            [id] => 73328
                        )

                    [2] => Array
                        (
                            [id] => 73330
                        )

                )

            [free_methods] => Array
                (
                    [0] => Array
                        (
                            [id] => 73328
                            [rule] => Array
                                (
                                    [free_mode] => country
                                    [value] => 
                                )

                        )

                )

        )

)

Y estio es lo que me devuelve

 

Array
(
    [body] => stdClass Object
        (
            [message] => Validation error
            [error] => validation_error
            [status] => 400
            [cause] => Array
                (
                    [0] => stdClass Object
                        (
                            [code] => item.shipping.methods.invalid
                            [message] => Shipping method ids [73328] are not allowed for shipping mode [me2]
                        )

                )

        )

    [httpCode] => 400
)

El error solamente me sale cuando agrego el 73328 en free_methods, si no le pongo envio gratuito me da 204 el /item/validate.

Porque me da ese error si me lo da en los free Si busco los shipping de la categoria MLA12666

[ { "mode" : "me2",
    "shipping_attributes" : { 
        "costs" : "not_allowed",
        "dimensions" : "clear",
        "free" : { "accepted_methods" : [ 
                73328,
                73330,
                800,
                501045
              ],
            "methods" : "optional",
            "rules" : [ { 
                  "default" : true,
                  "free_mode" : "country",
                  "free_shipping_flag" : true,
                  "value" : null
                } ]
          }
      }
  },
  { 
    "mode" : "not_specified",
    "shipping_attributes" : { 
        "costs" : "not_allowed",
        "dimensions" : "optional",
        "free" : { "accepted_methods" : [  ],
            "methods" : "not_allowed",
            "rules" : [  ]
          }
      }
  }
]

Gracias de Antemano

Edited by Leonardo Garcia

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Leandro un capo, me ayudo hasta resolver y lo dejo aqui escrito por si alguien cae mas en un problema como este.

 

PHP es un lenguaje con variables de tipo variable.

El problema surgia cuando se enviaban los ID de los shipping modes, que son numericos y al transformarlo a json se enviaba como texto, por eso nunca validaba.

 

RECUERDEN HACER (int)$variable A LOS CAMPOS NUMERICOS DE ID PARA NO PERDER TIEMPO COMO YO!!!

Gracias Leandro por toda la ayuda

Share this post


Link to post
Share on other sites
  • 0

Hola Leonardo, te recomiendo que migres a la nueva versión de la estructura de Free Shipping para que no tengas que trabajar 2 veces en lo mismo, aqui la documentación:

http://developers.mercadolibre.com/free-shipping/

 

algunas sugerencias:

- Asegurate de que tu usuario tiene habilitado mercado envíos 2

- Sería mucho mas legible si envías el Json del post para identificar mas rápido los errores

Share this post


Link to post
Share on other sites
  • 0

Gracias Leandro por contestar,te extiendo aqui.

 

1) El usuario tiene habilitado me2

2) La estructura que estoy mandando de free shipping es la de la nueva documentacion en http://developers.me.../free-shipping/

Ahi dice que ofreciendo me1 o 2, vos podes determinar uno de los metodos como envio gratuito
Esta hecho el post como indica en 

How to list an item with free_shipping “country” mode

 

3) El json del post te lo vuelvo a pasar formateado para la mejor lectura
 


{  
   "title":"Prueba",
   "category_id":"MLA12666",
   "price":"100",
   "currency_id":"ARS",
   "available_quantity":"1",
   "buying_mode":"buy_it_now",
   "listing_type_id":"bronze",
   "condition":"new",
   "description":"",
   "warranty":"",
   "pictures":[  

   ],
   "accepts_mercadopago":true,
   "non_mercado_pago_payment_methods":[  
      {  
         "id":"MLAMO"
      }
   ],
   "shipping":{  
      "mode":"me2",
      "local_pick_up":false,
      "free_shipping":true,
      "costs":null,
      "methods":[  
         {  
            "id":"800"
         },
         {  
            "id":"73328"
         }
      ],
      "free_methods":[  
         {  
            "id":"800",
            "rule":{  
               "free_mode":"country",
               "value":null
            }
         }
      ]
   }
}

Si el error mio esta en la combinacion de los methods con los free methods, decime porque no puedo dar pie con bola con esto.

Gracias por tu tiempo

EDITADO: Por supuesto sigue respondiendo ( estoy enviando a '/items/validate', esto tiene algo que ver con este error??? )

{  
   "body":{  
      "message":"Validation error",
      "error":"validation_error",
      "status":400,
      "cause":[  
         {  
            "code":"item.shipping.methods.invalid",
            "message":"Shipping method ids [800] are not allowed for shipping mode [me2]"
         }
      ]
   },
   "httpCode":400
}

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