Tornar a TPV

Imprimir tiquets amb GestioERP al núvol: app, agent i pont local

Quan GestioERP està al núvol, el servidor no pot arribar a la impressora de tiquets de la teva botiga (és a una xarxa local privada). Aquesta guia explica qui imprimeix en cada cas i com deixar la impressió funcionant: amb l’app Android, amb una tauleta com a agent, o amb el pont d’impressió per a PC (inclòs un .exe que no necessita instal·lar res).

Per què passa això

Una impressora de tiquets de xarxa s’imprimeix obrint una connexió a la seva IP al port 9100. La pregunta clau és qui obre aquesta connexió:

  • Si GestioERP és al teu local (mateixa xarxa que la impressora): l’obre el servidor directament. No cal res més.
  • Si GestioERP és al núvol: el servidor és a internet i no arriba a la xarxa de la botiga. L’ha d’obrir un dispositiu que estigui dins del local (una tauleta o un PC). Per això existeix la cua d’impressió i els agents que la consumeixen.

El navegador no pot obrir connexions a impressores pel seu compte (ho bloqueja per seguretat). Per això, al núvol, imprimeix sempre un dispositiu del local, no la pàgina web.

Com funciona la cua d’impressió

Cada venda o comanda genera un tiquet a GestioERP. Segons el tipus de connexió de la impressora, el tiquet:

  • Xarxa (IP): l’imprimeix el servidor a l’instant (només serveix en instal·lació local/LAN).
  • Agent / Compartida / USB / Bluetooth / Integrada: queda en una cua (/TpvPrintQueue) que recull un dispositiu del local (l’app o el pont), l’imprimeix i el confirma.
POS web (núvol) → servidor GestioERP (núvol) ──cua──> dispositiu del local ──> impressora

Les 3 maneres d’imprimir al núvol

1) App Android (la més simple) — sense instal·lar res al PC

L’app de GestioERP (tauleta/comandera) porta un agent d’impressió integrat: cada pocs segons recull els tiquets de la cua i els imprimeix amb el seu pont natiu (xarxa, USB, Bluetooth o integrada Sunmi/iMin). Si ja tens una tauleta al local, no necessites res més.

  • Configura la impressora del terminal amb la seva connexió (xarxa per IP, USB, Bluetooth…).
  • La tauleta ha d’estar a la mateixa xarxa que la impressora (per a IP) o connectada a ella (USB/BT).

2) Una tauleta Android com a “servidor d’impressió”

Com que l’app ja consumeix la cua, una tauleta pot imprimir els tiquets d’un altre terminal (per exemple, els del POS web). Només cal que estigui configurada amb el token del terminal la impressora del qual cal servir.

Recomanació: un sol agent per terminal. Si dos dispositius fan servir el mateix token, podrien imprimir el mateix tiquet dues vegades.

3) Pont d’impressió per a PC (GestioERP Print Bridge)

Si al local hi ha un PC amb Windows (i no vols fer servir una tauleta d’agent), instal·la el pont: un programa petit que recull la cua i envia els tiquets a la impressora de xarxa (IP) o a una impressora USB instal·lada a Windows.

  • S’entrega com un únic .exe lleuger (≈22 KB), sense instal·lar res (ni Node, ni Electron, ni QZ Tray).

📥 Descarregar el pont per a Windows (.exe) — un sol fitxer (≈22 KB, no instal·la res). En obrir-lo el primer cop s’obre una finestra que demana el negoci, la URL, el token i la impressora (un desplegable amb les de Windows). Després queda com a icona d’impressora a la safata (al costat del rellotge), imprimeix sol i arrenca amb Windows.

  • No fa servir QZ Tray ni certificats ni configuració del navegador: el pont pregunta al servidor pels tiquets (model pull), així que funciona a través d’internet sense obrir ports.

Diverses tauletes o caixes: qui imprimeix la cuina? (sense duplicats)

Amb diversos dispositius, cadascun imprimeix els seus propis rebuts sense problema (cadascun és el seu terminal). El compte està a les impressores compartides (cuina/barra): si tots els dispositius les recullen, una comanda sortiria diverses vegades.

Per evitar-ho, tries tu quin dispositiu imprimeix la cuina:

  • A TPV → Terminals i impressores, edita el terminal que vulguis que faci de servidor de cuina (una tauleta fixa, o el terminal del PC amb el pont) i marca «Imprimeix cuina/compartides (agent)» (pestanya Tiquet, KDS i dispositius).
  • A partir d’aquí, només aquest terminal rep i imprimeix les comandes de cuina/zones; la resta segueixen imprimint només els seus tiquets de venda.
  • Si no en marques cap, es manté el comportament anterior (les imprimeixen tots) — còmode quan només hi ha un dispositiu.

Regla d’or: un sol «agent de cuina» per local. Igual si fas servir el pont de PC: que només un tingui aquest rol.

Configurar el pont (PC Windows), pas a pas

Pas 1 — La impressora a GestioERP

A TPV → Terminals i impressores, edita la impressora del terminal i tria la connexió:

  • Impressora de xarxa (IP): connexió agente, amb la seva IP i port 9100.
  • Impressora USB (instal·lada a Windows): connexió compartida. Instal·la abans la impressora a Windows (el seu driver, o «Generic / Text Only»).

agente i compartida deixen el tiquet a la cua perquè el reculli el pont (el servidor no ho intenta, perquè és al núvol).

Pas 2 — Preparar el pont

  1. Copia la carpeta GestioERP Print Bridge al PC de la botiga.
  2. Duplica config.example.json com a config.json i omple:
    • server: l’URL del teu GestioERP al núvol (p. ex. https://el-teu.gestioerp.com).
    • token: el token del terminal (fitxa del terminal o QR de la tauleta).
    • windowsPrinter: només per a impressores USB, el nom exacte de la impressora de Windows (executa list-printers.bat per veure’l). Deixa-ho buit si només uses IP.

Pas 3 — Arrencar

  • Doble clic a start.bat (detecta l’.exe o Node i es reinicia sol si es talla).
  • Veuràs línies com: imprès #12 -> 192.168.0.23:9100 (240 bytes, xarxa).

Pas 4 — Que arrenqui amb Windows (opcional)

  • Accés directe de start.bat a la carpeta Inici (shell:startup), o
  • una tasca al Programador de tasques en iniciar sessió, o
  • com a servei amb NSSM.

Com comprovar que tot funciona

  1. Prova directa de la impressora (sense vendre res): des de la carpeta del pont,
    • xarxa: test.bat --ip 192.168.0.23
    • USB: test.bat --win "EPSON TM-T20" Ha de sortir un tiquet de prova. Si no, et dirà l’error concret.
  2. Prova real: deixa el pont obert, fes una venda de prova al POS web i cobra-la. El tiquet ha de sortir en uns segons i el pont mostrarà imprès #....
  3. Només xarxa (IP): comprova que el port 9100 està obert (el ping NO n’hi ha prou). A l’app, el botó «Provar connexió (IP:port)» ho verifica des del mateix dispositiu.

Problemes habituals

  • No imprimeix res: revisa que la impressora estigui en agente (xarxa) o compartida (USB), i que server i token del config.json siguin correctes.
  • timeout TCP: el dispositiu no arriba a la impressora al 9100. Revisa IP, xarxa i que el 9100 estigui obert.
  • USB: el windowsPrinter ha de ser el nom exacte (fes servir list-printers.bat); la impressora ha d’estar instal·lada a Windows.
  • S’imprimeix dues vegades: hi ha dos agents amb el mateix token. Deixa’n un de sol per terminal.

Preguntes freqüents

  • Necessito QZ Tray? No. Per al núvol, l’app Android o el pont són més simples (no requereixen certificats ni tocar el navegador).
  • I si GestioERP és local (no núvol)? Posa la impressora en red: imprimeix el servidor directament, sense agent ni pont.
  • mc2printer/MC20? És una app d’impressió específica per al terminal de mà MC20 (per WebSocket). Avui el normal és l’app GestioERP (que ja consumeix la cua) o aquest pont per a PC.

En resum

SituacióQuè fer servir
Tauleta Android al localL’app ja imprimeix (impressora amb la seva connexió)
Només PC Windows + impressora de xarxaPont, impressora agente
Només PC Windows + impressora USBPont, impressora compartida + windowsPrinter
GestioERP local (mateixa LAN)Impressora red (imprimeix el servidor)

Més articles d'aquesta categoria