尚未偵測到更新。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.