Un starter con la parte difícil ya resuelta: tokens que se renuevan solos y sin pisarse, avisos que aguantan duplicados y desorden, y órdenes que siempre quedan en su último estado.
El núcleo es gratis y de código abierto (MIT). La edición Pro se paga una sola vez.
// app/api/meli/notifications/route.ts export async function POST(req: NextRequest) { const parsed = parseNotification( await req.json(), applicationId()); if (!parsed.ok) return NextResponse.json({ ok: false }); // 200 enseguida; la orden se lee de la API después after(() => coalescer.run(key, () => processNotification(parsed.notification, deps))); return NextResponse.json({ ok: true }); } // lib/server.ts: una sola vez por orden export async function onOrderPaid(order) { // mail, stock, factura… }
Conectar una cuenta lleva una tarde. Lo que lleva semanas (y aparece en producción, de noche) es mantenerla conectada y no perder ninguna venta.
VentaKit lo renueva solo, con una hora de margen, antes de cada pedido. Si igual llega un 401, renueva una vez y repite el pedido.
Dos renovaciones a la vez y el vendedor queda desconectado (invalid_grant). Hay una sola renovación en curso por vendedor; en la Pro, también entre instancias.
Los avisos de Mercado Libre no vienen firmados. Se valida application_id y la orden se lee siempre de la API, con el token del vendedor, verificando que sea suya.
Diez avisos de la misma orden se juntan en una lectura. Una lectura vieja nunca pisa una nueva: se guarda solo si last_updated es más reciente.
onOrderPaid se llama una sola vez, cuando la orden pasa a pagada. Ahí va tu mail, tu descuento de stock o tu factura.
Si tu servidor estuvo caído, la orden queda vieja. En la Pro, un cron relee las órdenes recientes de cada vendedor y las pone al día.
Pago único, sin suscripción. Proyectos ilimitados, propios o de clientes.
Para una app con una instancia.
state, por paísRetry-After y 401 → renovarPara un desarrollador.
Para todo el equipo de una agencia o empresa.
¿Preferís no integrarlo vos? Lo integro yo en tu proyecto o en el de tu cliente: escribime.
Argentina, Brasil, México, Uruguay, Chile, Colombia y Perú. El país se elige con una variable (MELI_SITE_ID).
La conexión de cuentas de vendedores y las órdenes (tópico orders_v2). Preguntas, publicaciones, envíos y stock todavía no: si los necesitás, escribime y los sumo.
No. Es una app de Next.js estándar: corre en Vercel, en un VPS o en Docker. El cron de la Pro se dispara desde GitHub Actions (viene listo), Vercel Cron o cualquier scheduler.
Postgres 13 o superior: Neon, Supabase, Vercel Postgres o el tuyo. Las migraciones son archivos SQL comunes.
Sí, con usuarios de prueba de Mercado Libre: conexión, compra, aviso, renovación del token y conciliación, en una demo con Postgres.
Sí, en proyectos ilimitados. Lo que no se puede es revenderlo o publicarlo como plantilla.
No. Es un proyecto independiente, no afiliado ni avalado por Mercado Libre.