Docs  /  Prix & Règles  /  Formules & calculs

Formules & calculs

Dernière mise à jour: 20. octobre 2026

Avec une formule, le configurateur calcule lui-même : une surface à partir de la largeur et de la hauteur, un montant à partir de la quantité et du prix unitaire, un supplément à partir d'un choix. Une formule est une caractéristique à part entière qui lit les valeurs d'autres caractéristiques et recalcule à chaque sélection. Vous pouvez afficher son résultat, l'utiliser dans d'autres formules ou le reprendre dans le prix.

Fonctionnement

  1. Créez une caractéristique et choisissez sous Catégorie de données le Calcul et comme Type de donnée la Formule.
  2. Sous Paramètres de base, attribuez un Nom interne (ID) parlant, p. ex. surface. C'est par ce nom que d'autres formules utilisent le résultat.
  3. Sous Paramètres de formule, saisissez la formule dans le champ Calcul (formule), p. ex. $largeur * $hauteur / 10000.
  4. Si le résultat doit entrer dans le prix, créez une Tarification par paliers – voir Reprendre le résultat dans le prix.
  5. Réglez la Visibilité sur Non (masqué) si vos clients ne doivent pas voir le résultat.
  6. Vérifiez le résultat dans l'aperçu avec quelques valeurs de test.

Caractéristique formule Statikzuschlag : catégorie de données Calcul, type de donnée Formule et, dans les paramètres de formule, le calcul d’un supplément à partir de 3500 mm de profondeur ; à gauche les formules de prix enchaînées

Une formule est une expression JavaScript. Aucune connaissance en programmation n'est nécessaire – les quatre opérations, les parenthèses et quelques fonctions suffisent dans presque tous les cas.

Utiliser des caractéristiques dans la formule

Vous désignez une caractéristique par son Nom interne (ID) précédé d'un $. Les majuscules et minuscules comptent.

Écriture Résultat
$largeur La valeur actuelle de la caractéristique (voir le tableau ci-dessous)
$couleur.price Le supplément de la valeur choisie. En sélection multiple, la somme des suppléments choisis.
$couleur.originalPrice Le supplément sans multiplication par une quantité. En V3, identique à .price.
$$largeur Comme $largeur. Avec le moteur Legacy, la formule ne se recalcule toutefois pas si seule cette caractéristique change – seulement si l'une des autres change. En V3, cette différence n'existe pas.

Quelle valeur obtient-on ?

Caractéristique $nom renvoie
Sélection, Boutons radio, Liste avec images Le champ Valeur de l'entrée choisie – pas l'étiquette. Si la valeur est un nombre (120), la formule calcule avec. Sinon, c'est un texte ('bois').
Sélection multiple, Case à cocher Legacy : une liste des valeurs choisies, p. ex. ['led','variateur']. V3 : vide. Pour les suppléments, utilisez $nom.price.
Champ de saisie court / long La saisie. Les nombres deviennent des nombres, même avec une virgule décimale (12,5 → 12.5). Tout le reste reste du texte.
Formule, Liste de prix, Combinaison simple Leur résultat. Vous pouvez ainsi enchaîner des formules.
Rien de choisi, rien de saisi, masqué par une règle Vide ('') – voir Champs vides.

Calculer, comparer, décider

Signe Signification Exemple
+ - * / Quatre opérations $largeur * $hauteur
% Reste de la division $quantite % 10
( ) Parenthèses ($largeur + 10) * 2
== != < <= > >= Comparaison $largeur > 200
&& ! et, non $largeur > 200 && $hauteur > 150
condition ? a : b Si – alors – sinon $largeur > 200 ? 25 : 0

Ou s'écrit avec deux barres verticales : $largeur > 200 || $hauteur > 150 est vrai si au moins une des deux conditions est remplie.

Attention à ^ : en JavaScript, ce n'est pas un exposant, mais un XOR bit à bit. 2 ^ 3 donne 1, pas 8. Pour les puissances, utilisez Math.pow(2, 3).

Si – alors s'écrit toujours avec ? :. Vous pouvez imbriquer plusieurs niveaux :

$quantite >= 100 ? 7.90 : ($quantite >= 50 ? 8.90 : 10.90)

Renvoyez toujours un nombre. Une simple comparaison comme $largeur > 200 donne 1 ou 0 avec le moteur Legacy, mais aucun résultat en V3. Écrivez donc $largeur > 200 ? 1 : 0.

Fonctions

Les fonctions avec Math. fonctionnent dans les deux moteurs. Les formes courtes sans Math. n'existent qu'en V3.

Fonction Signification Forme courte (V3 uniquement)
Math.round(x) Arrondi commercial à l'entier round(x), avec décimales : round(x, 2)
Math.ceil(x) Arrondi supérieur ceil(x)
Math.floor(x) Arrondi inférieur floor(x)
Math.abs(x) Valeur absolue abs(x)
Math.min(a, b, …) Plus petite valeur min(a, b, …)
Math.max(a, b, …) Plus grande valeur max(a, b, …)
Math.sqrt(x) Racine carrée sqrt(x)
Math.pow(x, y) x puissance y pow(x, y)
Math.log(x) Logarithme naturel log(x)
Math.exp(x) e puissance x exp(x)
Math.PI Nombre π PI

Arrondir à des décimales dans les deux moteurs : Math.round(x * 100) / 100 (deux décimales) ou Math.ceil(x * 2) / 2 (arrondi supérieur à 0,5).

Les écritures en majuscules des tableurs (ROUND, IF, MAX) n'existent pas.

Une formule, une expression

En V3, une formule se compose d'exactement une expression. Les variables intermédiaires (var), les blocs if, les boucles et plusieurs instructions séparées par ; n'y donnent aucun résultat.

Le moteur Legacy exécute aussi les formules sur plusieurs lignes. Pour qu'un composant calcule de la même façon dans les deux moteurs, écrivez malgré tout une expression et répartissez les calculs longs sur plusieurs caractéristiques de type formule – par exemple surface puis prix_surface qui s'appuie dessus. C'est aussi plus facile à vérifier. Plus d'informations : Moteur frontend : Legacy ou V3.

Champs vides

Tant qu'une caractéristique est vide, la formule insère un texte vide. En multiplication et en division, il compte comme 0 ('' * 2 donne 0). En addition, en revanche, JavaScript concatène les textes : si $a vaut 5 et $b est vide, $a + $b donne le texte « 5 » au lieu du nombre 5. Le moteur V3 ne reprend pas un texte dans le prix. Pour être sûr :

($a || 0) + ($b || 0)

|| 0 insère 0 pour un champ vide. Pour les caractéristiques de sélection avec des valeurs textuelles, ce n'est pas nécessaire – comparez directement : $couleur == 'rouge' ? 20 : 0.

Si une formule produit une erreur (faute de frappe, fonction inconnue), son résultat est vide ou 0. Le configurateur continue de fonctionner.

Reprendre le résultat dans le prix

Une formule ne fournit d'abord qu'un nombre. Il entre dans le prix via la Tarification par paliers de la formule et l'Opérateur de prix – exactement comme pour la matrice de prix :

Objectif Tarification par paliers Opérateur de prix
La formule est le prix (p. ex. 49.90) un palier : valeur 0, prix 1 Valeur × Prix
La formule est une quantité, p. ex. des m², multipliée par un prix un palier : valeur 0, prix = prix par unité, p. ex. 45 Valeur × Prix
Le prix par unité dépend de la quantité plusieurs paliers, p. ex. 0 → 45, 5 → 42, 10 → 38 Valeur × Prix
Supplément fixe à partir d'un seuil un palier avec le seuil et le supplément Prix

Sans tarification par paliers, la formule ne contribue pas au prix. Le calcul détaillé des tarifications par paliers est décrit dans Configurer les prix.

Décimales

Le champ Décimales des Paramètres de formule détermine le nombre de décimales avec lequel le résultat est affiché. Avec le moteur Legacy, le résultat est aussi réutilisé arrondi ; en V3, seul l'affichage l'est. Si l'arrondi doit influencer le prix, arrondissez dans la formule elle-même, p. ex. avec Math.round(x * 100) / 100.

Les formules ailleurs

  • Matrice de prix : une formule peut servir de Dimension X ou Y – par exemple une surface calculée comme ligne du tableau. Voir Matrices de prix depuis Excel/CSV.
  • Combinaison simple : si vous voulez seulement additionner, multiplier ou relier sous forme de texte deux caractéristiques ou plus, le type de donnée Combinaison simple suffit – sans aucune formule.

Exemples pratiques

Tous les exemples fonctionnent dans les deux moteurs. Remplacez les noms des caractéristiques par les vôtres.

Surface en m² à partir de centimètres

$largeur * $hauteur / 10000

Surface avec une surface minimale de 0,5 m²

Math.max($largeur * $hauteur / 10000, 0.5)

Surface arrondie au 0,5 m² supérieur

Math.ceil($largeur * $hauteur / 10000 * 2) / 2

Supplément à partir d'une largeur de 200 cm

$largeur > 200 ? 35 : 0

Prix unitaire avec remise de quantité × quantité

$quantite * ($quantite >= 100 ? 7.90 : ($quantite >= 50 ? 8.90 : 10.90))

Supplément selon le choix – la caractéristique materiau a les valeurs bois, alu, inox :

$materiau == 'inox' ? 1.35 : ($materiau == 'bois' ? 1.2 : 1)

Vous pouvez utiliser ce facteur dans une deuxième formule : $surface * 45 * $facteur_materiau.

Additionner les suppléments de plusieurs caractéristiques

$couleur.price + $motorisation.price

Circonférence d'une table ronde à partir du diamètre

Math.round(Math.PI * $diametre)

Avec l'agent IA

L'agent IA écrit les formules pour vous lorsque vous décrivez ce qui doit être calculé :

« Le prix doit être largeur fois hauteur en m² fois 45 euros, mais au minimum pour 0,5 m². »

Il crée la caractéristique de type formule et configure la tarification par paliers. Vérifiez le résultat dans l'aperçu avec quelques dimensions de test avant de publier.

Dépannage

  1. La formule donne toujours 0 ou rien – le Nom interne (ID) est-il correct, majuscules et minuscules comprises ? La caractéristique est-elle remplie ?
  2. La formule calcule, le prix ne change pas – la Tarification par paliers manque. Sans palier (valeur 0, prix 1) et opérateur de prix Valeur × Prix, le résultat ne compte pas dans le prix.
  3. La somme manque dans le prix tant qu'un champ est vide – le champ vide a été additionné comme texte. Écrivez ($a || 0) + ($b || 0).
  4. Une comparaison avec une sélection ne réagit jamais – la formule voit la Valeur de l'entrée, pas son étiquette. $couleur == 'Rouge' ne réagit pas si la valeur est rouge.
  5. Aucun résultat en V3, mais en Legacy oui – la formule contient var, if ou plusieurs instructions, une forme courte comme round() manque en Legacy, ou elle renvoie une simple comparaison. Écrivez une expression avec ? : et des fonctions Math..
  6. 2 ^ 3 donne 1 – ^ n'est pas un exposant. Utilisez Math.pow(2, 3).
  7. Le prix diffère de quelques centimes – arrondissez dans la formule elle-même plutôt que via Décimales.

Étapes suivantes


← Tous les articles Essai gratuit 14 jours