Examen de l'actualisation de la caisse IWD après la sélection du paiement

Avec le Paiement en une étape pour la Journée internationale des femmes plugin, il existe une méthode gratuite pour les paiements en une seule étape.

Cependant, il y a toujours un problème lorsque vous souhaitez sélectionner un mode de paiement, car il ne rafraîchit pas le résumé des avis. Cette fonctionnalité est essentielle pour les modes de paiement qui ajoutent des frais de service. Grâce à ce plugin, j'ai trouvé une solution de contournement du code.

Activez simplement jQuery $j et ajoutez le code suivant dans le processus de paiement (onepagecheckout.phtml) :

$j(function($) { $j('input[name*="paiement[méthode]"]').live('clic', function() { checkout.update({ 'avis': 1, //,'méthode-d-expédition': 1 'méthode-de-paiement': 1 }); setTimeout(function(){ checkout.update({ 'avis': 1 //'méthode-de-paiement': 1 }); }, 5000); }); $j('input[name*="méthode_d_expédition"]').live('clic', function() { checkout.update({ 'avis': 1 ,'méthode-de-paiement': 1 //'méthode-d'expédition': 1 }); setTimeout(function(){ checkout.update({ 'avis': 1, //'méthode-de-paiement': 1 }); }, 500); }); });

Désormais, le paiement en une étape IWD fonctionne avec les modes de paiement avec frais de service, car l'avis/résumé est actualisé.

J'ai trop de problèmes avec la JIF, alors essayez simplement Paiement en une étape.

Réflexions de 8 sur « IWD Checkout refresh review after payment selection »

  1. je suis désolé mais ce n'est pas tout à fait vrai. car il y a 2 inconvénients, si la première réponse de mise à jour après 5 secondes, la mise à jour totale échouera et le deuxième téléchargement (sur la « commande de révision ») n'est pas adapté à l'UX (interface utilisateur).
    pour moi la bonne solution est :
    1 embellisseur le onepagecheckout.pack.js
    2 après les fonctions « update » et avant les fonctions « setResponse », vous ajouterez ces fonctions après la ligne 195

    update2: function (params) {
    if (this.loadWaiting != false) {
    return
    }
    if (this.s_code == '') return this.opcdis();
    var parameters = $(this.form).serialize(true);
    for (var i in params) {
    if (!params[i]) {
    continue
    }
    var obj = $('checkout-' + i + '-load');
    if (obj != null) {
    var size = obj.getDimensions();
    obj.setStyle({
    'width': size.width + 'px',
    'height': size.height + 'px'
    }).update('').addClassName('loading');
    parameters[i] = params[i]
    }
    }
    checkout.setLoadWaiting(true);
    var request = new Ajax.Request(this.updateUrl, {
    method: 'post',
    onSuccess: this.setResponse2.bind(this),
    onFailure: this.ajaxFailure.bind(this),
    parameters: parameters
    })
    },
    setResponse2: function (response) {
    response = response.responseText.evalJSON();
    if (response.redirect) {
    location.href = check_secure_url(response.redirect);
    return true
    }
    checkout.setLoadWaiting(false);
    if (response.order_created) {
    $('onepagecheckout_orderform').action = this.successUrl;
    $('opc_submit_form').click();
    return true
    } else if (response.error_messages) {
    var msg = response.error_messages;
    if (typeof (msg) == 'object') {
    msg = msg.join("\n")
    }
    alert(msg)
    }
    $('review-please-wait').hide();
    if (response.update_section) {
    for (var i in response.update_section) {
    ch_obj = $('checkout-' + i + '-load');
    if (ch_obj != null) {
    ch_obj.setStyle({
    'width': 'auto',
    'height': 'auto'
    }).update(response.update_section[i]).setOpacity(1).removeClassName('loading');
    if (i === 'shipping-method') {
    shippingMethod.addObservers()
    }
    }
    }
    }
    if (response.duplicateBillingInfo) {
    shipping.syncWithBilling()
    }
    if (!response.reload_totals) {
    checkout.update({
    'review': 1
    })
    }
    return false
    },

    3 votre code sera modifié dans

    $j(fonction($) {
    $j('input[name*="paiement[méthode]"]').live('clic', function() {
    checkout.update2({
    'revue': 1,
    'mode de paiement': 1
    });
    });
    $j('input[name*="méthode_d'expédition"]').live('clic', fonction() {
    checkout.update({
    'revue': 1
    ,'mode de paiement': 1
    });
    setTimeout(fonction(){
    checkout.update({
    'revue': 1,
    });
    }, 500);
    });
    });

    1. Super, je vais tester ça bientôt, merci pour la contribution ! Il y a toujours un défaut étrange : quand le paiement échoue et qu'il revient sur le site, le panier est vide donc on ne peut pas retraiter la commande. As-tu une solution pour ça aussi ? Je vais y réfléchir bientôt aussi.

  2. Salut,

    J'ai déjà trouvé le code d'actualisation des avis dans le panier brésilien (basé sur IWD je crois). Je dois trouver un moyen pour que les paiements annulés aboutissent à des commandes annulées, au lieu de commandes en attente. Avez-vous une idée ?

  3. Pour le panier vide, j'utilise du code de vout.nl checkout
    éditez /etc/config.xml et mettez ceci après :

    onepagecheckout/observer
    définir un modèle de panier vide

    retirer : Panier vide depuis

    dans /Model/Observer.php ajouter :

    fonction publique setEmptyCartTemplate()
    {
    si (Mage::helper('onepagecheckout')->isOnepageCheckoutEnabled())
    {
    $cartHelper = Mage::helper('checkout/cart');
    $layout = Mage::getSingleton('core/layout');

    si (!$cartHelper->getItemsCount()){
    $layout->getBlock('checkout.cart')->setTemplate('onepagecheckout/cart/noItems.phtml');
    }
    }
    }

    Consultez l'OSC néerlandais pour plus d'informations :
    https://github.com/Vout/onestepchecout

    J'ai résolu le problème de paiement, mais maintenant j'ai ce problème :
    Je souhaite que la section des commentaires et des paiements soit actualisée lorsque je modifie le mode d'expédition. Désormais, les frais de paiement à la livraison ne disparaissent pas tant que je n'ai pas cliqué deux fois sur le même mode d'expédition. Une idée ?

  4. Je vois maintenant le problème de codage, je vais réessayer :

    dans IWD/Onepagecheckout/etc/config.xml, supprimez emptyCart de :

    modèle
    onepagecheckout/observer
    supprimerHistoriqueCommentaire
    Panier vide

    et ajouter :

    onepagecheckout/observer
    définir un modèle de panier vide

  5. J'ai le même problème avec IWD one page check out et Lesti FPC ! Super booster magento mais je ne peux pas l'utiliser pour le moment car je ne peux pas recevoir de commande de cette façon. Quelqu'un a-t-il une solution à ce problème ?

    Bien cordialement, Kim, Félicitations à l'auteur

  6. Aide-moi!
    j'utilise l'ancien One Page Checkout d'IWD.
    J'ai quelques erreurs.
    Le paiement en une page n'affiche pas les méthodes d'expédition et les méthodes de paiement, bien que je les ai configurées dans le backend d'administration.
    http://www.uphinhnhanh.com/images/65044Hinh1.jpg

    Lorsque j'ai rempli les informations et cliqué sur l'espace extérieur, mon site a commencé à s'actualiser et à afficher le mode d'expédition, mais n'affiche pas les modes de paiement. Jusqu'à ce que j'actualise manuellement (F5), les modes de paiement s'affichent et je peux finir par payer

    http://www.uphinhnhanh.com/images/32861Hinh2.jpg
    Je dois actualiser le navigateur, les méthodes de paiement affichent :
    http://www.uphinhnhanh.com/images/61163hinh3.jpg

    j'utilise magento 1.8
    Je ne suis pas un développeur, merci de me guider plus en détail
    j'ai essayé de réparer 🙁 mais je n'y arrive pas 🙁
    S'il vous plaît, aidez-moi !
    Mon anglais est très mauvais, j'espère que vous comprendrez et m'aiderez

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrançais
Défiler vers le haut