Modèles et formules

Concevez des étiquettes personnalisées avec des codes-barres intégrés, des formules de calcul, des champs dynamiques et des règles de visibilité conditionnelles. Tout directement sur l'appareil, sans serveurs externes.

Aperçu

Un modèle est le « modèle » d'une étiquette : il définit ce qui apparaît, où il apparaît et comment chaque valeur est calculée. Une fois créé, le modèle est réutilisé pour chaque impression : les données réelles du produit sont automatiquement insérées au moment de l'impression, sans que vous ayez à faire quoi que ce soit.

Le système de modèles de SiltaFlow est conçu pour être puissant sans être compliqué. Vous pouvez créer des étiquettes simples avec uniquement votre nom et votre code-barres en quelques minutes, ou concevoir des étiquettes avancées avec des prix calculés, du texte conditionnel et des mises en page complexes, le tout à l'aide d'un éditeur visuel et de formules de type Excel.

Toute la génération d'étiquettes s'effectue sur l'appareil, sans connexion Internet. Une fois les données du produit chargées à partir de Odoo, vous pouvez également imprimer hors ligne.

L'éditeur de modèles

Pour accéder à l'éditeur, accédez à l'écran Imprimer les étiquettes de produits et appuyez sur le bouton Gestion des modèles. De là, vous pouvez créer de nouveaux modèles ou modifier ceux existants.

Lorsque vous créez un nouveau modèle, vous définissez d'abord les dimensions physiques de l'étiquette (largeur et hauteur en millimètres) et la résolution de l'imprimante que vous utiliserez. Ces deux valeurs déterminent la « toile » sur laquelle vous travaillerez : l'éditeur convertit automatiquement les millimètres en pixels en fonction de la résolution de l'imprimante.

La toile d'étiquette

Le canevas prévisualise l'étiquette en temps réel. Chaque élément que vous ajoutez apparaît immédiatement à la position que vous avez définie. Vous pouvez faire glisser des éléments pour les repositionner ou saisir des coordonnées numériques précises si vous avez besoin d'un positionnement exact.

Le bouton Aperçu charge un produit réel de votre catalogue Odoo et affiche l'étiquette avec les données réelles du produit, y compris les codes-barres générés et les résultats de formule. C'est le moyen le plus rapide de vérifier que tout fonctionne correctement avant d'imprimer.

Utilisez toujours l’aperçu avec un produit réel avant de commencer une impression de production. Vous pouvez ainsi vérifier que les formules donnent le résultat attendu et que les codes-barres sont lisibles aux dimensions choisies.

Composants disponibles

Une étiquette est composée d’un ou plusieurs composants, chacun ayant un type spécifique. Pour ajouter un composant à l'étiquette, appuyez sur le bouton + dans l'éditeur et choisissez le type dans la liste.

Composant Que fait-il Utilisation typique
Texte Afficher du texte statique ou dynamique. Prend en charge les variables de produit, les formules et le texte en gras/italique. Nom du produit, prix, code interne, brève description
Code à barres Générez et affichez un code-barres ou un code QR. Les données à encoder peuvent être un champ produit ou une formule. Code-barres EAN-13, code QR avec URL Odoo, code 128 sur le code interne
Rectangulaire Dessine un rectangle avec une bordure et/ou un remplissage coloré, avec des coins éventuellement arrondis. Cadres, arrière-plans de section, séparateurs visuels
Ligne Dessine une ligne droite entre deux points, avec une couleur et une épaisseur configurables. Séparateurs horizontaux et verticaux
Images Affiche une image fixe intégrée dans le modèle (logo de l'entreprise, icônes, pictogrammes). Logo de l'entreprise, symbole CE, pictogrammes de danger
Tableau Affichez les données dans des lignes et des colonnes avec des bordures et des en-têtes configurables. Tableaux nutritionnels, spécifications techniques, liste des composants
Date/Heure Insère automatiquement la date et l'heure du moment exact de l'impression, dans le format que vous préférez. Date d'emballage, date d'impression des étiquettes, horodatage du lot
Formulaire Dessinez des formes géométriques personnalisées (triangles, flèches, formes libres) avec des couleurs et des bordures configurables. Flèches directionnelles, triangles de présignalisation, décorations graphiques

Champs dynamiques du produit

Les champs dynamiques vous permettent d'insérer automatiquement les données du produit Odoo dans l'étiquette. Écrivez simplement le nom du champ entre accolades dans le texte du composant.

Par exemple, si vous écrivez {nome} dans le champ de contenu d'un composant Texte, il sera remplacé par le nom réel du produit lors de l'impression. La même chose fonctionne pour tous les champs de produits disponibles dans Odoo.

Champs les plus utilisés

Champ Ce que ça montre
{nome} Le nom du produit
{codice_interno} Le code interne (référence) du produit en Odoo
{barcode} Le code barre du produit
{prezzo_vendita} Le prix de vente configuré dans Odoo
{peso} Le poids du produit en kg
{categoria} La catégorie de produit du produit
{descrizione} La description interne du produit
{lotto} Le numéro de lot (pour les produits avec traçabilité active)

Tous les champs standards de Odoo sont disponibles sous forme de variables dynamiques. Si vous avez des champs personnalisés dans votre Odoo, vous pouvez les utiliser de la même manière tant qu'ils sont inclus dans les champs synchronisés dans les paramètres SiltaFlow.

Génération de codes-barres

Le composant Barcode génère le code directement sur l'appareil, en quelques millisecondes seulement. Vous n'avez pas besoin d'une connexion Internet pour générer les codes-barres : le calcul s'effectue entièrement localement.

Chaque composant Barcode possède deux paramètres principaux : le format (le type de code à générer) et les données à encoder (qui peuvent être un champ produit, une formule ou un texte fixe). Vous pouvez également choisir d'afficher ou non le texte du code sous les barres.

Formats disponibles

Formater Comme Utilisation typique
Code 128 Linéaire Codes produits internes, numéros de lots, picking
EAN-13 Linéaire Produits de grande distribution et articles de consommation
EAN-8 Linéaire Petits produits avec un espace limité
QR Code matrice 2D URL Odoo, lien vers fiche produit, données structurées
Data Matrix matrice 2D Très petites étiquettes, pharmaceutique, industrielle
PDF 417 2D empilé Documents de transport, cartes d'identité
Code 39 Linéaire Compatibilité avec les systèmes existants
ITF Linéaire Emballage secondaire (GTIN-14)
UPC-A Linéaire Marchés nord-américains
Aztec matrice 2D Haute densité de données, secteur des transports
Codabar Linéaire Bibliothèques, banques de sang
Code 93 Linéaire Logistique, secteur aérospatial
UPC-E Linéaire Petits produits, format UPC compressé

Si le code-barres est difficile à lire, augmentez la taille du composant Code-barres dans l'éditeur. Les codes-barres linéaires (Code 128, EAN) nécessitent une largeur minimale d'environ 20 mm pour être facilement lus par n'importe quel scanner.

Formules de calcul

Les formules vous permettent de calculer des valeurs au moment de l'impression, à partir des données produit. La syntaxe est similaire à celle d'Excel : fonctions en majuscules, arguments entre parenthèses, séparés par des virgules.

Vous pouvez utiliser des formules dans le champ de contenu de n'importe quel composant Texte ou Code-barres. Par exemple, pour afficher le prix arrondi à deux décimales avec le signe euro devant, écrivez : CONCAT("€ ", ROUND(sale_price, 2)).

Fonctions mathématiques

Fonction Descriptif Exemple
ROUND(valore, decimali) Arrondit un nombre au nombre de décimales indiqué ROUND(prezzo_vendita, 2)
IF(condizione, vero, falso) Renvoie la première valeur si la condition est vraie, la seconde si elle est fausse IF(prezzo_vendita > 50, "PREMIUM", "STD")
MIN(a, b, ...) Renvoie la plus petite valeur parmi celles indiquées MIN(prezzo_vendita, prezzo_costo)
MAX(a, b, ...) Renvoie la plus grande valeur parmi celles indiquées MAX(giacenza, 0)
ABS(valore) Renvoie la valeur absolue (toujours positive) ABS(differenza_inventario)
SQRT(valore) Calculer la racine carrée SQRT(area)

Fonctions de texte

Fonction Descriptif Exemple
CONCAT(a, b, ...) Fusionne plusieurs textes en un seul CONCAT(nome, " - ", codice_interno)
LEFT(testo, n) Prend les n premiers caractères du texte LEFT(nome, 20)
RIGHT(testo, n) Prend les n derniers caractères du texte RIGHT(codice_interno, 6)
MID(testo, inizio, lunghezza) Extrait une partie du texte de l'emplacement indiqué MID(codice_interno, 3, 4)
LEN(testo) Compter le nombre de caractères dans le texte LEN(nome)
UPPER(testo) Convertit le texte en majuscule UPPER(nome)
LOWER(testo) Convertit le texte en minuscules LOWER(categoria)
TRIM(testo) Supprime les espaces de début et de fin TRIM(nome)

Champs calculés

Les champs calculés sont des valeurs intermédiaires que vous pouvez définir une seule fois et réutiliser dans plusieurs composants du même modèle. Ils fonctionnent comme des cellules Excel : donnez un nom à chaque champ calculé, écrivez sa formule, puis vous pouvez utiliser ce nom comme s'il s'agissait d'un champ de produit dans n'importe quel autre composant.

Par exemple, vous pouvez créer un champ calculé appelé tax_price avec la formule ROUND(sale_price * 1.22, 2). Ensuite, dans les composants Texte, vous pouvez simplement écrire {prezzo_iva} pour afficher le prix avec TVA, sans répéter la formule à chaque fois.

Les champs calculés peuvent dépendre d'autres champs calculés : le système résout automatiquement l'ordre de calcul correct, vous n'avez donc pas à vous soucier de les définir dans un ordre spécifique.

Utilisez des champs calculés pour simplifier les modèles complexes. Si vous disposez d'une formule longue que vous utilisez à plusieurs endroits, créez un champ calculé avec un nom descriptif : le modèle devient plus lisible et plus facile à gérer.

Visibilité conditionnelle

La visibilité conditionnelle vous permet d'afficher ou de masquer un composant en fonction des caractéristiques du produit que vous imprimez. Chaque composant peut avoir une règle : si la condition est vraie, le composant apparaît ; si c'est faux, cela n'apparaît pas sur l'étiquette.

Cette fonctionnalité est très utile pour créer un modèle unique qui s'adapte à différents produits. Au lieu de créer des modèles distincts pour chaque cas, vous créez un modèle unique avec des composants conditionnels.

Exemples pratiques

Les règles de visibilité utilisent la même syntaxe que les formules : vous pouvez utiliser des opérateurs de comparaison (>, <, ==, !=), des opérateurs logiques (AND, OR) et n'importe quel champ de produit. Le composant est visible si le résultat de la règle est vrai.

Texte avec formatage mixte

Le composant Texte prend en charge une mise en forme mixte au sein d'un même bloc de texte : vous pouvez avoir un mot en gras, un autre en italique et un autre dans une couleur différente, le tout dans le même composant.

Pour appliquer la mise en forme, utilisez des balises de balisage dans le champ de contenu du composant :

Vous pouvez combiner le formatage avec des champs dynamiques. Par exemple : <code>Prodotto: &lt;b&gt;{nome}&lt;/b&gt; — Prezzo: &lt;font color="#E53E3E"&gt;€ {prezzo_vendita}&lt;/font&gt;</code> affichera le nom du produit en gras et le prix en rouge.

Disposition multi-étiquettes (feuilles Avery)

Si vous imprimez sur du papier A4 ou Letter avec des étiquettes disposées en grille (comme des feuilles Avery), vous pouvez configurer la mise en page directement dans SiltaFlow. Aucun logiciel externe n'est nécessaire : l'application calcule automatiquement la position de chaque étiquette sur la page.

Configuration de la mise en page

Utilisez toujours la position de départ lorsque vous photographiez une feuille partiellement imprimée. Vous évitez le gaspillage de papier et gagnez du temps : vous n'avez pas besoin d'imprimer une feuille entière si vous n'avez besoin que de quelques étiquettes.

Préréglage : Impression à une touche

Un préréglage enregistre la combinaison complète de la configuration de l'imprimante, du modèle et de la mise en page sous le nom de votre choix. La prochaine fois que vous aurez besoin d'imprimer, au lieu de tout reconfigurer à partir de zéro, il vous suffira d'appuyer sur le nom du préréglage et l'impression démarre immédiatement.

Les préréglages sont particulièrement utiles pour les tâches que vous répétez souvent. Par exemple, vous pouvez avoir un préréglage « Réception de marchandises » qui utilise l'imprimante d'entrepôt Zebra avec le modèle d'étiquette de réception, et un préréglage « Étiquettes de prix » distinct qui utilise le Brother près des caisses avec le modèle d'étiquette de prix.

Comment créer un préréglage

  1. Configurez l'imprimante, le modèle et la mise en page comme vous souhaitez les utiliser
  2. Appuyez sur le bouton Enregistrer le préréglage dans la barre d'outils
  3. Donnez au préréglage un nom descriptif (par exemple "Zebra Entrepôt — Étiquette standard")
  4. Le préréglage est immédiatement disponible dans la liste. La prochaine fois, appuyez sur son nom pour lancer l'impression directement.

Les préréglages enregistrent également votre imprimante préférée avec ses paramètres de connexion. Lors de l'utilisation, SiltaFlow tente de se reconnecter directement à cette imprimante sans avoir à effectuer une nouvelle recherche.

Exemples pratiques

Exemple 1 — Étiquette de base avec nom et code-barres

Le modèle le plus simple possible : nom du produit en haut et code barre code interne au centre.

  1. Créez un nouveau modèle, définissez les dimensions (par exemple 60 mm × 30 mm) et la résolution de l'imprimante (203 dpi)
  2. Ajoutez un composant Text. Dans le champ de contenu, écrivez {nome}. Définissez l’alignement gras et central.
  3. Ajoutez un composant Barcode sous le texte. Choisissez le format Code 128 et définissez les données sur {codice_interno}. Activer l'affichage du texte sous le code-barres.
  4. Appuyez sur Aperçu pour vérifier le résultat, puis enregistrez le modèle.

Exemple 2 — Étiquette de prix avec écriture conditionnelle « OFFRE »

Une étiquette indiquant le prix calculé et la mention « OFFRE » uniquement pour les produits en promotion.

  1. Créez le modèle avec les dimensions du tag (par exemple 50 mm × 30 mm)
  2. Ajoutez un composant Text pour le nom : {nome}
  3. Ajoutez un composant Texte pour le prix avec la formule : CONCAT("€ ", ROUND(prezzo_vendita, 2)). Définissez la police en grand et en gras.
  4. Ajoutez un composant Text avec le texte "OFFER". Dans les paramètres du composant, dans la section Visibilité, définissez la condition : sconto_percentuale > 0. Définissez la couleur du texte sur rouge.
  5. En avant-première, testez avec un produit avec remise et un sans : le mot « OFFRE » ne doit apparaître que dans le premier cas.

Exemple 3 — Étiquette de code QR pointant vers la carte Odoo

Un QR code qui, visualisé avec n'importe quel smartphone, ouvre directement la fiche produit dans le backend Odoo.

  1. Créez le gabarit aux dimensions souhaitées (au moins 40 mm × 40 mm pour le QR)
  2. Ajoutez un composant Barcode, choisissez le format QR Code.
  3. Dans le champ donné, utilisez la formule : CONCAT("https://tuoodoo.com/web#id=", id_prodotto, "&model=product.template"). Remplacez youroodoo.com par l'adresse réelle de votre serveur Odoo.
  4. Ajoutez un composant Texte sous le code QR avec le nom du produit et le code interne.
  5. Prévisualisez que le code QR est généré correctement, puis enregistrez.

Conseils

Testez toujours les formules en aperçu avant de les utiliser en production. Si une formule contient une erreur, l'éditeur indique quel composant présente le problème et une description de l'erreur — le débogage est rapide même pour les formules complexes.

Vous pouvez créer des chaînes de champs calculés où l'un dépend de l'autre. Par exemple : price_vat = ROUND(price_sale * 1.22, 2), puis price_label = CONCAT("€ ", price_vat). Le système calcule automatiquement tout dans le bon ordre.

Créez un préréglage distinct pour chaque opération récurrente : un pour la réception des marchandises, un pour les étiquettes de prix, un pour les étiquettes d'expédition. Avec les préréglages, vous passez de la configuration à l’impression d’une seule touche.

Utilisez la visibilité conditionnelle pour réduire le nombre de modèles que vous devez gérer. Un modèle unique avec des composants conditionnels fonctionne bien pour des produits très différents : il est plus facile à gérer que dix modèles distincts presque identiques.

Le composant Date/Heure imprime toujours l’heure exacte de l’impression physique. Utilisez-le pour les étiquettes d'emballage ou de production : chaque étiquette aura son propre horodatage précis, même dans le cas d'une impression par lots de centaines d'articles.

Exigences

Pour utiliser les modèles et formules de SiltaFlow, vous avez besoin de :