Magento Checkout Street Line Bug de remplissage automatique


12

J'ai remarqué récemment qu'un certain nombre de commandes dans notre magasin Magento ont copié la ligne de rue 1 dans la ligne de rue 2.

J'ai fait quelques recherches et cela semble être lié à la saisie automatique de Chrome. Si vous regardez les champs du formulaire, Magento utilise la facturation [rue] [] et l' expédition [rue] [] comme noms de champ pour les deux lignes de rue. Chrome ne peut donc pas déterminer lequel est lequel et remplit automatiquement la ligne 1 dans les deux champs.

Il y a des informations flottantes autour desquelles vous pouvez utiliser l' attribut de saisie semi - automatique sur le champ de saisie du formulaire pour indiquer le champ auquel il doit être lié, mais cela n'est pas pris en charge et ne fonctionne pas. En fait, si vous essayez de le faire, cela désactive la saisie semi-automatique sur l'ensemble du formulaire. J'ai également essayé de changer le nom du champ, mais cela interrompt le paiement. Il semble que j'aurais besoin de creuser profondément dans le code et de changer le nom du champ sur le formulaire et partout où il est référencé, soumis à PayPal, enregistré dans la base de données, etc. Cela semble être un cauchemar.

Quelqu'un a-t-il traité cela et / ou a-t-il une suggestion?


Avez-vous trouvé une solution à ce problème? Avec l'impression d'étiquettes automatique pour l'expédition, nous ne détectons que 20% de ces erreurs et parfois le transporteur ne livre pas car "l'adresse est incorrecte" ...

Je n'ai pas trouvé de vraie solution complète. Pour nous, la seule vraie préoccupation était de le fixer sur le côté de l'affichage lors du paiement, j'ai donc ajouté du JS qui se déclenche au changement de ligne 2 et, s'il correspond exactement à la ligne 1, je l'efface. Cela ne gère pas les pages de compte client lors de la création de nouvelles adresses, mais cela ne m'inquiétait pas autant.
BrianVPS

Ceci est partiellement lié à "Comment déclencher le remplissage automatique de Chrome" stackoverflow.com/questions/7223168/… La réponse courte est en répondant aux exigences Regex pour le nom ou l'étiquette dans code.google.com/p/chromium/codesearch#chromium/ src / components /…
Ray Foss

Réponses:



2

Petite correction rapide, ajoutez un attribut "en lecture seule" à l'entrée et un attribut onfocus avec l'extrait JS suivant:

onfocus="this.removeAttribute('readonly');"

Donc, le tout devrait ressembler à ceci:

<input type="text" title="Street Address 2" name="billing[street][]" id="billing:street2" value="" class="input-text " readonly onfocus="this.removeAttribute('readonly');">

Chrome ne pourra pas remplir automatiquement le champ, mais l'utilisateur peut le saisir manuellement car le JS sera déclenché lorsqu'il cliquera dans le champ.

Faites cela pour l'entrée de télécopie également, Chrome aime copier le numéro de téléphone dans celui-ci.


1
, bienvenue dans magento SE. Je ne pensais pas que la lecture seule n'était pas une bonne idée d'arrêter le champ auto
Amit Bera

Par expérience, les gens ont tendance à l'oublier ... ce qui n'est pas bon du tout et peut coûter beaucoup d'argent, la principale difficulté pour y remédier est la nature dynamique des champs.
Ray Foss

2

Les attributs de saisie semi-automatique sont un moyen pour vous, le développeur, de contrôler la façon dont le navigateur doit remplir un champ de formulaire donné. Par exemple, si vous attendez une adresse, vous pouvez indiquer au navigateur que vous l'attendez en utilisant autocomplete = "address-line1" . Cela empêche le navigateur de deviner incorrectement les champs de formulaire de votre site Web, ce qui peut entraîner une mauvaise expérience utilisateur.

https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.