Développement web

Le prix reste visible, mais il manque dans la demande

Jérémy Chomel Dawap
  • Date éditoriale : 9 octobre 2026
  • Temps de lecture : 14 minutes
  1. Dans quel cas rechercher un prix omis par le formulaire
  2. Anatomie : séparer affichage, données construites et prix conservé
  3. Pourquoi un contrôle désactivé peut manquer à l’enregistrement
  4. Lecture seule : préserver une entrée sans lui donner autorité
  5. Décision : conserver, réviser ou refuser un prix absent
  6. Exercice corrigé : treize observations natives du formulaire
  7. Réparer une copie cachée sans créer un second prix
  8. Erreurs fréquentes : rendre le champ présent et perdre la décision
  9. Plan d’action : fermer un formulaire puis vérifier le dossier enregistré
  10. Lectures complémentaires : garder la bonne frontière du diagnostic
  11. Conclusion : verrouiller le prix sans rendre son absence ambiguë
Portrait de Jérémy Chomel

Le commercial modifie la quantité d’une ligne de devis. Le prix négocié reste affiché dans un champ grisé : il semble protégé. Après enregistrement, la ligne retrouve pourtant le tarif public, un montant vide ou une erreur de prix obligatoire. Dans ce scénario fictif, le montant n’a pas changé pendant un calcul : il manque déjà dans les données construites depuis le formulaire.

Ce diagnostic concerne un portail B2B ou un back-office qui désactive un contrôle pour empêcher sa modification. L’état visuel peut donner l’impression que la valeur sera conservée. Le navigateur et le serveur ont chacun une responsabilité différente : déterminer quels champs partent, puis décider ce que signifie leur présence ou leur absence. Il faut observer ces deux étapes avant de modifier le moteur tarifaire.

Le risque est d’assimiler un prix visible et verrouillé à un prix effectivement transmis : un contrôle désactivé peut sortir du formulaire sans que le commercial ait effacé sa valeur. Treize observations natives sur une page locale comparent contrôle actif, désactivé, lecture seule, valeur vide et copie cachée. Elles ne créent aucun devis, n’appellent aucun ERP et ne testent aucun serveur métier.

Une démarche de développement web sur mesure peut fermer ce défaut sur un écran précis. Dans une application métier de gestion des devis, la correction doit rendre compréhensibles le prix affiché, les modifications demandées et le montant finalement conservé, sans ouvrir au navigateur le pouvoir de fixer une condition commerciale protégée.

Dans quel cas rechercher un prix omis par le formulaire

Comparer les rôles qui voient le même devis

La piste est utile lorsqu’un prix reste correct pour le responsable tarifaire, mais disparaît quand un commercial enregistre la même ligne. Le premier rôle possède peut-être un champ actif ; le second reçoit un contrôle désactivé. Les écrans paraissent identiques, alors que leur construction de données diffère. La recette doit conserver rôle, version du formulaire, identifiant fictif de ligne et opération choisie, plutôt qu’une capture du seul montant.

Deux signaux faibles orientent cette recherche : le défaut survient après une modification sans rapport avec le prix, ou apparaît seulement sur les lignes dont le tarif est verrouillé. Ils ne prouvent pas la cause. Comparez la valeur visible avec la demande réellement construite. Si le prix part correctement et change plus tard, poursuivez vers le contrat serveur, la version tarifaire ou la conservation du devis.

Écarter les anomalies qui relèvent d’un autre mécanisme

Un nombre français tronqué, une remise nouvelle et une écriture concurrente ne sont pas des omissions de contrôle. Un champ absent n’est pas davantage une preuve que l’application a accepté un prix nul. Le diagnostic s’arrête à la première divergence établie. Il intéresse particulièrement les équipes ADV, les responsables produit et les éditeurs qui rénovent des formulaires de commande sans vouloir reconstruire toutes les règles commerciales.

Le périmètre pilote peut rester une ligne fictive avec quantité modifiable et prix possédé par le serveur. Identifiez l’effet de l’enregistrement : brouillon, révision du devis ou engagement déjà accepté. Un document signé demande des règles supplémentaires de conservation ; la réparation du formulaire ne donne pas le droit de reprendre ses montants. La finance ou le responsable commercial valide ce sens avant toute reprise historique.

Anatomie : séparer affichage, données construites et prix conservé

Retrouver ce que le navigateur prépare réellement

Un contrôle possède notamment une valeur, un nom, un état et un rattachement au formulaire. La couleur grise appartient à la présentation ; la désactivation appartient aussi au comportement du contrôle. Une interface peut conserver la valeur dans son DOM tout en l’excluant des entrées préparées pour l’enregistrement. Une capture d’écran et une liste de données répondent donc à des questions différentes.

Dans notre témoin, le prix fictif 120.00 apparaît dans le cas B, mais aucune entrée de prix n’est construite. Le cas A contient la même valeur dans un contrôle actif et produit une entrée. Nous observons FormData créé depuis le formulaire ; aucune requête ne part. Une application qui construit manuellement son JSON peut suivre un autre chemin : il faut alors inspecter ce constructeur et sa demande effective.

Suivre la décision jusqu’à une lecture après écriture

Le dossier de recette distingue quatre observations : montant présenté, données préparées, demande reçue et état relu. Le prix absent peut être refusé, conservé depuis le dossier ou remplacé par un défaut selon votre implémentation. Le navigateur ne choisit pas cette politique. Un message « enregistré » ne suffit pas à expliquer laquelle a été appliquée ni à démontrer que le montant accepté est resté identique.

Le backend doit retrouver le devis et sa ligne dans le périmètre du compte authentifié. Quantité, devise, unité et révision précisent la modification demandée. Un montant associé à une autre ligne ne répare pas une omission. La QA rapproche le résultat avec la source commerciale autorisée ; le laboratoire local décrit seulement la frontière de construction du formulaire et ne certifie pas cette chaîne serveur.

Pourquoi un contrôle désactivé peut manquer à l’enregistrement

Distinguer un état HTML d’un style grisé

La référence MDN de disabled précise que les contrôles désactivés ne sont pas soumis avec le formulaire. Dans notre page, B possède cet attribut et manque dans les entrées. C porte le texte false dans le même attribut et manque également : cet attribut HTML est booléen, sa présence ne devient pas une activation parce que son texte ressemble à une valeur fausse.

Un composant peut recevoir un booléen puis produire du HTML ; une chaîne assemblée manuellement peut produire un autre résultat. Vérifiez le DOM chargé et les données construites, sans accuser React, Vue ou Twig à partir du seul attribut trouvé dans un fichier. De même, une classe CSS qui grise un champ ne prouve ni désactivation ni protection. Le correctif doit porter sur le chemin observé.

Inspecter le groupe et le nom du contrôle

Un fieldset désactivé peut rendre inactif un contrôle qui ne possède pas lui-même l’attribut. Le témoin E l’illustre ; F montre le cas particulier d’un contrôle placé dans la première legend, conservé dans nos entrées. Ces observations invitent à contrôler les ancêtres réels. Déplacer un champ pendant une refonte peut changer son comportement sans changer la ligne qui définit ce champ.

Le standard HTML sur la construction des entrées décrit aussi l’exclusion des contrôles sans nom. Le cas I affiche 120.00 mais ne produit aucun prix nommé. La présence de texte à l’écran ne remplace donc ni le nom du champ ni son état effectif. La recette doit identifier le contrôle qui participe réellement à ce formulaire.

Lecture seule : préserver une entrée sans lui donner autorité

Choisir un comportement compatible avec le contrôle

Le témoin D utilise un input en lecture seule : la valeur est présente dans FormData. La référence MDN de readonly distingue cet état de la désactivation et précise les contrôles concernés. Notre cas G conserve une valeur de select malgré un attribut readonly ; cet attribut n’est pas une méthode de verrouillage applicable à ce contrôle.

Changer tous les disabled en readonly n’est donc pas une correction globale. Certains éléments doivent rester exclus parce qu’ils ne représentent aucune modification demandée. D’autres peuvent devenir un texte accompagné de l’explication « tarif fixé par le contrat ». Le produit choisit une présentation qui rend la tâche possible, tandis que l’intégration conserve le contrat exact des champs attendus par le serveur.

Conserver les contrôles de droit et de valeur côté serveur

Un prix transmis depuis un contrôle en lecture seule demeure une donnée reçue du client. Une autre requête peut porter un autre montant. Le serveur doit décider si ce rôle peut modifier le prix ou si la ligne reprend une condition déjà possédée par le domaine. Le mode d’affichage facilite le parcours ; il ne prouve pas l’autorisation de modifier une remise, une devise ou un tarif négocié.

La lecture seule ne fournit pas non plus une validation de complétude. Le cas M, vide et marqué required, reste accepté par la validation de notre formulaire alors que son entrée de prix est vide. MDN précise que les contrôles en lecture seule ne participent pas à cette validation. L’application doit vérifier les exigences métier indépendamment du résultat visuel et du verdict natif du navigateur.

Décision : conserver, réviser ou refuser un prix absent

Nommer la modification demandée au devis

Dans une mise à jour de quantité, le prix peut être possédé par le dossier ou recalculé selon une règle explicitement décidée. Dans une commande qui remplace toute la ligne, son absence peut rendre la demande incomplète. Ces choix ne découlent pas de disabled. Définissez, pour chaque endpoint, si l’opération demande une modification partielle, un remplacement ou une nouvelle décision tarifaire ; évitez de laisser une valeur par défaut décider à leur place.

Le contrat distingue absence d’entrée, chaîne vide, valeur explicite et plusieurs valeurs concurrentes. H produit une entrée vide ; B n’en produit aucune. Assimiler les deux détruit cette information avant la validation. Une quantité absente peut aussi exiger un refus, sans que le prix absent suive la même règle. Le traitement dépend du sens de chaque champ et du pouvoir du compte sur cette opération.

Fermer une politique qui ne réécrit pas le prix accepté

Pour une ligne dont le tarif est verrouillé, une politique possible consiste à retrouver le montant autorisé depuis la révision du dossier et à ignorer toute tentative de remplacement non permise. Pour une nouvelle estimation, le serveur peut demander les données nécessaires au calcul. Il faut publier le résultat comme estimation ou révision selon le cas. Ce sont des propositions d’architecture à recetter, pas des comportements backend exécutés par notre témoin.

Le bloc de décision est de prioriser la sémantique de l’opération et l’autorité du prix avant de réparer sa transmission. Différez la refonte du moteur lorsque l’omission précède son entrée. Refusez une ouverture qui transforme un prix absent en zéro ou en tarif public sans règle approuvée. Si le contrat ne permet pas de décider, bloquez la ligne avec un motif récupérable plutôt que présenter un enregistrement indéterminé comme réussi.

  • Conservez le prix depuis la révision autorisée si la commande modifie seulement une donnée permise sans rouvrir la décision tarifaire.
  • Recalculez une estimation seulement avec le contexte complet et la règle approuvée, puis demandez une nouvelle validation lorsque le devis doit être révisé.
  • Contrôlez d’abord la cohérence des valeurs reçues ; refusez une demande incomplète ou contradictoire avant toute écriture, sans transformer l’absence en montant implicite.

Exercice corrigé : treize observations natives du formulaire

Comparer les entrées sur une page sans connexion métier

Les treize boutons ont été activés dans le navigateur sur une page HTML locale avec des valeurs fictives. Chacun construit FormData depuis son formulaire et affiche les entrées, leur présence, leur première valeur et le résultat de validation native. La version du moteur n’est pas exposée. Aucun bouton ne soumet une demande à un serveur ; aucun devis client, tarif contractuel réel ou appel ERP n’est utilisé.

120.00 désigne une chaîne de prix fictive ; 110.00 une ancienne copie cachée volontairement différente. Nous ne calculons aucune taxe ni conversion monétaire. La mention de prix canonique dans la maquette est un libellé illustratif, sans décision serveur exécutée. Les résultats ci-dessous éprouvent la liste native de données, puis donnent des questions à reprendre dans la recette de votre application.

CasContrôle fictifEntrées de prix observéesDécision à recetter dans l’application
AInput actif, valeur 120.00Une valeur : 120.00Qualifier sa modification autorisée.
BInput désactivé, valeur affichée 120.00Aucune entréeNe pas déduire zéro d’une absence.
CAttribut disabled avec le texte falseAucune entréeVérifier l’état HTML produit.
DInput readonly, valeur 120.00Une valeur : 120.00Contrôler le droit côté serveur.
EInput dans un fieldset désactivéAucune entréeInspecter le groupe du champ.
FInput dans la première legend du groupe désactivéUne valeur : 120.00Tester cette exception de structure.
GSelect portant readonlyUne valeur : 120.00Choisir un verrouillage applicable.
HInput actif, valeur videUne entrée videDistinguer effacement et omission.
IInput visible sans nomAucune entrée nomméeRetrouver le contrat du champ.
JCopie cachée 110.00, affichage désactivé 120.00Une valeur : 110.00Refuser une copie devenue incohérente.
KCopie cachée et input readonly de même nomDeux valeurs : 110.00 et 120.00Définir un refus des valeurs concurrentes.
LInput avec aria-disabled seulUne valeur : 120.00Vérifier le comportement réel du contrôle.
MInput readonly vide avec requiredUne entrée vide ; validation native réussieVérifier les exigences métier au serveur.

Lire la preuve sans certifier le devis final

Cas concret : dans B, 120.00 reste visible et zéro entrée de prix est construite, contre une dans A. La présence de ce champ passe donc de 100 % à 0 % entre ces deux témoins. Cette comparaison locale décrit une omission, pas un taux d’incidents clients. Contrôlez d’abord si votre commande attend ce prix ou doit le retrouver depuis le dossier ; le navigateur ne fournit pas cette décision.

Autre cas de figure : J prépare une valeur, 110.00, différente des 120.00 affichés, soit 0 % de correspondance sur cette unique entrée. Contrôlez la correspondance avec le montant montré avant de qualifier la réparation sur la seule présence du champ. K prépare deux valeurs ; get en retourne la première et getAll expose les deux dans notre page. H et M produisent une entrée vide. Aucun parseur serveur, droit ou enregistrement ERP n’est certifié par ces observations.

Réparer une copie cachée sans créer un second prix

Comparer la valeur présentée et celle qui participe

Paradoxalement, ajouter un champ caché peut rétablir une entrée dans un formulaire dont le contrôle visible reste désactivé. Cette réparation exige pourtant une règle de synchronisation et une décision sur l’autorité de la copie. Dans J, l’utilisateur voit 120.00 tandis que la seule entrée porte 110.00. L’enregistrement peut sembler complet parce qu’un prix existe, alors que la correction a déplacé l’écart entre affichage et transmission.

La copie peut devenir ancienne après une mise à jour asynchrone, un changement de quantité ou une reconstruction du composant. La recette suit ces événements et vérifie les valeurs au moment de préparer la demande. Ne multipliez pas les champs cachés pour satisfaire un validateur sans retrouver leur provenance. Le serveur conserve son propre contrôle de contrat ; aucun contrôle invisible ne doit acquérir une autorité commerciale par sa seule présence.

Traiter les valeurs concurrentes avant une conversion

Dans K, le formulaire possède deux contrôles actifs de même nom, dont un est caché. La liste native conserve leurs deux valeurs dans l’ordre observé. Une lecture qui ne retient que la première masque le désaccord. La préparation d’un objet à valeur unique peut perdre cette information avant la validation. Vérifiez la cardinalité attendue du prix avant de choisir une valeur, puis documentez le refus des doublons non prévus. Pour notre commande à prix unique, le seuil proposé est une seule valeur ; au-delà, le contrat doit refuser la demande avant conversion. Cette politique serveur reste à recetter, elle n’est pas exécutée par le navigateur.

Tous les noms répétés ne constituent pas une erreur : plusieurs éléments sélectionnés peuvent appartenir à un contrat multivalué. Le prix unitaire de notre ligne fictive est choisi comme champ unique. Cette convention doit être fermée pour votre endpoint. Un changement de bibliothèque de formulaire peut modifier l’endroit où une répétition devient visible ; les tests gardent le cas contradictoire et la demande brute autorisée, plutôt que le seul objet final.

Erreurs fréquentes : rendre le champ présent et perdre la décision

Réactiver le prix juste avant la préparation

Une réparation peut retirer la désactivation au moment d’enregistrer pour que le champ participe. Elle demande alors d’éprouver tous les chemins de soumission, les refus et la remise en état du contrôle. Un événement non exécuté sur une autre commande peut réintroduire l’omission. Le correctif doit expliquer pourquoi cette réactivation est nécessaire au contrat, au lieu d’ajouter une manipulation dont le résultat dépend de l’ordre des gestionnaires.

Cette approche ne donne aucune protection supplémentaire contre une modification du prix côté client. Contrôlez aussi le retour d’erreur : le champ retrouve-t-il son état prévu, la quantité reste-t-elle saisie et le devis est-il encore celui présenté ? Pour un montant possédé par le serveur, transmettre un identifiant de ligne et une commande explicite peut être plus clair que réactiver un prix qui ne doit jamais devenir une instruction de remplacement.

Confondre disparition et recalcul obligatoire

Une absence peut déclencher un recalcul dans le code existant, mais ce comportement n’est pas forcément la règle commerciale désirée. La quantité modifiée peut devoir conserver une condition négociée, provoquer une estimation ou créer une nouvelle révision selon le contrat. Le responsable des tarifs décide ce sens. Corriger le transport du champ sans examiner cette branche laisse le support incapable d’expliquer pourquoi le prix final a changé.

Évitez également de reconstruire les anciens prix depuis leur affichage supposé. Des dossiers ont peut-être été modifiés selon une règle légitime ; d’autres n’ont jamais été engagés. La reprise historique sépare les lignes dont l’omission et l’effet sont prouvés des lignes simplement proches. Document source, version du formulaire, droit de correction et résultat relu constituent une opération distincte de la livraison du prochain composant.

Plan d’action : fermer un formulaire puis vérifier le dossier enregistré

Produire un témoin dont le prix a une origine connue

Le responsable applicatif choisit un rôle, une version d’écran et une ligne fictive. L’équipe produit précise le geste autorisé ; le développement retrouve contrôle, nom, groupe, formulaire et constructeur de données. La personne qui possède les tarifs indique si la quantité change le prix ou seulement le total. Ces livrables permettent de comparer la demande attendue avec la liste native et avec le payload réellement reçu par le backend.

La QA prépare les variantes actif, désactivé, lecture seule, champ vide, groupe désactivé et copie cachée contradictoire. Elle ajoute un prix concurrent envoyé par un chemin de test autorisé. Les tests unitaires du domaine couvrent la politique d’absence ; les tests d’intégration vérifient réception et persistance ; le parcours navigateur vérifie affichage et reprise après refus. Une seule capture du montant ne remplace pas ces responsabilités.

Livrer une correction dont le support retrouve le résultat

Le livrable serveur nomme entrées requises, champs ignorés, cardinalité et réponses de refus. La journalisation relie identifiant de recette, version du formulaire, ligne, présence du champ et verdict, avec un accès adapté aux conditions commerciales. Le monitoring distingue omission refusée, reprise réussie et divergence après écriture. L’owner de l’application doit pouvoir retrouver la branche exécutée sans exporter inutilement les tarifs privés dans les logs.

Le pilote s’ouvre seulement si le prix relu suit la décision approuvée et si une demande refusée ne produit aucune modification. Un seuil local proposé est toute divergence inexpliquée sur le portefeuille de recette, avec arrêt de l’écran concerné ; ce n’est pas une norme universelle. Le runbook prévoit repli vers une saisie assistée autorisée, rollback du formulaire et reprise des devis bloqués. Le retour d’interface ne répare pas à lui seul une ligne déjà enregistrée.

Lectures complémentaires : garder la bonne frontière du diagnostic

Montant présent mais mal interprété

Le diagnostic de saisie française tronquée avant le calcul compare texte original et conversion numérique. Il complète cet article lorsque la demande contient bien un prix, mais que sa lecture en modifie la valeur. Ses essais de parseFloat ne remplacent pas les observations du formulaire ; les deux erreurs peuvent se succéder dans la même chaîne et doivent garder des témoins distincts.

Dans une recette commune, conservez d’abord la présence du champ, puis son texte exact et enfin la valeur admise. Si la demande ne contient aucun prix, le témoin de conversion ne doit pas fabriquer un zéro pour continuer. Cette séparation permet d’attribuer chaque refus au composant qui l’a effectivement produit.

Commande engagée par une touche de fin

Le cas de douchette qui clôture le formulaire au premier scan traite la soumission implicite et la séparation des commandes. Il devient pertinent si l’enregistrement lui-même intervient trop tôt. Ici, nous activons une observation explicite et cherchons quelles valeurs participent ; retrouver le bon déclencheur et retrouver les bonnes données sont deux preuves complémentaires.

Un parcours peut avoir corrigé le bouton par défaut tout en conservant un contrôle désactivé. Rejouez donc le geste autorisé puis inspectez ses entrées, au lieu de conclure sur la seule absence de clôture prématurée. Le matériel du poste et le formulaire chargé conservent aussi leur vérification propre.

Dossier correct mais ancienne révision soumise

L’analyse du rapport SAV écrasé par un ancien onglet examine le contrôle de révision. Elle aide à conserver le résultat courant lorsque plusieurs écrans restent ouverts. Une liste de champs complète peut encore porter un état dépassé ; inversement, une révision correcte peut omettre un contrôle désactivé. Chaque contrat doit traiter la frontière qui lui appartient.

Le contrôle de révision évite une écriture depuis un dossier ancien ; il ne dit pas si le prix appartient à la modification demandée. Lorsqu’un conflit renvoie le formulaire, vérifiez aussi comment les contrôles sont reconstruits et quelles données participent après la reprise. Une bonne reprise garde la saisie et sa signification.

Valeur reçue mais autorité commerciale indéfinie

La réflexion sur les règles de prix B2B et leur décision explicable aborde priorités, versions et conservation du prix accepté. Elle prolonge le diagnostic après la réception des données. Le laboratoire de formulaire ne valide aucun moteur tarifaire ; il indique d’abord où une valeur peut manquer avant que ce moteur ait l’occasion de décider.

Le cadrage tarifaire aide à nommer le propriétaire du montant lorsque la demande omet un champ. Il ne justifie pas un recalcul automatique de tous les devis concernés. Distinguez panier estimé, proposition révisable et engagement accepté avant de choisir conservation, nouvelle décision ou refus expliqué pour cette ligne.

Conclusion : verrouiller le prix sans rendre son absence ambiguë

Un prix grisé peut rester visible et manquer à la demande construite depuis le formulaire. Le premier contrôle compare état HTML, nom du champ et entrées effectives. Si l’omission est établie, le correctif doit encore décider ce que l’opération attend : valeur transmise, condition retrouvée côté serveur ou nouvelle estimation. La présence d’un nombre ne résout pas à elle seule cette autorité commerciale.

Les treize observations locales montrent omission, valeur vide, exception de groupe et copies contradictoires. Elles ont été exécutées dans le navigateur sans serveur métier. La recette de votre portail doit encore éprouver les droits, la réception, le refus sans effet et la lecture après écriture. Une bonne réparation rend le montant final explicable au commercial et au support, y compris après une erreur récupérable.

Le cadrage d’une application de devis reliée à vos règles métier peut partir de cette ligne témoin. Il met d’accord produit, ADV et développement sur le prix possédé par le dossier, les changements permis et la reprise des demandes incomplètes. L’historique des documents engagés conserve ses propres preuves et ses autorisations de correction.

Dawap accompagne ce périmètre dans une démarche de développement web métier : diagnostiquer le formulaire, fermer son contrat avec le backend et vérifier le dossier réellement enregistré. L’objectif du premier livrable est concret : un commercial peut modifier ce qui lui est permis et retrouver le prix décidé, sans qu’un champ silencieusement omis choisisse une autre condition à sa place.

Portrait de Jérémy Chomel

Retrouver pourquoi le prix manque à votre demande

Dawap examine le formulaire, son contrat et la décision serveur pour qualifier une correction sur un parcours de devis.

Articles recommandés

Saisie française comparée à la valeur numérique et au montant entier conservé Développement web Saisie B2B : le prix français est tronqué Lire l'article
  • 7 octobre 2026
  • Lecture ~10 min

Un prix saisi avec une virgule et un espace devient un euro avant le calcul. Dix essais JavaScript distinguent lecture partielle, format complet et refus d’une politique EUR fictive. Le diagnostic suit texte, demande serveur et restitution, puis délimite les preuves nécessaires pour reprendre les devis concernés.

Lecture d’une pièce séparée de la confirmation finale dans un formulaire de préparation Développement web Douchette code-barres : le premier scan clôture le formulaire Lire l'article
  • 5 octobre 2026
  • Lecture ~12 min

Une touche Entrée peut soumettre le formulaire de préparation après le code reçu. Neuf passages locaux distinguent ajout d’une pièce, répétition, référence inattendue, focus et clôture. Le poste réel et son système propriétaire gardent leur propre recette : le navigateur témoin ne transmet aucun ordre de stock.

Diagnostic SAV corrigé comparé à la saisie conservée dans un ancien formulaire Développement web Rapport SAV : un onglet efface la correction Lire l'article
  • 3 octobre 2026
  • Lecture ~13 min

Le technicien corrige un diagnostic, puis un ancien onglet remet la première hypothèse en ajoutant une note. Le serveur peut relire une fiche récente et perdre malgré tout cette correction. Neuf situations fictives comparent version vue, écriture conditionnelle et reprise choisie pour préserver le rapport comme la saisie encore en attente.

Règles de prix B2B dans un site e-commerce sur mesure Développement web Règles de prix B2B : les gérer dans un e-commerce sur mesure Lire l'article
  • 29 janvier 2026
  • Lecture ~14 min

Un prix B2B combine contrat, établissement, quantité, période, devise, taxes et arrondis. Ce guide montre comment attribuer les autorités, rendre les priorités déterministes, figer le devis accepté, protéger les conditions négociées et rapprocher panier, commande et facture sans dupliquer le calcul.

Faire conserver le prix décidé dans votre application

Nous cadrons les données attendues, les droits et la recette du devis enregistré avec les équipes qui possèdent vos règles commerciales.