Introductie
Deze handleiding legt uit hoe u het afdrukken van kassabonnen configureert in Silicon ioi via een compatibele Epson thermische printer met ePos-technologie.
De oplossing bestaat uit de volgende elementen:
- Compatibele hardware (Epson-printer)
- Configuratie van het printermodel (ioi Printer Model) en de printer (ioi Printer)
- Een HTTPS-certificaat geïnstalleerd op het clientwerkstation
- Een bontemplate (ioi Receipt Template XML) samengesteld uit blokken (ioi Receipt XML Block)
- Het koppelen van de template aan de ioi Cash Desk
Hardware #
Compatibele printers:
- Epson TM-M30II (RJ45)
- Epson TM-M30III (WiFi) — aanbevolen om netwerkkabels te vermijden
Verbind de printer met het netwerk en schakel hem in. Hij drukt automatisch een vel af met zijn netwerkinformatie.
Attention
Als het werkstation en de printer zich op verschillende netwerken bevinden, zorg er dan voor dat het werkstation de printer kan bereiken.

ioi Printer Model #
Maak een printermodel aan in Silicon ioi.

Vul in:
- De identificatie en beschrijving van het model
- Merk: Epson
- Papierbreedte: 580
- Afdruktechnologie: Epson ePos
ioi Printer #
Maak de printerfiche aan in Silicon ioi.

Vul in:
- De identificatie en beschrijving van de printer
- Vink For cash desk aan
- Het printermodel (aangemaakt in de vorige stap)
- Het IP-adres van de printer
- De poort van de printer
HTTPS-certificaat #
Silicon ioi communiceert met de printer via het HTTPS-protocol. Een certificaat gekoppeld aan het IP-adres van de printer moet worden geregistreerd op het clientwerkstation.
Open de webinterface van de printer:
https://ip_adres_printer
Certificaat gekoppeld aan 0.0.0.0 #
Op een nieuwe printer kan het standaardcertificaat gekoppeld zijn aan 0.0.0.0 — dit werkt niet.
Info
Er moet een certificaat aangemaakt worden dat gekoppeld is aan het werkelijke IP-adres van de printer.
Certificaat aanmaken op de printer #
1. In Chrome, als het HTTPS-protocol mislukt:

Haal het voorgestelde certificaat op en sla het op om een beveiligde HTTPS-verbinding toe te staan.



Attention
Als het voorgestelde certificaat 0.0.0.0 is, zal het niet werken (geval van een nieuwe printer). Het certificaat moet gekoppeld zijn aan het IP-adres van de printer.
2. Ga naar de configuratie van de printer:

Meld u aan met de gebruiker epson — het wachtwoord is het serienummer van de printer.

3. Maak het certificaat aan:

Stel het IP-adres in als naam en geef de maximale geldigheidsduur op (10 jaar).

4. Stuur de configuratie naar de printer:


De printer herstart.

Certificaat exporteren en installeren #
Het certificaat is nu gekoppeld aan het IP-adres. Exporteer het:

Installeer het vervolgens:

Selecteer Lokale computer:

Plaats het certificaat in het archief Vertrouwde basiscertificeringsinstanties:


Het certificaat is zichtbaar in de certificatenlijst:


Firefox #
Voor Firefox voegt u een uitzondering rechtstreeks toe in de beveiligingsinstellingen.
Instellingen:

Privacy & beveiliging → Certificaten → Certificaten beheren:

Servers → Uitzondering toevoegen en het adres van de printer invoeren:



Testafdruk #
Klik op de knop voor de testafdruk in de ioi Printer-fiche.
Bij de eerste afdruk vraagt Silicon ioi toestemming om met de printer te communiceren:


ioi Receipt Template XML #
Maak een template aan voor het kassaticket.
Maak een template aan, activeer het en voeg er blokken aan toe om weer te geven op het ticket.

ioi Receipt XML Block #
Een blok is een zone van het ticket dat de volledige breedte beslaat. Het is niet mogelijk om twee blokken naast elkaar weer te geven.

Groepen #
Elk blok behoort tot een van de volgende 3 groepen:
| Groep | Gegevensbron |
|---|---|
| Header | Documentkoptekst |
| Line | Documentdetail (met de mogelijkheid om toegang te krijgen tot koptekstgegevens) |
| Footer | Documentkoptekst |
Info
De volgorde van de groepen is strikt — het is niet mogelijk om een Footer-blok weer te geven vóór een Line-blok, noch een Line-blok vóór een Header-blok.


Voorwaardelijke weergave #

Voorwaardelijke weergave is standaard uitgeschakeld (Off).
Wanneer ingeschakeld, wordt de voorwaarde gedefinieerd in Python. De variabele print_if is verplicht en moet een boolean teruggeven:
True→ het blok wordt weergegevenFalse→ het blok is verborgen

De optie “print if not empty (Text only)” verbergt automatisch een blok als er geen databasewaarde aanwezig is — zodat een blok met alleen labels en geen waarden niet wordt weergegeven.

Blokdefinitie (Jinja) #

De inhoud van een blok wordt gedefinieerd in Jinja — een Python-templating engine die door Frappe wordt gebruikt om dynamische inhoud te genereren.
Basissyntax:
- Variabelen:
{{ variable }} - Instructies:
{% instruction %} - Commentaar:
{# commentaar #}
Voordelen van Jinja:
- Scheiding van verantwoordelijkheden: Python-code en presentatie zijn gescheiden
- Herbruikbaarheid: templates kunnen worden ingesloten of uitgebreid
- Flexibiliteit: conditionele logica, lussen, filters, enz.
- Ingebouwde integratie met Frappe
Info
Officiële documentatie: https://jinja.palletsprojects.com/en/stable/templates
Template koppelen aan ioi Cash Desk #
Zodra de template is aangemaakt en geactiveerd, moet deze worden gekoppeld aan de ioi Cash Desk om te worden gebruikt bij het afdrukken.
In de ioi Cash Desk-fiche, tabblad Parameters, sectie Printer:
- Printer: selecteer de geconfigureerde printer (ioi Printer-fiche)
- Receipt template (XML - Preferred for its speed): selecteer de te gebruiken ioi Receipt Template XML-template
Astuce
Een tweede veld Receipt template (Image mode) is ook beschikbaar voor templates van het type ioi Receipt Template Definition (afbeeldingsmodus). Voor nieuwe configuraties wordt de XML-modus aanbevolen vanwege de betere prestaties.