Template e Formule

Progetta etichette personalizzate con barcode integrati, formule di calcolo, campi dinamici e regole di visibilità condizionale. Tutto direttamente sul dispositivo, senza server esterni.

Panoramica

Un template è il "progetto" di un'etichetta: definisce cosa appare, dove appare e come viene calcolato ogni valore. Una volta creato, il template viene riutilizzato ad ogni stampa: i dati reali del prodotto vengono inseriti automaticamente al momento della stampa, senza che tu debba fare nulla.

Il sistema di template di SiltaFlow è pensato per essere potente senza essere complicato. Puoi creare etichette semplici con solo nome e barcode in pochi minuti, oppure progettare etichette avanzate con prezzi calcolati, scritte condizionali e layout complessi — tutto usando un editor visuale e formule simili a quelle di Excel.

Tutta la generazione dell'etichetta avviene sul dispositivo, senza connessione a internet. Una volta che i dati del prodotto sono stati caricati da Odoo, puoi stampare anche offline.

L'Editor dei Template

Per accedere all'editor, vai alla schermata Stampa Etichette Prodotto e tocca il pulsante Gestione Template. Da qui puoi creare nuovi template o modificare quelli esistenti.

Quando crei un nuovo template, imposti innanzitutto le dimensioni fisiche dell'etichetta (larghezza e altezza in millimetri) e la risoluzione della stampante che userai. Questi due valori determinano la "tela" su cui lavorerai: l'editor converte automaticamente i millimetri in pixel in base alla risoluzione della stampante.

La tela dell'etichetta

La tela mostra l'etichetta in anteprima in tempo reale. Ogni elemento che aggiungi appare subito nella posizione impostata. Puoi trascinare gli elementi per riposizionarli, oppure inserire le coordinate numeriche precise se hai bisogno di un posizionamento esatto.

Il pulsante Anteprima carica un prodotto reale dal tuo catalogo Odoo e mostra l'etichetta con i dati effettivi del prodotto — inclusi i barcode generati e i risultati delle formule. È il modo più rapido per verificare che tutto funzioni correttamente prima di stampare.

Usa sempre l'anteprima con un prodotto reale prima di avviare una stampa in produzione. Puoi così verificare che le formule diano il risultato atteso e che i barcode siano leggibili alle dimensioni scelte.

Componenti Disponibili

Un'etichetta è composta da uno o più componenti, ognuno con un tipo specifico. Per aggiungere un componente all'etichetta, tocca il pulsante + nell'editor e scegli il tipo dalla lista.

Componente Cosa fa Uso tipico
Testo Mostra un testo statico o dinamico. Supporta variabili prodotto, formule e testo in grassetto/corsivo. Nome prodotto, prezzo, codice interno, descrizione breve
Barcode Genera e visualizza un codice a barre o QR code. Il dato da codificare può essere un campo prodotto o una formula. Barcode EAN-13, QR code con URL Odoo, Code 128 su codice interno
Rettangolo Disegna un rettangolo con bordo e/o riempimento colorato, con angoli opzionalmente arrotondati. Cornici, sfondi per sezioni, separatori visivi
Linea Disegna una linea retta tra due punti, con colore e spessore configurabili. Separatori orizzontali e verticali
Immagine Mostra un'immagine fissa incorporata nel template (logo aziendale, icone, pittogrammi). Logo aziendale, simbolo CE, pittogrammi di pericolo
Tabella Mostra dati in righe e colonne con bordi e intestazioni configurabili. Tabelle nutrizionali, specifiche tecniche, elenco componenti
Data/Ora Inserisce automaticamente la data e l'ora del momento esatto della stampa, nel formato che preferisci. Data di confezionamento, data di stampa etichetta, timestamp lotto
Forma Disegna forme geometriche personalizzate (triangoli, frecce, forme libere) con colore e bordo configurabili. Frecce direzionali, triangoli di avviso, decorazioni grafiche

Campi Dinamici del Prodotto

I campi dinamici permettono di inserire automaticamente i dati del prodotto Odoo nell'etichetta. Basta scrivere il nome del campo tra parentesi graffe nel testo del componente.

Per esempio, se scrivi {nome} nel campo contenuto di un componente Testo, al momento della stampa verrà sostituito con il nome reale del prodotto. Lo stesso funziona per tutti i campi del prodotto disponibili in Odoo.

Campi più usati

Campo Cosa mostra
{nome} Il nome del prodotto
{codice_interno} Il codice interno (riferimento) del prodotto in Odoo
{barcode} Il codice a barre del prodotto
{prezzo_vendita} Il prezzo di vendita configurato in Odoo
{peso} Il peso del prodotto in kg
{categoria} La categoria merceologica del prodotto
{descrizione} La descrizione interna del prodotto
{lotto} Il numero di lotto (per prodotti con tracciabilità attiva)

Tutti i campi standard di Odoo sono disponibili come variabili dinamiche. Se hai campi personalizzati nel tuo Odoo, puoi usarli allo stesso modo purché siano inclusi nei campi sincronizzati nelle impostazioni di SiltaFlow.

Generazione Barcode

Il componente Barcode genera il codice direttamente sul dispositivo, in pochi millisecondi. Non serve connessione internet per generare i barcode: il calcolo avviene interamente in locale.

Ogni componente Barcode ha due impostazioni principali: il formato (il tipo di codice da generare) e il dato da codificare (che può essere un campo prodotto, una formula o un testo fisso). Puoi anche scegliere se mostrare il testo del codice sotto le barre.

Formati disponibili

Formato Tipo Uso tipico
Code 128 Lineare Codici interni prodotto, numeri di lotto, picking
EAN-13 Lineare Prodotti della grande distribuzione e articoli di consumo
EAN-8 Lineare Prodotti piccoli con spazio limitato
QR Code Matrice 2D URL Odoo, link a scheda prodotto, dati strutturati
Data Matrix Matrice 2D Etichette molto piccole, farmaceutico, industriale
PDF 417 Impilato 2D Documenti di trasporto, carte d'identità
Code 39 Lineare Compatibilità con sistemi legacy
ITF Lineare Imballaggi secondari (GTIN-14)
UPC-A Lineare Mercati nordamericani
Aztec Matrice 2D Alta densità di dati, settore trasporti
Codabar Lineare Biblioteche, banche del sangue
Code 93 Lineare Logistica, settore aerospaziale
UPC-E Lineare Prodotti piccoli, formato UPC compresso

Se il barcode risulta difficile da leggere, aumenta le dimensioni del componente Barcode nell'editor. I barcode lineari (Code 128, EAN) richiedono una larghezza minima di circa 20 mm per essere letti agevolmente da qualsiasi scanner.

Formule di Calcolo

Le formule ti permettono di calcolare valori al momento della stampa, a partire dai dati del prodotto. La sintassi è simile a quella di Excel: funzioni in maiuscolo, argomenti tra parentesi, separati da virgola.

Puoi usare le formule nel campo contenuto di qualsiasi componente Testo o Barcode. Ad esempio, per mostrare il prezzo arrotondato a due decimali con il simbolo dell'euro davanti, scrivi: CONCAT("€ ", ROUND(prezzo_vendita, 2)).

Funzioni matematiche

Funzione Descrizione Esempio
ROUND(valore, decimali) Arrotonda un numero al numero di decimali indicato ROUND(prezzo_vendita, 2)
IF(condizione, vero, falso) Restituisce il primo valore se la condizione è vera, il secondo se è falsa IF(prezzo_vendita > 50, "PREMIUM", "STD")
MIN(a, b, ...) Restituisce il valore minore tra quelli indicati MIN(prezzo_vendita, prezzo_costo)
MAX(a, b, ...) Restituisce il valore maggiore tra quelli indicati MAX(giacenza, 0)
ABS(valore) Restituisce il valore assoluto (sempre positivo) ABS(differenza_inventario)
SQRT(valore) Calcola la radice quadrata SQRT(area)

Funzioni di testo

Funzione Descrizione Esempio
CONCAT(a, b, ...) Unisce più testi in uno solo CONCAT(nome, " - ", codice_interno)
LEFT(testo, n) Prende i primi n caratteri del testo LEFT(nome, 20)
RIGHT(testo, n) Prende gli ultimi n caratteri del testo RIGHT(codice_interno, 6)
MID(testo, inizio, lunghezza) Estrae una parte del testo dalla posizione indicata MID(codice_interno, 3, 4)
LEN(testo) Conta il numero di caratteri del testo LEN(nome)
UPPER(testo) Converte il testo in maiuscolo UPPER(nome)
LOWER(testo) Converte il testo in minuscolo LOWER(categoria)
TRIM(testo) Rimuove gli spazi iniziali e finali TRIM(nome)

Campi Calcolati

I campi calcolati sono valori intermedi che puoi definire una volta e riutilizzare in più componenti dello stesso template. Funzionano come le celle di Excel: dai a ogni campo calcolato un nome, scrivi la sua formula, e poi puoi usare quel nome come se fosse un campo prodotto in qualsiasi altro componente.

Per esempio, puoi creare un campo calcolato chiamato prezzo_iva con la formula ROUND(prezzo_vendita * 1.22, 2). Poi nei componenti Testo puoi scrivere semplicemente {prezzo_iva} per mostrare il prezzo con IVA, senza ripetere la formula ogni volta.

I campi calcolati possono dipendere da altri campi calcolati: il sistema risolve automaticamente l'ordine corretto di calcolo, quindi non devi preoccuparti di definirli in un ordine specifico.

Usa i campi calcolati per semplificare i template complessi. Se hai una formula lunga che usi in più punti, creane un campo calcolato con un nome descrittivo: il template diventa più leggibile e più facile da mantenere.

Visibilità Condizionale

La visibilità condizionale ti permette di mostrare o nascondere un componente in base alle caratteristiche del prodotto che stai stampando. Ogni componente può avere una regola: se la condizione è vera, il componente appare; se è falsa, non compare sull'etichetta.

Questa funzione è molto utile per creare un unico template che si adatta a prodotti diversi. Invece di creare template separati per ogni caso, crei un template unico con componenti condizionali.

Esempi pratici

Le regole di visibilità usano la stessa sintassi delle formule: puoi usare operatori di confronto (>, <, ==, !=), operatori logici (AND, OR) e qualsiasi campo del prodotto. Il componente è visibile se il risultato della regola è vero.

Testo con Formattazione Mista

Il componente Testo supporta la formattazione mista all'interno dello stesso blocco di testo: puoi avere una parola in grassetto, un'altra in corsivo e un'altra con un colore diverso, tutto nello stesso componente.

Per applicare la formattazione, usa i tag di marcatura nel campo contenuto del componente:

Puoi combinare la formattazione con i campi dinamici. Per esempio: Prodotto: <b>{nome}</b> — Prezzo: <font color="#E53E3E">€ {prezzo_vendita}</font> mostrerà il nome del prodotto in grassetto e il prezzo in rosso.

Layout Multi-Etichetta (Fogli Avery)

Se stampi su fogli A4 o Letter con etichette disposte in griglia (come i fogli Avery), puoi configurare il layout direttamente in SiltaFlow. Non serve nessun software esterno: l'app calcola automaticamente la posizione di ogni etichetta sulla pagina.

Configurazione del layout

Usa sempre la posizione di partenza quando riprendi un foglio parzialmente stampato. Eviti sprechi di carta e risparmi tempo: non è necessario stampare un foglio intero se ti servono solo poche etichette.

Preset: Stampa con un Solo Tocco

Un preset salva la combinazione completa di stampante, template e configurazione layout con un nome a tua scelta. La prossima volta che devi stampare, invece di riconfigurare tutto da capo, tocchi semplicemente il nome del preset e la stampa parte immediatamente.

I preset sono particolarmente utili per le operazioni che ripeti spesso. Per esempio, puoi avere un preset "Ricevimento Merce" che usa la stampante Zebra del magazzino con il template etichetta di ricevimento, e un preset separato "Cartellini Prezzo" che usa la Brother vicino alle casse con il template del cartellino.

Come creare un preset

  1. Configura la stampante, il template e il layout come vorresti usarli
  2. Tocca il pulsante Salva Preset nella barra degli strumenti
  3. Dai al preset un nome descrittivo (es. "Zebra Magazzino — Etichetta Standard")
  4. Il preset è subito disponibile nella lista. La prossima volta tocca il suo nome per avviare la stampa direttamente.

I preset salvano anche la stampante preferita con i suoi parametri di connessione. Al momento dell'uso, SiltaFlow tenta di riconnettersi direttamente a quella stampante senza dover ripetere la ricerca.

Esempi Pratici

Esempio 1 — Etichetta base con nome e barcode

Il template più semplice possibile: nome del prodotto in alto e barcode del codice interno al centro.

  1. Crea un nuovo template, imposta le dimensioni (es. 60 mm × 30 mm) e la risoluzione della stampante (203 dpi)
  2. Aggiungi un componente Testo. Nel campo contenuto scrivi {nome}. Imposta grassetto e allineamento centrato.
  3. Aggiungi un componente Barcode sotto il testo. Scegli il formato Code 128 e imposta il dato a {codice_interno}. Abilita la visualizzazione del testo sotto il barcode.
  4. Tocca Anteprima per verificare il risultato, poi salva il template.

Esempio 2 — Cartellino prezzo con scritta "OFFERTA" condizionale

Un cartellino che mostra il prezzo calcolato e una scritta "OFFERTA" solo per i prodotti in promozione.

  1. Crea il template con le dimensioni del cartellino (es. 50 mm × 30 mm)
  2. Aggiungi un componente Testo per il nome: {nome}
  3. Aggiungi un componente Testo per il prezzo con formula: CONCAT("€ ", ROUND(prezzo_vendita, 2)). Imposta font grande e grassetto.
  4. Aggiungi un componente Testo con il testo "OFFERTA". Nelle impostazioni del componente, nella sezione Visibilità, imposta la condizione: sconto_percentuale > 0. Imposta il colore del testo in rosso.
  5. In anteprima, testa con un prodotto con sconto e uno senza: la scritta "OFFERTA" deve comparire solo nel primo caso.

Esempio 3 — Etichetta con QR code che punta alla scheda Odoo

Un QR code che, inquadrato con qualsiasi smartphone, apre direttamente la scheda del prodotto nel backend Odoo.

  1. Crea il template con le dimensioni desiderate (almeno 40 mm × 40 mm per il QR)
  2. Aggiungi un componente Barcode, scegli il formato QR Code.
  3. Nel campo dato, usa la formula: CONCAT("https://tuoodoo.com/web#id=", id_prodotto, "&model=product.template"). Sostituisci tuoodoo.com con l'indirizzo reale del tuo server Odoo.
  4. Aggiungi un componente Testo sotto il QR code con il nome e il codice interno del prodotto.
  5. Verifica in anteprima che il QR code sia generato correttamente, poi salva.

Suggerimenti

Testa sempre le formule nell'anteprima prima di usarle in produzione. Se una formula contiene un errore, l'editor mostra quale componente ha il problema e una descrizione dell'errore — il debug è rapido anche per formule complesse.

Puoi creare catene di campi calcolati dove uno dipende dall'altro. Per esempio: prezzo_iva = ROUND(prezzo_vendita * 1.22, 2), poi prezzo_label = CONCAT("€ ", prezzo_iva). Il sistema calcola tutto nell'ordine giusto automaticamente.

Crea un preset separato per ogni operazione ricorrente: uno per il ricevimento merce, uno per i cartellini prezzo, uno per le etichette di spedizione. Con i preset passi dalla configurazione alla stampa con un solo tocco.

Usa la visibilità condizionale per ridurre il numero di template da gestire. Un unico template con componenti condizionali funziona bene per prodotti molto diversi tra loro — è più facile da mantenere di dieci template separati quasi identici.

Il componente Data/Ora stampa sempre l'ora esatta del momento della stampa fisica. Usalo per le etichette di confezionamento o di produzione: ogni etichetta avrà il suo timestamp preciso, anche in una stampa batch di centinaia di articoli.

Requisiti

Per usare i template e le formule di SiltaFlow sono necessari: