Service d'impression du poste caisse
Le poste de caisse imprime chaque commande du site : un ticket en salle, deux en cuisine. Cette page fabrique le fichier d'installation à lancer sur ce PC — un seul fichier, un seul double-clic, aucune question posée à la personne qui l'exécute.
À lire avant de commencer
Il n'y a aucun mot de passe à saisir. Le fichier d'installation est fabriqué par le serveur, qui y place lui-même la clé de connexion à la base.
Ce fichier contient donc un secret. Il ne doit servir qu'au PC de la caisse, ne pas être envoyé par mail ni par messagerie, et disparaître ensuite — l'installateur le supprime tout seul dès que l'installation a réussi.
Installer sur le PC du restaurant
Le fichier ci-dessous installe tout seul Node.js, le programme d'impression, la configuration et le démarrage automatique, puis imprime un ticket de test. Compte environ trois minutes.
- Fais ce téléchargement depuis le PC de la caisse, avec ce même compte. Sinon : clé USB — jamais par mail.
- Double-clique sur Installer imprimante Sake Zen.bat.
- Clique sur Oui dans la fenêtre bleue de Windows.
- Attends sans rien toucher.
- Un ticket de test sort des imprimantes : c'est terminé, la fenêtre peut être fermée.
- Un raccourci Relancer impression Sake Zen est posé sur le Bureau : c'est le seul geste de dépannage à connaître si les tickets cessent de sortir.
- Rien n'est demandé pendant l'installation : les IP des imprimantes et la clé sont déjà dans le fichier.
- En cas d'échec, la fenêtre reste ouverte avec la marche à suivre, et un compte-rendu est écrit sur le Bureau : sakezen-installation.txt.
- Relancer l'installateur une seconde fois est sans danger : il remet tout à neuf.
Procédure manuelle, étape par étape — dépannage
Clé service_role
Utile seulement pour la procédure manuelle ci-dessous : l'installateur en un clic n'en a pas besoin. Supabase Dashboard → Project Settings → API → service_role. C'est la clé secrète, pas la clé anon.
Installer le service sur le PC
L'archive contient le service et toutes ses dépendances. Le PC du restaurant n'a besoin que de Node.js 18 ou plus — ni Git, ni npm install, ni connexion pendant l'installation.
L'archive contient un dossier sakezen-printer : extrais-le à la racine de C:\ pour obtenir C:\sakezen-printer. Clic droit → « Extraire tout » fonctionne, ou en PowerShell :
# Node.js 18 minimum : verifier avec node -v
Expand-Archive -Path "$env:USERPROFILE\Downloads\sakezen-printer.zip" -DestinationPath C:\ -Force
dir C:\sakezen-printer
- Node.js absent du poste : nodejs.org, version LTS, puis rouvrir PowerShell.
- L'archive est régénérée depuis le dépôt par printer-service/make-zip.sh — si le service a changé, elle peut être en retard.
- Alternative pour un poste équipé de Git : git clone du dépôt, copier printer-service, puis npm install --omit=dev.
Écrire le fichier .env
Ouvre PowerShell en administrateur, puis colle ce bloc en entier. Il crée le dossier si besoin et écrit le fichier en UTF-8 sans BOM — indispensable, sinon la première variable est lue de travers et le service ne démarre pas.
Vérifier le fichier et le réseau
Les deux imprimantes doivent répondre sur le port 9100.
# Contenu du fichier, cle masquee Get-Content C:\sakezen-printer\.env | ForEach-Object { $_ -replace '(?<=KEY=).*','***' } # Les deux imprimantes doivent repondre : TcpTestSucceeded True Test-NetConnection 192.168.110.190 -Port 9100 | Select-Object ComputerName,TcpTestSucceeded Test-NetConnection 192.168.110.71 -Port 9100 | Select-Object ComputerName,TcpTestSucceeded
- Test en échec : imprimante éteinte, ou IP changée — pense à la réservation DHCP sur le routeur.
- Sinon l'impression RAW port 9100 est désactivée : ça se règle dans l'interface web de l'imprimante, http://<ip>.
Ticket de test
Imprime une commande factice sur les trois sorties. Tu dois obtenir un ticket en salle et deux en cuisine : froid puis chaud.
cd C:\sakezen-printer npm run test-print
- Accents cassés sur le ticket : l'imprimante n'est pas en page de code CP858. Ça se règle dans son interface web, pas dans le fichier .env.
- Rien ne sort mais le test dit « OK » : vérifie que le papier est bien engagé et le capot fermé.
Mettre en service au démarrage
Une fois le ticket de test correct, lance l'installation PM2 fournie : le service redémarre tout seul avec le PC, sans fenêtre visible.
cd C:\sakezen-printer .\install-pm2.bat
- Arrêter le service : .\stop.bat
- Le retirer complètement : .\uninstall-pm2.bat
Ce que contient le fichier
| Variable | Valeur | Rôle |
|---|---|---|
| SUPABASE_URL | bjguhmbcjamlhdmochwg | Projet Supabase Saké Zen |
| SUPABASE_SERVICE_ROLE_KEY | ta clé | Lecture des commandes et marquage « imprimée » |
| PRINTER_CAISSE_IP | 192.168.110.190 | Imprimante salle — ticket caisse |
| PRINTER_BAR_IP | 192.168.110.190 | Même imprimante — ticket bar |
| PRINTER_FROID_IP | 192.168.110.71 | Imprimante cuisine, ticket froid |
| PRINTER_CHAUD_IP | 192.168.110.71 | Même imprimante, ticket chaud |
| PRINTER_PORT | 9100 | Port RAW ESC/POS |
| PRINTER_WIDTH | 48 | Colonnes : 48 en 80 mm, 32 en 58 mm |
| POLL_INTERVAL_MS | 8000 | Vérifie les nouvelles commandes toutes les 8 s |
| PRINT_RECUE_AUSSI | false | N'imprime que les commandes confirmées |
| TEST_MODE | false | À true, n'imprime que les commandes de test |
Admin · Imprimantes