Fernando Aguirre

Members
  • Content Count

    211
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by Fernando Aguirre

  1. Hola, es un error que se genera cuando la cuenta que dio los permisos sufre algun cambio, como la contraseña, o que por alguna razon una cuenta de operador dio los permisos de uso. Lo que tienes que hacer es revocar los permisos de la cuenta a tu app y volverselos a dar para guardar el nuevo refresh token y token, eso solucionara todo.
  2. Hola. Este no es un error del lenguaje de programacion que uses, no tiene nada que ver. Miren, muchos ya llevamos mucho tiempo trabajando con la API de ML, y es buena, pero estos ultimos meses todo ha estado muy saturado en internet, por lo que las notificaciones de retrasan o en algunos casos no llegan. Igual la recomendacion es que no confies al 100% en las notificaciones, si vas a manejar una o dos cuentas, es rapido y facil crear cron jobs para que esten revisando la informacion que necesiten cada cierto tiempo, por ejemplo, verificar mensajes nuevos, ordenes nuevas, preguntas nuevas, etc. Es una recomendacion de alguien que lleva mas de 2 años en esto.
  3. Hola, esto es lo que hay, lo demas es a prueba y error, lo siento pero asi es esto. https://developers.mercadolibre.com.mx/es_ar/gestiona-ventas#Estado-de-la-orden https://developers.mercadolibre.com.mx/es_ar/envio-de-productos#Estado-del-envío https://developers.mercadolibre.com.mx/es_ar/envio-personalizado#Estados-de-envio-y-transiciones https://developers.mercadolibre.com.mx/es_ar/api-retiro-en-sucursal#Estados-posibles-de-un-pickup Saludos.
  4. Hola. Cuando eres comprador, te dan ciertos puntos cuando realizas compras y asi accedes a distintos beneficios, ese es el significado de esos puntos. Saludos
  5. Hola. Estas usando php? Si es asi hay una libreria en composer https://packagist.org/packages/docta/mercadolibre Te facilita mucho la obtencion de los permisos y ademas ahi me di cuenta que puedes enviar una variable mas en la url para dar los permisos. Puedes utilizar esta variable para enviar lo que tu quieras de informacion, y ya cuando obtengas la respuesta de ml, tambien te va a regresar esta variable ademas de la de code. La variable que te comento se llama "state" y con eso te va a funcionar lo que quieres hacer. Igual si no quieres usar la libreria, solo le agregas a la url para dar los permisos la variable state. Y no hay forma segura de obtener el id de usuario, practicamente cualquiera puede saberlo. Saludos.
  6. Hola amigos. Estoy tratando de obtener los montos retenidos de IVA e ISR por venta, pero en ningun lado me aparecen. He leido y releido la documentacion pero no encuentro algun lado donde obtener esta informacion. En teoria esa informacion debe de existir porque Mercadolibre tiene que saber cuanto retiene exactamente por venta. Gracias de antemano por la ayuda.
  7. Hola. Tienes que leer la documentacion. El endpoint con el que estas tratando de obtener la informacion es para usuarios que le hayan dado permiso a tu app para accesar a su informacion, por lo que no puedes obtener lo que quieres. Si pasas a leer por aqui, ahi esta la respuesta muy clara. https://developers.mercadolibre.com.mx/es_ar/items-y-busquedas#Buscar-items-por-vendedor Solo recuerda, la API no es la que falla, si no nosotros mismos. Saludos.
  8. Hola. Segun recuerdo usan el formato ISO y con la hora de Argentina, pero convertir la hora a la de Mexico esta facil con las mismas funciones del lenguaje que estes usando. Por ejemplo en PHP: $tz = new DateTimeZone('America/Hermosillo');//Aqui vivo, por lo del cambio de horario como comentas. $dh = new DateTime($question->date_created); $dh->setTimeZone($tz); echo $dh->format('Y-m-d H:i:s'); Y asi de facil es hacer el cambio de horario, el mismo lenguaje de programacion se encarga de todo porque en el formato que te da ML te dice la zona horaria: 2017-02-13T03:34:58.707Z por ejemplo, ahi ya el lenguaje con sus funciones entendera que zona horaria es. Saludos (Este codigo lo copie de este post )
  9. Hola, son cuentas Test, basicamente si no las usas como por 1 mes, todo lo referente a ellas desaparece, eso lo dice en la documentacion. Slaudos
  10. Mercadolibre va a tomar como recibida la notificacion cuando tu le respondes con un codigo 200, ahi dice en response que le respondiste con ese codigo, entonces ya no te va a volver a enviar esa notificacion. Esa informacion esta en la documentacion.
  11. Si hay metodos, pero la API no te los va a dar, si quieres por ejemplo, verificar las ventas de un vendedor en especifico, tendrias hacer web scrapping para obtener el numero de ventas al dia, pero es algo complicado de mantener porque ML cambia a cada rato esas cosas para que no hagan esas cosas. Y pueden decir que hay miles de apps que hacen eso, pero nadie sabe sus metodos o como le hacen. Pero si te digo, con la API (con token o no) no se puede hacer lo que pides.
  12. Hola. Para desglosar los costos de envio de una orden teniendo el shipping id solo accesar a esta url https://api.mercadolibre.com/shipments/$ShippingId/costs?access_token= Y ahi, aplicando algo de logica, puedes saber si el envio le costo al comprador, si fue "gratis" y los descuentos que te aplicaron por tu reputacion. Por ejemplo: Ahi dice que el costo real del envio es de $379.99 y al comprador (receiver) no le costo, por lo que descartamos que era envio a cargo del comprador, ahora vemos que si le costo al vendedor, $189.99, donde obtuvo un descuento del 50% por su reputacion, y eso que dice type:mandatory, es porque el envio es "gratis" obligatorio (mandatory), entonces ahora podemos catalogar ese envio como "gratis". En ML hay 3 tipos de envio, 2 que si generan shippingId y otro que no. El que no se genra, obvio es cuando el envio es a cargo del comprador y en este no se crea ningun shippingId. El otro es cuando al comprador le cuesta y le aparece ese costo al momento de querer hacer la compra, donde no es obligatorio el envio gratis para ofrecerlo por el comprador, entonces este podriamos catalogarlo como envio normal. Y esta el envio gratis, que es donde se obliga al vendedor que lo ofrezca y a este mismo se le ofrece un descuento del valor real del envio, para amortizar costos, y a este lo podemos catalogar como envio gratis. Y toda esa informacion sale de ahi de la url que te pase. Solo tendrias que analizar varias ventas para que te quede claro y asegures que asi son los datos. Saludos.
  13. Hola, en la documentacion de la API oficial, se encuentra la solucion. Tu tienes que formatear el link, ya no puedes simplemente pegarlo y que se convierta en link en automatico. Saludos
  14. Hola En la API se encuentra la informacion y un ejemplo de la estructura del array que debes de enviar para que todo funcione correctamente. https://developers.mercadolibre.com.mx/es_ar/mensajeria-post-venta#Crear-mensajes Tu array puede que este mal estructurado y tambien estabas posteando a "/messages" y es "/messages/" creo que por eso te daba el error 500. Y como este post es del 2019 la mensajeria post venta cambio bastante la API. Saludos
  15. Hola, no habia regresado a este mensajes desde aquella vez que respondi hace como 2 años y aun sigue activo. Concuerdo con @mldev aqui el problema no es la API y la documentacion, si no que estan teniendo dudas tan basicas de programacion que la verdad nos hace dudar en si ayudar o no. Es decir todo bien, podemos ayudar, pero si nos dicen que gracias a que copiaron el codigo basico de prueba que les pusimos que con eso resolvieron su problema y que si podemos hacerles mas codigo, algo anda mal. Aqui creo que la mayoria se mete a resolver dudas y a pasar un buen rato, pero tampoco estamos para hacer el trabajo gratis, podemos dar ejemplos para sacarlos del apuro, pero ya implementar algo mas seguro y real para produccion, es parte de ustedes. Y por ejemplo, arriba de mi respuesta esta una pregunta que si como divide en parrafos un texto, puedes usar ciertos tags de html en el texto que enviar, por ejemplo, <br>, y con ese ya daras el brinco de parrafo. Y esto tal vez no esta en la API de ML pero lo aprendi a prueba y error, no hay de otra. Es el tema que le hemos dado mil vueltas, la API de ML no les va a dar todo en charola de oro jajajaja, hay que meterle algo de bussiness logic de nuestra parte. Saludos a todos.
  16. Hola. Vas a tener que hacer algo "fuera del librito" y algo que dirian "una cochinada" pero pues no siempre vas a poder tener todo como lo quisieras. La url donde recibiras las notificaciones de ML tiene que ser publica y la seguridad ya depende de lo que te imagines, y no de lo que diga el framework que uses. Por ejemplo, tienes que confirmar que esa info es para un usuario registrado en tu plataforma, eso es basico, con el user_id haces eso, tambien puedes verificar que el app_id concuerde. Por algun lado yo mismo publique los rangos de ip de los servidores que usa Mercadolibre para las notificaciones, tambien puedes crear un filtro que solo acepte requests de estas ips. A fin de cuentas es tu propio control de seguridad el que vas a crear, ya que mercadolibre no va a enviar a pedirte un token de autorizacion para tu sitio para que el despues te lo envie en cada notificacion que te mande. De echo todas las notificaciones funcionan asi, paypal, woocomerce, stripe, mercadopago. Por ejemplo con paypal tienes que verificar que viene de ellos la notificacion. Entonces vas a tener que salirte un poco del standar, hacer algo "cochino" y crear tus propios controladores de seguridad, y pues yo me llevare un "tu no eres ingeniero por dar esos consejos" ajajjajaj como ya me han dicho por aqui. Pero todo lo que te comento es en buena vibra. Saludos.
  17. Hola Oscar. Esque lo que ML quiere evitar tambien es sobrecargar sus servidores, imaginate la infraestructura gifante que tienen con tanta informacion guardada, ademas no somos los unicos tu y yo consumiendo su API. Ellos quieren las cosas mas simples y que la "Bussines logic" corra por nuestra parte, te sañe mas barato a ti agregar un procesador mas o un 1gb de ram a tu servidor en la nube que gastar tiempo en algo que realmente no van a hacer porque tienen claro sus prioridades y limites. Igual tu servidor no va a tronar por hacer esa iteracion. Aqui siempre lo comento en los foros, la API de ML no esta diseñada para ahorrarnos logica en nuestro codigo, no nos va a dar NUNCA exactamente lo que queremos, eso ya depende de nosotros acomodar la informacion. Igual, la API es publica, gratis, es facil de accesar y usar, practicamente no estas gastando nada para obtener esta informacion valiosa, me parece justo que puedas gastar en agregar mas recursos a tu servidor para manejar la informacion a tu gusto. Saludos.
  18. Hola ¿Cómo le hacen para poder distinguirlas, en especial las de 'meli' ya que existe el tag de 'mshops' pero no existe el tag de 'meli'? Tu mismo lo has dicho, para distinguir una de mercadoshops, ya trae el tag mshop, si una orden lo tiene la catalogas como de mercadoshop y si no lo trae, entonces es una orden normal. Entonces tu iteras en todo el historial de ordenes, vas a poner algo asi: foreach($orders as $order){ if( in_array('mshops', $order->tags) ){ //La orden es de mshops } else { //La orden es normal } } La verdad no se si a eso te referias, pero a eso se referian cuando te dijeron "eso haslo en tu codigo". Saludos
  19. Hola. A la mejor suena algo tonto, pero si verificaste que la url donde recibas las notificaciones es la correcta en los settings de tu app en el sitio de ML? Independientemente si usas CentOs, Debian, CentOs 5 o 6, PHP o lo que sea, el que va a recibir las peticiones Https va a ser el apache o nginx, cualquiera que tengas. Tu puedes usar lo que quieras para montar tu app, solo asegurate que si tu url es https://hola.com sea accesible fuera de tu localhost, y que este bien configurada en tu servidor. Yo por ejemplo uso nginx, php y demas en Linode con CentOs, pero no tiene nada que ver con que no recibas las notificaciones. El error que estas recibiendo ETIMEDOUT o ESOCKETTIMEDOUT significa que ML no recibio respuesta de tu servidor, y por eso fue el timeout. Yo creo que el error va mas en la configuracion de tu servidor que del lado del ML. Y te recomiendo Linode, vultr o digital ocean.
  20. Hola. No es un problema ni nada, es algo normal como te dijeron. Cuando es creada una orden, un item o lo que sea, en ML se ejecuta una serie de pasos hasta el momento en que ya queda definitivo el estado de "X" situacion, y esta serie de pasos generan notificaciones. Por ejemplo, es un ejemplo y no se si aplique a tu caso en especifico y solo te lo explico para que entiendas las notificaciones en la API de ML: Un comprador compra un producto, primer notificacion es de orden creada, la siguiente es de creacion del pago, la siguiente de la acpetacion/rechazo del pago, y por ultimo la creacion de un envio para esa orden, todo este ciclo sucede en 2 o 3 segundos, o en milisegundos y cada evento envia una notificacion, por lo que en un mismo instante puedes recibir 4 notificaciones seguidas de una misma orden. Como controlarlo? en tu codigo tienes que aplicar algun tipo de cola de espera o de procesamiento, para que si llego la primer notificacion, no tomar en cuenta las demas y descartarlas porque ya sabes que contienen la misma informacion. Saludos
  21. Hola. La API esta enfocada a vendedores, por lo mismo de evitar apps clones de Mercadolibre y aqui la cosa es que entre menos se confunda un comprador, es mejor. Igual puedes hacer pruebas con usuarios test y ahi te puedes dar cuenta si llegan o no. Saludos
  22. Hola. Mira lo que te recomiendo es que crees una API en tu servidor principal y de ahi redirecciones toda la informacion a cada dominio distinto de cada cliente. Y como dice MlDev, no debes de crear una app por cada cliente, solo crea una. O no tanto una API en tu servidor, si no que toda la informacion te llegue a tu servidor, y de ahi la reenvies a los sitios personales de cada cliente, que los vas a identificar por sus userId de ML, en tu base de datos tendras algo como cliente - dominio - ml_user_id No es tan complejo el asunto, solo es ponerse a dibujar la estrategia en papel para que todo funcione. Saludos
  23. Hola. Leete la documentacion primero por favor. Ademas si pones informacion personal, mercadolibre automaticamente la va a moderar y eliminar en algunos casos. Saludos.
  24. Hola Jorge. Te recomiendo que leas la documentacion sobre notificaciones. https://developers.mercadolibre.com.mx/es_ar/productos-recibe-notificaciones Si tienes dudas especificas y las cuales consideras que no se encuentra en la documentacion su respuesta, ahi si te podremos ayudar con mucho gusto. Saludos.
  25. Gracias amigo. Si claro, cada quien trabaja con su framweork favorito, laravel, codeigniter, cake, symfony y entre otros. Pero tampoco hay que ponerse tan roñosos cuando no existe una solucion a su medida y si no existe pues habra que crearla y mantenerla. Pueden agarrar el SDK de ML adaptarlo a los PSRs, subirlo a github y utilizarlo con composer y listo, ya sirve para su flujo de trabajo. Y la verdad si uso symfony pero a veces las cosas se ponen complicadas y necesitas salir del apuro con algo rapido, facil y "cochino", entonces tienes que usar ciertas cosillas que no son algo estandarizado. Saludos y feliz programacion.