Jump to content

Mondial relay adresse de livraison client


Recommended Posts

Bonjour,

 

J'utilise le module mondial relay sur un site sous 1.4.3. Quand un client passe commande via mondial relay tout se passe bien par contre le client reçoit sa facture sans aucune mention de l'adresse de livraison choisi, celle du point mondial relay. C'est assez embêtant car il n'a aucun moyen de se rappeler ou sont colis ça être livré...

 

Savez vous comment faire ?

 

Merci a vous

Link to comment
Share on other sites

  • 10 months later...

Bonjour, Mushr00m,

 

J'ai actuellement le même souci que vous, sauf que pour l'adresse de livraison il récupère l'adresse de facturation au lieu de l'adresse du point relay choisie par le client. Avez-vous trouvez une solution ?

Merci pour votre retour.

 

Cordialement,

 

Arnaud

Link to comment
Share on other sites

  • 6 months later...
  • 4 weeks later...
  • 2 weeks later...
  • 2 weeks later...

Idem pour moi sur la facture c'est l'adresse de livraison client (celle de son compte client) qui s'affiche et non celle du point relais !!!!

 

Point 2 : Sur l'etiquette nous avons bien l'adresse du point relais qui s'affiche mais lorsque je consulte la livraison dans mon back office mondial relay (sur leur site via notre compte pro, non dans notre BO prestashop) et ben idem c'est l'adresse du compte client qui s'affiche !!

 

Vous aussi pour le point 2 ?

 

Greg

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

bonjour

 

Je rencontre le même problème que vous je suis en version 1.4.8.2 de Prestashop et 1.8.9 pour le module mondial relay.

 

Sur l'email de confirmation de commande que reçois le client apparait l'adresse de livraison de son compte client et non pas celui du point relais choisi.

Sur la facture client c'est la même chose ainsi que dans son historique de commande (l'adresse du point relais apparait sous le tableau adresse de livraison et adresse de facturation, c'est le seul moyen pour le client de savoir le point relai qu'il à choisi en cas d'oubli)

 

Coté back office administrateur : le bon de livraison généré subit le même sort, difficile ainsi de savoir (pour le préparateur de commande) à quelles étiquettes mondial relay correspondent tels bons de livraison).

 

A noter par contre que sur l'étiquette mondial RELAY l'adresse du point relais est correctement indiqué.

Sur les versions antérieures du module mondial relay c'était déja la même chose.

 

On dirait que le staff technique prestashop reste sourd à nos requêtes.

 

Je vous propose que chacun de notre coté nous contactions le staff pour leur soumettre les bugs rencontrés afin que ceux ci soient pris en compte lors de la sortie de la prochaine release du module.

 

Ce module Mondial Relay est inexploitable en l'état.

 

Contactons aussi mondial relay pour leur faire part de ces bugs.

 

En espérant que les choses puissent avancer.

 

Didier

Link to comment
Share on other sites

  • 3 weeks later...

Hello !

 

Concernant le problème l'affichage du mondial relay dans le mail de confirmation commande pour le client j'ai trouvé une solution. Parcontre pour l'affichage dans la facture et bon de commande je suis en train de chercher.

 

La solution ce trouve ici : classes\PaymentModule.php  --> en dessous de

 

// Send an e-mail to customer (one order = one email)
                    if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id)
                    {

 

vers la ligne 553

 

Donc j ai fait une requette : $simpleresul = Db::getInstance()->executeS('
SELECT * FROM ' . _DB_PREFIX_ . 'mr_selected
WHERE id_order='.(int)($order->id));

Ensuite tu sors tous les champs que tu veux , genre le nom du relay, son adresse etc ...

$relay1 = "Dans le point Mondial Relay : <br><br>".$simpleresul[0]['MR_Selected_LgAdr1']."<br>".$simpleresul[0]['MR_Selected_LgAdr2']."".$simpleresul[0]['MR_Selected_LgAdr3'];
$relay2 = $simpleresul[0]['MR_Selected_LgAdr2'];
$relay3 = $simpleresul[0]['MR_Selected_LgAdr3'];
$relay4 = "<br>".$simpleresul[0]['MR_Selected_CP'];
$relay5 = " ".$simpleresul[0]['MR_Selected_Ville'];

Ensuite tu ajoutes ces variables là au tableau général $data :

$data = array(
'{relay1}' => $relay1,
'{relay2}' => $relay2,
'{relay3}' => $relay3,
'{relay4}' => $relay4,
'{relay5}' => $relay5,
'{relay6}' => $relay6,
'{firstname}' => $customer->firstname,
'{lastname}' => $customer->lastname,
'{email}' => $customer->email,
'{delivery_block_txt}' => $this->_getFormatedAddress($delivery, "\n")

 

 

Voila @ ++

Link to comment
Share on other sites

  • 2 months later...

Ha je suis confronté à ce problème sauf que moi, je veux que l'adresse du point Relais, avec son code, s'inscrive dans l'adresse de livraison car je récupère ces infos par webservices ensuite pour intégration ERP, puis suivi logistique ...

Je ne comprends pas pourquoi ça ne le fait pas par défaut. Ca éviterait ensuite toutes modifications sur la facture, ou dans la commande et dans les mails !

Je vais essayer de corriger çà !

Link to comment
Share on other sites

Je ne vais pas me pencher sur envoimoinscher car je dois mettre en place Mondial Relay.

Je ne choisis pas à ce niveau là.

 

Par contre, j'ai réussi à modifier le module en ajoutant un hookProcessCarrier qui me permet d'insérer l'adresse du point relais sélectionné ainsi que le nom et prénom du client.

 

Reste que la liste des points relais se base sur l'adresse du client et offre les points relais les plus proches en fonction du poids de la commande. Pas moyen donc de rechercher un autre point relais ailleurs que près de l'adresse client ?

 

Je vais voir éventuellement ce que je peux faire pour faire évoluer çà.

En attendant, voici la fonction que j'ai ajouté dans le module :

/modules/mondialrelay/mondialrelay.php en ligne  337

public function hookProcessCarrier($params) 
{
    global $cookie, $cart;

    // test
    $id_carrier = Tools::getValue('id_carrier');
    if (!MondialRelay::isMondialRelayCarrier($id_carrier))
        return;

    $id_cart = $cookie->id_cart;

    // on récupère depuis le panier le point relais sélectionné
    $relais = Db::getInstance()->ExecuteS("SELECT * FROM " . _DB_PREFIX_ . "mr_selected WHERE id_customer=".$cookie->id_customer." AND id_cart=".$id_cart."");
    if($relais)
    {
        $relais = $relais[0];
        $customer = new Customer($cookie->id_customer);                
        // on recherche l'adresse du point relais dans les adresses prestashop
        $sql = "SELECT id_address FROM " . _DB_PREFIX_ . "address WHERE id_customer = '0' AND lastname='".addslashes($customer->lastname)."' AND firstname='".addslashes($customer->firstname)."' AND other='" . addslashes($relais['MR_Selected_Num']) . "' AND deleted = 0 AND active = 1";

        $res = Db::getInstance()->ExecuteS($sql);
        if ($res) {
            // si existant, on mets à jour l'adresse du point relais sur son code et on le sélectionne                
            $sql = "UPDATE " . _DB_PREFIX_ . "address SET
                id_country = '8',
                id_state = '0',
                id_customer = '0',
                id_manufacturer = 0,
                id_supplier = 0,
                alias  = '" . addslashes($relais["MR_Selected_Num"]) . " - " . addslashes($relais["MR_Selected_LgAdr1"]) . "',
                company = '" . addslashes($relais["MR_Selected_Num"]) . " - " . addslashes($relais["MR_Selected_LgAdr1"]) . "',
                lastname = '" . addslashes($customer->lastname) . "',
                firstname = '" . addslashes($customer->firstname) . "',
                address1 = '" . addslashes($relais['MR_Selected_LgAdr3']) . "',
                address2 = '" . addslashes($relais['MR_Selected_LgAdr4']) . "',
                postcode = '" . addslashes($relais['MR_Selected_CP']) . "',
                city = '" . addslashes($relais['MR_Selected_Ville']) . "',
                phone = '',
                date_add = '" . date('Y-m-d H:i:s') . "',
                date_upd = '" . date('Y-m-d H:i:s') . "',
                other = '" . addslashes($relais["MR_Selected_Num"]) . "',
                active = 1,
                deleted = 0 
                WHERE id_customer = '0' AND other = '" . addslashes($relais['MR_Selected_Num']) . "' 
                AND lastname='".addslashes($customer->lastname)."' AND firstname='".addslashes($customer->firstname)."'";

            Db::getInstance()->Execute($sql);
            $cart->id_address_delivery = $res[0]['id_address'];
        } else {
            // sinon on la crée
            $sql = "INSERT INTO " . _DB_PREFIX_ . "address SET
                id_country = '8',
                id_state = '0',
                id_customer = '0',
                id_manufacturer = 0,
                id_supplier = 0,
                alias  = '" . addslashes($relais["MR_Selected_Num"]) . " - " . addslashes($relais["MR_Selected_LgAdr1"]) . "',
                company = '" . addslashes($relais["MR_Selected_Num"]) . " - " . addslashes($relais["MR_Selected_LgAdr1"]) . "',
                lastname = '" . addslashes($customer->lastname) . "',
                firstname = '" . addslashes($customer->firstname) . "',
                address1 = '" . addslashes($relais['MR_Selected_LgAdr3']) . "',
                address2 = '" . addslashes($relais['MR_Selected_LgAdr4']) . "',
                postcode = '" . addslashes($relais['MR_Selected_CP']) . "',
                city = '" . addslashes($relais['MR_Selected_Ville']) . "',
                phone = '',
                date_add = '" . date('Y-m-d H:i:s') . "',
                date_upd = '" . date('Y-m-d H:i:s') . "',
                other = '" . addslashes($relais["MR_Selected_Num"]) . "',
                active = 1,
                deleted = 0";
            Db::getInstance()->Execute($sql);
            $cart->id_address_delivery = Db::getInstance()->Insert_ID();
        }
    }

}

Je précise que je suis en PS 1.4.x.

Et aussi que le code n'est pas parfait ... certains paramètres sont en dur.

 
Le principe est d'enregistrer l'adresse du point relais sans le lier au compte client par son id : id_customer=0
Puis de la lier au panier.
 
Au final, l'adresse du point relais apparaît dans le panier puis la commande et donc la facture, les webservices, etc ... sans toucher au reste du fonctionnement du module Mondial Relay.
 
si ça peut vous servir !
Moi, j'ai besoin qu'il fonctionne comme cela.
Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...

Il y a un nouveau champ dans la table cart de Prestashop qui pose problème. Le champ delivery_option.

Lors du passage du panier en commande, l'adresse du point relais ne passe pas !

Je n'ai pas encore bien compris comment mettre à jour ce champ dans le panier lors du choix du point relais et passage vers le paiement !

Link to comment
Share on other sites

OK

J'avais essaye et en effet l'adresse du point relais n'est pas pris en  compte. Je ne peux pas etre d'une grande aide pour resoudre le pb mais je vais suivre le post car cela m’intéresse d'avoir cette adresse de livraison visible.

En espérant que tu puisse contourner le pb.

Bon courage et merci pour ton investissement

Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Bonjour

+1. Je viens d'être confrontée au pb avec la réclamation d'une cliente qui me dit avoir demandé la livraison à domicile avec Mondial Relay,comme le prouve l'adresse de livraison indiquée sur sa confirmation de commande...

Boutique en 1.5.4.

 

Est-ce quelqu'un  a trouvé un bout de solution?

Merci

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...