Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 GitHubREADME 전문 보기 ↗
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.