Integrare Pos Odoo con stampanti RCH

In un recente articolo parlavo delle problematiche legate all’utlizzo di un dispositivo locale da parte di un software in cloud.

In particolare nel caso in cui, anche essendoci un web service sul dispositivo, questo non supporta il protocollo https.

E’ il caso delle stampanti Print F Rch, perlomeno alla data in cui è scritto l’articolo, per cui si è dovuto passare da una sorta di proxy hardware, in questo caso fatto da un Raspberry PI sul quale abbiamo installato un modulo CGI Python fatto appositamento per lo scopo utilizzando il modulo request.

Una volta risolto questo è necessario trovare i relativi agganci (hooks) nel codice javascript del pos di Odoo e formattare la richiesta al webservice di RCH, ad esempio, per stampare uno scontrino base, ci sarà un comando, opportunatamente formattato per l’invio dei comandi al webservice in formato XML del tipo:

<?xml version="1.0" encoding="UTF-8"?> 
<Service>
   <cmd>=R1/$200/(DOLCE)</cmd>
   <cmd>=R2/$100/*2/(CAFFE’)</cmd>
   <cmd>=T1</cmd>
</Service>

 

La stampante ci risponderà con eventuali codici di errore o lo stato ok:

<?xml version="1.0" encoding="UTF-8"?>
<Service>
    <Request>
        <errorCode>0</errorCode>
        <printerError>0</printerError>
        <paperEnd>0</paperEnd>
        <coverOpen>0</coverOpen>
        <lastCmd>3</lastCmd>
        <busy>0</busy>
    </Request>
</Service>

 

Altre funzioni riguardanti la gestione del display, le chiusure fiscali e la stampa di particolari tipo di scontrino sono documentate nel manuale del webservice fornito da RCH.

Per la gestione a più basso livello delle chiamate Javascript è anche possibile utilizzare delle chiamate RPC come illustrato in questo articolo (in lingua inglese).

Per qualsiasi considerazione su questo articolo siete invitati a scrivere un commento o contattarmi tramite l’apposito form.