Jump to content

Paiement Paypal sans frais de port


Recommended Posts

Bonjour à tous,

 

Je vous fait part d'une erreur actuellement sur le module Paypal (3.8.1) de Prestashop.

 

Personnellement j'ai le souci sur un Prestashop 1.4.8.2.

 

Voici le cas qui se présente :

 

 - Un client s'inscrit sur votre site

 - Prépare sa commande

 - Choisis son mode de livraison (Payant ou non payant)

 - Choisis son mode de paiement (Paypal en l’occurrence)

 - Le client entre ses informations Paypal et paie, Mais il ne paye que les produits hors frais de port.

 

Suite à un appelle de ma part vers Paypal, le conseiller m'indique que ce problème est connu est date déjà depuis le 3 décembre 2014 (Date à laquelle nous devions faire la mise à jour du module Paypal suite à l’arrêt de la prise en charge de SSL 3.0 par Paypal) et qu'il ne sais pas quand le module sera mis à jour (Le module étant crée par Prestashop).

Suite à une question de ma part, le conseiller m'indique que les anciennes versions du module fonctionnant avec SSL 3.0 fonctionneront encore jusqu'au 15 décembre (pour ceux qui recherche un solution de type "pansement à court terme")

 

De manière technique et de ce que j'ai pu voir, j'ai l'impression que lorsque le client achète via Paypal, le module renvoi l'adresse de livraison modifiant le département du client le passant à 0 (aucun département sélectionné).

 

Dans un premier temps, je voudrai savoir si d'autres personnes avait constaté ce problème ?

Dans un second temps, j'aurai aimé savoir si quelqu'un aurait une idée pour régler se souci ?

 

Merci de votre lecture,

 

Hishikdi.

Link to comment
Share on other sites

Bonjour.

Nous sommes exactement dans le même cas de figure.

 

Après une requete SQL sur ps_adress on se rend compte que le champ id_state est passé à '0' au lieu d'avoir l'id du departement.

 

 

Peut-être qu'il faudrait mettre un peut la pression aux développeurs du module car pour l'instant on juste le choix de désactiver ce moyen de paiement...

Link to comment
Share on other sites

Bonjour,

 

En faisant des tests sur la sandbox paypal, les frais de port apparaissent bien. l'adresse n'est pas modifiée

Je pense que le pb vient de Paypal qui vérifie l'Etat qui dans mon cas est détourné pour saisir le département (seul moyen de calculer les frais de port)

 

Pas encore réactivé le module,

Est-ce corrigé ?

Link to comment
Share on other sites

  • 2 weeks later...

On viens de tester une chose toute bête, et qui semble fonctionner :

Vider le cache du site pour forcer la recompilation des Tpl.

 

Là, on vient de réactiver et ça semble Ok. Faites le test aussi pour voir si c'est bon pour vous aussi...

Link to comment
Share on other sites

Le module n'as pas l'air d'avoir été mise à jour depuis décembre.

 

Je pense faire le teste de juste changer le protocole de la version 2.8.7 du module Paypal à partir de Dimanche ou Lundi matin.

 

En effet, nous devons trouver une solution avant le 12/01/15 9h01 CET, date butoir à laquelle Paypal désactivera intégralement la prise en charge du SSL 3.0.

 

Je vous tiens au courant si la modification fonctionne.

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

 

Depuis la mise en place du module Paypal 3.8.0, je rencontre le problème similaire : les frais de port se calculent bien et apparaissent sur l'écran du client, mais dès qu'il paye avec Paypal les frais de port disparaissent et on retrouve l'adresse de livraison modifiée avec suppression du département.

 

Existe-t-il une solution ?

 

J'utilise la version 1.4.9 de Prestashop.

 

André BARGE

Link to comment
Share on other sites

  • 3 weeks later...

J'ai corrigé le dernier module 3.8.1 (nov 2014)

j'ai fait en sorte de n'envoyer l'info "state" que si le pays est US

dans le fichier modules/paypal/express_checkout/process.php

dans la méthode setShippingAddress

        /* désactivé
        if ($address->id_state)
        {
            $state    = new State((int)$address->id_state);
            $fields['PAYMENTREQUEST_0_SHIPTOSTATE'] = $state->iso_code;
        }
        */
        $country    = new Country((int)$address->id_country);
        if ($country->iso_code == "US" && $address->id_state) {
            $state    = new State((int)$address->id_state);
            $fields['PAYMENTREQUEST_0_SHIPTOSTATE'] = $state->iso_code;
        }
Link to comment
Share on other sites

Le pb n'est toujours pas résolu mais j'avance.

Il semble que dans certains cas (non définis) le module ne connait pas l'adresse de livraison et doit la reconstruire.

Il se base sur le retour de getExpressCheckoutDetail

il possède toutes les informations, y compris le codeiso de l'Etat

pour récupérer l'Etat (US State = département), le module appelle la méthode

State::getIdByIso($ppec->result['PAYMENTREQUEST_0_SHIPTOSTATE'], $address->id_country)

 

mais pour les versions <1.5 de prestashop cette méthode ne prend qu'un seul paramètre, le code iso

l' id_state ne peut donc pas être récupéré.

 

Pour corriger ça, on peut simplement corriger la ligne 102 du fichier modules/paypal/express_checkout/payment.php

$address->id_state = (int)State::getIdByIso($ppec->result['PAYMENTREQUEST_0_SHIPTOSTATE'], $address->id_country);

devient

$address->id_state = (int)State::getIdByIso($ppec->result['PAYMENTREQUEST_0_SHIPTOSTATE']);

la modif indiquée précédemment du fichier process.php n'a plus lieu d'être puisqu'il faut bien envoyer l'état à Paypal.

 

Autre soucis le code-iso de l'état doit être unique, chez moi les départements ont des codes sur 3 lettres (générés par prestashop, il me semble)

il n'y a donc pas de conflit possible avec les états US qui sont sur 2 caractères, par contre je trouve LOI pour Loire et LOI pour Loiret !!!

Si vous avez le même soucis, il faut en modifier un des deux.

 

Si vous savez comment identifier les clients qui ont payé avec leur CB sur Paypal plutôt qu'avec leur compte Paypal merci de me l'indiquer

 

Cordialement

Sunzoo

Edited by sunzoo (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...