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
- Champ de lot — Affiche le champ de lot uniquement si le suivi des lots est activé pour le produit. Etat :
tracciabilita == "lotto" - Mot "OFFRE" — Affiche le mot "OFFRE" uniquement si le produit bénéficie d'une remise active. Etat :
sconto_percentuale > 0 - Date d'expiration — Affiche la date d'expiration uniquement pour les produits avec une date d'expiration configurée. Etat :
giorni_scadenza > 0 - Badge « PREMIUM » — Affiche un badge coloré uniquement pour les produits dont le prix est supérieur à un seuil. Etat :
prezzo_vendita > 100
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 :
<b>testo in grassetto</b>— pour le gras<i>testo in corsivo</i>— pour les italiques<u>testo sottolineato</u>— pour souligner<font size="18" color="#FF0000">testo</font>— pour une taille et une couleur personnalisées
Vous pouvez combiner le formatage avec des champs dynamiques. Par exemple : <code>Prodotto: <b>{nome}</b> — Prezzo: <font color="#E53E3E">€ {prezzo_vendita}</font></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
- Lignes et colonnes — Définit le nombre d'étiquettes par ligne et par colonne. Pour une feuille Avery 2x5 (10 étiquettes par feuille), saisissez 2 colonnes et 5 lignes.
- Marges du papier — Définit les marges de page supérieure, inférieure, gauche et droite en millimètres. Utilisez les valeurs indiquées sur l'emballage de la feuille d'étiquettes.
- Espacement des étiquettes — L'espace horizontal et vertical entre les étiquettes. Pour de nombreuses feuilles Avery, l'espacement est de 0 mm.
- Position de départ — Si la feuille est déjà partiellement utilisée, indique à partir de quelle cellule commencer. Par exemple, si vous avez déjà imprimé les 4 premières étiquettes d'une feuille de 10, définissez la ligne 1, colonne 5 pour qu'elle commence à partir de la cinquième cellule.
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
- Configurez l'imprimante, le modèle et la mise en page comme vous souhaitez les utiliser
- Appuyez sur le bouton Enregistrer le préréglage dans la barre d'outils
- Donnez au préréglage un nom descriptif (par exemple "Zebra Entrepôt — Étiquette standard")
- 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.
- 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)
- Ajoutez un composant Text. Dans le champ de contenu, écrivez
{nome}. Définissez l’alignement gras et central. - 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. - 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.
- Créez le modèle avec les dimensions du tag (par exemple 50 mm × 30 mm)
- Ajoutez un composant Text pour le nom :
{nome} - Ajoutez un composant Texte pour le prix avec la formule :
CONCAT("€ ", ROUND(prezzo_vendita, 2)). Définissez la police en grand et en gras. - 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. - 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.
- Créez le gabarit aux dimensions souhaitées (au moins 40 mm × 40 mm pour le QR)
- Ajoutez un composant Barcode, choisissez le format QR Code.
- 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. - Ajoutez un composant Texte sous le code QR avec le nom du produit et le code interne.
- 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 :
- Appareil Android avec la version 10 ou ultérieure
- Un compte Odoo configuré dans SiltaFlow (pour télécharger les données du produit)
- Une imprimante compatible configurée (voir le guide Imprimantes prises en charge)
- Pour une mise en page multi-étiquettes : Imprimer via Android Imprimer avec des feuilles Avery standard