Jump to content
DEVCOM

Alerte email : Votre commande a été a été modifiée par le marchand

Recommended Posts

Bonjour,

 

Je souhaiterais supprimer l'alerte email envoyée au client lors de la modification d'une commande depuis le backoffice.

 

Le e-commerce en question est dédié uniquement aux professionnels qui passent commande via le site et téléphone plusieurs fois dans la journée pour faire modifier leur commande directement.

Pour X produits ajoutés ou modifiés, X emails envoyés au client.

 

Il n'est pas question de modifier le mode de fonctionnement de l'entreprise, il ne reste donc qu'a fouiller dans les fichiers de l'administration, et jusque la sans succès pour supprimer cette alerte lors de l'ajout d'un produit ou modifications diverses.

 

Merci d'avance !

Share this post


Link to post
Share on other sites

Donc personne n'a jamais eut cette folle envie en se levant un matin ? ;)

Share this post


Link to post
Share on other sites

Donc personne n'a jamais eut cette folle envie en se levant un matin ? ;)

 

Salut DEVCOM,

 

Personnellement je n'ai jamais eu cette "folle envie" en me levant le matin. ^_^

 

La solution rapide :

 

dans /controllers/admin/AdminOrdersController.php il faut rajouter le code return false; ( ligne 1700 et des brouettes) comme ci-dessous:

public function sendChangedNotification(Order $order = null)
    {
return false;

if (is_null($order))
            $order = new Order(Tools::getValue('id_order'));

L'inconvénient c'est que s'il on met à jour sa version de prestashop, cette modification sera effacée.

 

 

La solution moins rapide mais propre:

 

Faire un override, donc:

 

dans override/controllers/admin il faut créer un fichier AdminOrdersController.php et y mettre le code suivant:

<?php

class AdminOrdersController extends AdminOrdersControllerCore
{

public function sendChangedNotification(Order $order = null)
{
return false;
}

}
?>

Il faut ensuite enregistrer le fichier et supprimer le fichier class_index.php qui se trouve dans /cache sinon l'override ne sera pas pris en compte.

 

:rolleyes:

Edited by dklfdlfkj (see edit history)

Share this post


Link to post
Share on other sites

Bonjour ,

 

 

j'ai essayé la solution de l'override mais cela ne fonctionne pas sous 1.5.6.2.

 

Le client recoit toujours un mail lorsque sa commande est modifiée.

Share this post


Link to post
Share on other sites

Bonjour ,

 

 

j'ai essayé la solution de l'override mais cela ne fonctionne pas sous 1.5.6.2.

 

Le client recoit toujours un mail lorsque sa commande est modifiée.

 

Bonjour Manouille,

 

Est-ce que la solution rapide fonctionne ?

Share this post


Link to post
Share on other sites

Oui je viens de tester la solution rapide marche.

Ne faut il pas reecrire toute la fonction dans l'override ?

Edited by manouille (see edit history)

Share this post


Link to post
Share on other sites

Essayez comme ceci:

<?php

class AdminOrdersController extends AdminOrdersControllerCore
{

public function sendChangedNotification(Order $order = null)
{
return false;
}

}
?>
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,


Je remonte le post.
Chez moi (en 1.6.0.9), cela ne fonctionne que directement dans mon fichier AdminOrdersController dans controllers/admin.
Mais je voudrais bien l'overrider. Et j'ai déjà un fichier AdminOrdersController.php en override.
Je pense que c'est un problème de balises, et que je n'ai pas réussi à l'intégrer. Sinon si c'est juste, alors je ne sais pas pourquoi cela ne fonctionne pas en override.

 

Voici en vert l'ajout conseillé :
<?php
class AdminOrdersController extends AdminOrdersControllerCore


 

{
    public function sendChangedNotification(Order $order = null)
   

{
        return false;
   

}


}
public function __construct()
    {
        parent::__construct();
        $this->_select .= ', ca.name as carrier_name';
        $this->_join .= ' LEFT JOIN `'._DB_PREFIX_.'carrier` ca ON (ca.`id_carrier` = a.`id_carrier`)';
        $this->fields_list['carrier_name'] = array(
            'title' => $this->l('Transporteur'),
            'width' => 200,
            'callback' => 'transporteur'
        );
    }
        public function processFilter()
    {
        parent::processFilter();
        $this->_filter = str_replace('`carrier_name`', 'ca.name', $this->_filter);
    }
    public function transporteur($carrier_name)
    {
        if (strpos(strtolower($carrier_name), 'colissimo') !== FALSE)
            return '<span style="color: #cf6c04;">' . $carrier_name . '</span>';
        else
            return $carrier_name;
    }
}
Pouvez-vous m'aider ?


 

Merci par avance.

Share this post


Link to post
Share on other sites

Bonjour,

 

Quand tu crées un nouvel override il faut que tu supprimes le fichier class_index.php du répertoire cache pour qu'il soit pris en compte

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More