尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Paso 1: Crear la base de datos en Supabase 1. Entrá a https://supabase.com y abrí tu proyecto ecommanager 2. En el menú izquierdo hacé clic en SQL Editor 3. Hacé clic en New query 4. Copiá TODO el contenido del archivo supabase-schema.sql y pegalo ahí 5. Hacé clic en Run (o Ctrl+Enter) 6. Deberías ver "Success. No rows returned" — eso está perfecto Paso 2: Subir el proyecto a GitHub查看完整 README ↗
ecommanagersupabase-schema.sql y pegalo ahíecommanagerecommanager| Variable | Valor |
|---|---|
MELI_CLIENT_ID | 5130572653999156 |
MELI_CLIENT_SECRET | (tu secret key de MELI) |
MELI_REDIRECT_URI | https://TU-PROYECTO.vercel.app/api/meli/callback |
SUPABASE_URL | https://ulhziakmuwjdkbypwxpz.supabase.co |
SUPABASE_ANON_KEY | (tu anon key) |
SUPABASE_SERVICE_KEY | (tu service role key) |
⚠️ Reemplazá
TU-PROYECTOpor el nombre real que te dio Vercel (ej:ecommanager-abc123)
EcomManagerhttps://TU-PROYECTO.vercel.app/api/meli/callbackhttps://TU-PROYECTO.vercel.app/api/meli/notifyhttps://TU-PROYECTO.vercel.app/api/meli/notify, se registra la venta y se descuenta el stockComo las credenciales fueron compartidas por chat, conviene regenerarlas:
Después actualizalas en Vercel → Settings → Environment Variables
npm install
npm test
Abren el CRM en un Chromium con la API mockeada y lo manejan como lo maneja el usuario, que es
la única forma de verificar la lógica: el SPA es un solo public/index.html sin módulos que
importar. Detalle en tests/README.md.
Para registrar lo que no entra por una venta: el packaging, el envío que pagás por un cambio o una devolución, los rendimientos de la cuenta de Mercado Pago, un reintegro de MELI.
Antes de usarla hay que crear las tablas una sola vez:
supabase/migrations/20261008000000_add_movimientos.sqlDespués de eso, en el menú lateral aparece Finanzas → 💵 Gastos e ingresos:
Dónde impacta:
ventas − comisiones − costo productos − envíos − costos fijos − otros gastos + otros ingresos. El desglose de "Ganancia neta real (con ads)"
también los lista, y salen en el PDF.Los costos fijos mensuales (Vercel, BPS, IVA mínimo...) siguen cargándose en Información del negocio: son una cuota mensual que se prorratea por período, no un movimiento con fecha propia.
Para los productos que no se vuelven a comprar: el que ya está en cero y no se importa más, y el que todavía tiene stock pero no se repone cuando se termine.
Antes de usarlo hay que agregar las columnas una sola vez:
supabase/migrations/20261008010000_add_motivo_discontinuado.sqlSi todavía no corriste la migración, el botón funciona igual (el producto queda descatalogado) pero el motivo no se guarda, y la pestaña ⛔ te avisa qué archivo falta.
Cómo se usa: en Stock, el botón ⛔ de cada fila abre el formulario y pide un motivo. Los motivos son: poca venta, poco margen de ganancia, producto problemático, no se consigue más, reemplazado por otro, no competitivo en precio y otro (con aclaración). El motivo es obligatorio: es lo único que después permite ver un patrón. Se puede agregar una aclaración libre y cambiar la fecha.
Para corregir el motivo de uno ya descatalogado, hacé clic en su badge de la columna Estado. Con ♻️ vuelve al catálogo y se le borra el motivo.
Qué cambia cuando un producto está descatalogado:
El análisis, en la pestaña ⛔ Discontinuados:
Los productos que ya estaban descatalogados de antes aparecen como "Sin motivo registrado": se les puede poner el motivo a mano desde el badge de la columna Estado.
Para el cliente que pide algo que está agotado: se lo anota con el SKU que espera y, cuando llega la importación que lo trae, el CRM te lo marca para que le mandes el WhatsApp.
Antes de usarla hay que crear la tabla una sola vez:
supabase/migrations/20261029000000_add_avisos_stock.sqlSi todavía no corriste la migración, el resto del CRM funciona igual y la pestaña 🔔 te avisa qué archivo falta.
Anotar a un cliente: en Clientes, el botón 🔔 de cada fila. Buscás el producto por SKU o por nombre, ponés cuántas unidades quiere y una nota opcional ("lo quiere en negro"). Si el cliente no tiene teléfono te lo pide ahí mismo y lo guarda en su ficha, porque es a donde le va a llegar el aviso. Un cliente puede esperar varios productos, pero no el mismo dos veces mientras el aviso siga abierto. El botón muestra cuántos productos espera y se pone azul cuando alguno ya llegó.
Cuándo se dispara: cuando una importación pasa a recibida (✅ Marcar llegada en Importaciones), todos los clientes que esperaban alguno de sus SKUs pasan a 📲 Para avisar, y el aviso de llegada te dice cuántos son. Un ajuste de stock a mano, una devolución o una venta cancelada no disparan nada: lo que cuenta es que entró mercadería nueva.
Avisar: en Stock → 🔔 Waitlist están todos los productos que alguien espera, agrupados por SKU, con un filtro por SKU y otro por estado:
Dentro de cada SKU el que se anotó primero aparece primero, que es a quien corresponde avisarle antes si llegan pocas unidades.