Points clés

  • Testez la saisie manuelle, la saisie automatique du navigateur et les suggestions d'adresses
  • Recalculer les dates d'expédition, de taxes et de livraison après correction
  • Autoriser les adresses de facturation et de livraison à diverger
  • Rendre la soumission de la commande finale idempotente

Auteur et révision

Principes éditoriaux
Rédigé par
Équipe éditoriale du générateur d'adresses aléatoires
Révisé par
Équipe d’examen des formulaires et de l’assurance qualité
Dernière mise à jour substantielle
Ajout de la correction d'adresse, du recalcul des expéditions, de la séparation des factures, de la soumission idempotente et des cas mobiles.

La saisie d'adresse comporte plusieurs chemins

Couvrez la saisie au clavier, la saisie automatique du navigateur, le collage multiligne, les suggestions et les adresses enregistrées. Chaque chemin doit produire un contrat API tout en conservant les détails du pays et de l'unité.

Un délai d'expiration de suggestion ne doit pas bloquer une saisie manuelle valide. Expliquez que l'acheteur peut continuer plutôt que de l'enfermer dans une liste vide.

CheminAffirmation de baseÉchec commun
ManuelSoumettre sans suggestionForcer un choix de liste
Remplissage automatique du navigateurToutes les mises à jour de l'état dépendant se déclenchentLes valeurs remplies sont toujours considérées comme vides
SuggestionsTravail sur clavier et lecteur d'écranInteraction avec la souris uniquement
Adresse enregistréeLe devis d'expédition est recalculéLe devis précédent demeure

Gardez le contrôle du client sur les corrections

Affichez côte à côte les adresses saisies et suggérées, mettez en surbrillance les modifications et autorisez l'original. Ne laissez jamais tomber silencieusement le nom d’un appartement ou d’un immeuble.

Testez l'acceptation, la conservation, la réouverture, le délai d'attente et une suggestion manquant la ligne 2.

Recalculer les méthodes d'expédition, de taxes et de livraison

Une modification de pays, de région ou de code postal peut invalider les méthodes et modifier les frais d'expédition, les taxes, les seuils et les dates. Bloquez la soumission finale jusqu'à l'arrivée du nouveau devis.

Des modifications rapides créent des devis simultanés. Appliquez uniquement le résultat correspondant à la dernière version de l'adresse.

  • Supprimer les méthodes non valides après un changement de pays
  • Mettre à jour les frais d'expédition et les taxes ensemble
  • Ignorer les réponses aux devis obsolètes
  • Conserver le panier et l'adresse après un échec

La facturation et l'expédition nécessitent des copies modifiables indépendantes

De la même manière, l'expédition peut créer une copie, mais les deux ne doivent pas partager un objet mutable. La modification de la facturation après avoir décoché la case ne doit pas modifier l'expédition.

Utilisez le bac à sable du fournisseur de paiement et les déclencheurs documentés plutôt que des données aléatoires pour les vérifications des adresses de paiement.

shippingAddress = structuredClone(selectedAddress);
billingAddress = sameAsShipping
  ? structuredClone(shippingAddress)
  : enteredBillingAddress;

Rendre la soumission finale idempotente et prendre un instantané de l'adresse

Les doubles clics, les tentatives d'expiration du délai et la navigation arrière sur mobile peuvent répéter une demande. Désactivez les actions répétées de l’interface utilisateur et utilisez une clé d’idempotence côté serveur.

Stockez l’instantané d’adresse confirmé et la version du devis sur la commande au lieu de référencer uniquement une entrée modifiable du carnet d'adresses.

La couverture mobile doit inclure le clavier logiciel masquant l'action principale, la mise en arrière-plan et la restauration de la page, ainsi que le retour d'une autorisation de paiement externe. À la reprise, interrogez la commande existante ou la demande idempotente avant d'envoyer une autre opération de création.

Auditez une commande dont l'adresse a changé deux fois lors du paiement. Son instantané doit contenir la version finale confirmée, son devis d'expédition doit appartenir à cette version et une modification ultérieure du carnet d'adresses de l'acheteur ne doit pas réécrire l'historique de la commande.

Testez également l'échec ambigu : le navigateur expire après la soumission, mais le serveur a déjà créé la commande. Une nouvelle tentative avec la même clé doit renvoyer le résultat initial plutôt que de facturer à nouveau ou de réserver l'inventaire deux fois. Les outils de support doivent exposer la clé de demande, la version de l'adresse et l'identifiant de commande sans exposer l'adresse complète dans les journaux de routine. Cela rend la récupération testable tout en limitant l’accès inutile aux données personnelles.

  • Simulez un double-clic, une nouvelle tentative d'expiration et un retour de paiement
  • Requête du statut idempotent après la restauration de la page
  • Faire correspondre l'adresse de la commande et les versions du devis
  • Rouvrir l'historique après avoir modifié le carnet d'adresses

Questions fréquentes

Une panne de suggestion devrait-elle bloquer le paiement ?

Pas nécessairement. En fonction du risque, autorisez la confirmation manuelle et marquez l'adresse comme non vérifiée.

Qu'est-ce qui change après une modification du code postal ?

Recalculez les méthodes de livraison, les frais d'expédition, les dates et les taxes pertinentes, tout en ignorant les réponses obsolètes.

La désactivation du bouton empêche-t-elle les commandes en double ?

Pas complètement. Le serveur a également besoin d’une clé d’idempotence ou d’une protection équivalente contre les nouvelles tentatives.

Sources et lectures

  1. MDN : saisie semi-automatique du formulaire d'adresse
  2. W3C WAI : notification d'erreur de formulaire