ec-cube
EC‑CUBE는 일본에서 가장 많이 사용되는 전자상거래 솔루션입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Simulador POS: pedidos, cocina, mostrador, caja y tickets de boleta/factura en modo simulación (listo para SUNAT)
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Demo web de un sistema de punto de venta para negocios en Perú: toma de pedidos, pantalla de cocina/almacén, pantalla de mostrador, caja y emisión de boletas y facturas en modo simulación (cada ticket dice “TICKET DE SIMULACIÓN · SIN VALOR TRIBUTARIO”). La arquitectura queda lista para conectar la API de SUNAT (o un OSE/PSE).
Incluye dos empresas de ejemplo que se cambian desde cualquier pantalla:
| Empresa | Rubro | Particularidades |
|---|---|---|
| 🐟 El Muelle · Cevichería | Restaurante | Mesas, para llevar, delivery; cocina fría, caliente y bar; nivel de picante y notas |
| 👕 Urbana Store | Tienda de ropa | Tallas, colores, control de stock, bolsas con ICBPER, orden de despacho |
| Pantalla | Archivo | Qué hace |
|---|---|---|
| Inicio | index.html | Elegir empresa, abrir pantallas, cargar pedidos de ejemplo |
| Pedidos y cobro (POS) | pos.html | Catálogo, variantes, descuentos, “enviar a cocina y cobrar después” o cobrar al momento; boleta / factura / nota de venta; efectivo con vuelto, Yape, Plin, tarjeta, transferencia |
| Cocina / Almacén | cocina.html | Pedidos en tiempo real por estación, cronómetro con alertas, marcar ítems o pedidos listos, reimprimir comanda |
| Mostrador | mostrador.html | Vista cliente (números en preparación / listos, anuncio con voz) y vista personal (entregar pedidos, ir a cobrar) |
| Caja y comprobantes | caja.html | Apertura y cierre, arqueo, reportes X y Z, reimpresión, anulación con nota de crédito, JSON por comprobante, exportación CSV y lote JSON |
| Configuración | config.html | Datos del emisor (RUC, razón social…), IGV, series, ancho de ticket 80/58 mm, productos y stock, respaldo |
Las pantallas se sincronizan al instante entre pestañas y ventanas del mismo navegador (por ejemplo, un monitor para el POS, otro para cocina y otro para el mostrador).
Al emitir, aparece una impresora térmica simulada que imprime el comprobante, la comanda y el ticket con el número de pedido. El botón “Imprimir en impresora real / PDF” envía el ticket a la impresora del sistema (térmica de 80 mm o PDF).
El ticket incluye lo que exige la representación impresa: datos del emisor, serie y correlativo, cliente, detalle, operación gravada, IGV, ICBPER, importe en letras, forma de pago, código QR con el formato SUNAT y hash; además, la leyenda de simulación y una marca de agua.
No requiere instalación: es HTML, CSS y JavaScript puro.
# opción 1: abrir index.html directamente en el navegador
# opción 2: servidor local
python -m http.server 8080 # y abrir http://localhost:8080
Para una demostración rápida: Inicio → “Cargar pedidos de ejemplo” → “Abrir las 3 pantallas principales”.
RUC de prueba válido para facturas: 20555666773.
Todo el envío pasa por js/facturador.js:
Facturador.payload(comprobante, empresa) arma un JSON con la estructura de los PSE más usados en Perú (inspirado en UBL 2.1).Facturador.emitir() hoy simula la firma, el envío y el CDR.Facturador.enviarReal(payload) (SUNAT SEE, OSE o PSE) y se cambia Facturador.modo = 'PRODUCCION'. El POS, la caja y los tickets no cambian.Sin backend, la app funciona en modo local: se sincroniza solo entre pestañas del mismo navegador. Con Supabase se sincroniza en tiempo real entre PC, tablet, celular y TV.
supabase/schema.sql.js/backend-config.js.La barra superior muestra el estado: 💻 Local, 🟢 <sala> (en línea) o 🔴 Offline (los cambios se reenvían al reconectar).
Salas: cada link ?sala=<código> es un espacio de datos independiente. Desde la portada se crea una sala por cada empresa interesada y se comparte su link; todos los dispositivos que lo abran ven los mismos pedidos.
Cómo funciona (js/sync.js): cada pedido, comprobante y producto es un registro aparte en la tabla registros, así que la cocina marcando un pedido y la caja cobrando otro no se pisan. Al abrir se descargan los datos de la sala, al guardar se envía solo lo que cambió, y Realtime distribuye los cambios a las demás pantallas.
Seguridad de la demo: quien tenga el link de una sala puede ver y modificarla. Para producción se agregan usuarios por empresa (Supabase Auth + RLS) y el envío a SUNAT se hace desde una Edge Function, para que el certificado digital nunca llegue al navegador.
index.html pos.html cocina.html mostrador.html caja.html config.html
css/app.css estilos (tema glass)
css/ticket.css ticket térmico e impresora simulada
js/datos-demo.js empresas y catálogos de ejemplo
js/store.js estado compartido (caché local) y salas
js/sync.js sincronización en tiempo real con Supabase
js/backend-config.js URL y clave pública de Supabase
supabase/schema.sql tabla, políticas y Realtime
js/facturador.js adaptador de facturación electrónica (simulado)
js/ticket.js plantillas de comprobante, comanda, turno y reportes X/Z
js/utils.js formato, validaciones, número a letras, UI común
js/demo.js generador de pedidos de ejemplo
js/pos.js, cocina.js, mostrador.js, caja.js, config.js
⚠️ Los RUC, DNI y clientes son ficticios. Los comprobantes generados no tienen validez tributaria.