Page 1 sur 1

problème d'appel ajax en asynchrone

MessagePublié: 15 Mai 2013, 15:58
par gem56
Suite à mes modifs (voir mes post précédents), je me suis retrouvé deux fois (sur environ 60 commandes) avec des commandes en doubles.

Après inspection des sources originales (version 1.5.4.1 et 1.5.5.1), je me rends compte que tous les appels ajax d'opencart sont en asynchrone (sauf qq'uns interne à jquery ou au ckeditor) et que ça génère à certains endroits des effets de bords (non détectés par la communauté ?!)

Un exemple facile, dans le module de payment à la livraison (duquel j'étais parti pour faire mon module de choix de dépot) cod.php et cod.tpl

Si vous tracez les appels à catalog_controler_payment_cod->confirm et catalog_model_payment_cod->confirm et que vous cliquez "nerveusement" deux fois sur le bouton "confirmer commande" de l'étape 6 finale, les deux methodes confirm (controler et model) sont appelé 2 fois !!!!

Il faut dans le fichier catalog/view/theme/xxx/template/default/payment/cod.tpl ajouter l'option "async: false"

Tout nouvel utilisateur d'opencart, ce genre de découverte ne me rassure pas (pour moi, qu'il n'y ai aucun appel ajax synchrone dans opencart, ça me semble pas normal, je découvre cet effet de bord grace à deux clients nerveux, ça va m'obliger à regarder l'ensemble des templates en détail)

Le fait aussi, que personne dans la communauté, s'inquietent non plus de l'absence de transactions SQL, ne me rassure pas non plus ! (en 2013, pas de transactions et du MyIsam)