Módulo embebible

La caja que va dentro de tu producto, no al lado.

Una etiqueta HTML y tu aplicación tiene punto de venta: catálogo, inventario, turnos, tickets y corte de caja. Con tus colores y en tu dominio — nadie ve una marca que no sea la tuya.

Ticket de Cafetería Norte, folio A-000124: café de grano 500 g ×1 $189.00, leche entera 1 L ×2 $56.00 y pan de masa madre ×1 $85.00.
Totales$330.00
Lo que una hoja de cálculo no hace

El total lo calcula la base de datos, no el navegador

La caja pinta el total mientras el cajero teclea, pero lo que se cobra lo recalcula el servidor con los precios del catálogo, en centavos enteros, dentro de la misma transacción que descuenta el inventario. Nadie puede mandar su propio total.

Dos cajas, una última pieza

La comprobación de existencias viaja dentro de la escritura. Dos cajeros vendiendo la última unidad en el mismo instante pasan cualquier validación del código; aquí uno de los dos rebota siempre.

Reintentar no duplica

Cada ticket lleva una clave desde la primera línea. Si el cobro se corta —la red, el token que caduca— la caja vuelve a mandar la misma clave y el servidor devuelve la misma venta.

El inventario explica su saldo

Nadie escribe la existencia a mano. Cada variación es un asiento con su tipo y su motivo, y «¿por qué quedan 3?» se responde leyendo el libro, no volviendo a contar.

Cómo funciona

Un turno, de principio a fin

01

Abre turno

Cuenta el fondo de caja. Desde ahí el corte se calcula solo.

02

Escanea y cobra

El lector de barras es un teclado. Efectivo, tarjeta o mixto; el cambio sale calculado.

03

Imprime el ticket

Folio consecutivo e impuestos desglosados, desde el navegador. Sin drivers ni hardware especial.

04

Cierra y cuadra

Cuenta el cajón. El sistema dice cuánto debería haber y cuál es la diferencia.

Qué trae

Lo que ya viene resuelto

Catálogo con código de barras

SKU, código, categoría, precio, costo y tasa por producto. Servicios sin inventario y granel con tres decimales.

Cuatro papeles, no tres

Dueño, gerente, cajero y contabilidad. El cajero cobra pero no cambia precios ni ve el histórico ajeno — lo impone la base, no la interfaz.

Ticket sin hardware

Se imprime con el navegador en papel de 80 mm o en carta. Folio consecutivo, impuestos desglosados, tu pie de ticket.

Corte de caja y reportes

Por turno, por día, por medio de pago, por tasa, más vendidos, margen y existencias bajas. Todo en un rango de fechas.

Tus colores, tu tipografía

Un puñado de variables CSS que heredas desde tu propia hoja. Quien no declara nada obtiene un diseño neutro que no compite con el suyo.

Una etiqueta, un archivo

Sin build, sin framework, sin dependencias que choquen con las tuyas. Funciona igual sobre React, Vue, Rails o HTML plano.

Integrarlo

Esto es todo el código que escribes

El token lo emite tu backend con tu llave secreta y dura quince minutos. Cuando caduca, el módulo avisa con un evento; tu página pide otro y la caja sigue con el ticket donde estaba.

<script src="https://nexusnorth.dev/embed/v1/nexus-pos.js" defer></script>

<nexus-pos
  tenant-id="tu-tenant"
  auth-token="token-efimero-de-tu-backend"
  store-id="la-tienda"
  style="--nexus-primary: #0f766e; --nexus-radius: 0.5rem"
></nexus-pos>

<script>
  document.querySelector("nexus-pos")
    .addEventListener("token-expired", renovarToken);
</script>
  • Siempre en línea: sin caché local que se desincronice del inventario.
  • Sin cookies de terceros: el token viaja en memoria, no en el navegador.
  • Aislado en Shadow DOM: tus estilos no lo tocan y los suyos no te tocan.
  • Un solo archivo, sin dependencias que choquen con las tuyas.
Preguntas

Lo que suelen preguntar antes de integrarlo

¿Emite facturas (CFDI)?

No. Emite tickets con folio consecutivo e impuestos desglosados. La facturación fiscal es un producto distinto, con timbrado, certificados y un proveedor autorizado detrás; este módulo no la pretende.

¿Funciona sin internet?

No, por decisión. El token de acceso dura quince minutos y lo renueva tu backend, así que una caja sin conexión no podría cobrar de todos modos. A cambio, el inventario que ves es siempre el real.

¿Y la impresora térmica, el cajón, la terminal?

El ticket se imprime con el navegador, que habla con cualquier impresora que tenga driver del sistema, térmicas incluidas. Cajón y terminal bancaria quedan fuera: son integraciones de hardware que dependen de cada fabricante.

¿Varias sucursales?

Una tienda por cuenta, con su catálogo y su inventario. Varias cajas en el mismo mostrador sí: cada cajero tiene su turno y su corte. Sucursales con traspasos entre ellas es otro producto.

¿Se puede ver como mi producto?

Sí, y es el default. El módulo no lleva marca propia: colores, tipografía y radios salen de variables CSS que heredas desde tu hoja de estilos.

¿Tu producto necesita cobrar?

Cuéntanos qué estás construyendo y te decimos si este módulo encaja — o si lo tuyo necesita otra cosa.

Hablemos