Jump to content

[RESOLU] module mailalerts et confirmation de commande au commerçant incomplet


Recommended Posts

Bonjour

je viens de parcourir beaucoup de posts sur lesquels on lit que le module mailalerts envoie au commerçant une confirmation de commande bien incomplète :

- pas d'infos sur les attributs de produits (couleur, taille)
- pas d'infos sur les personnalisations de produits
- Apparemment en cas d'emballage cadeau avec un petit mot, ce petit mot n'est pas non plus repris

Je n'ai pas testé le dernier cas mais vu le fichier mailalerts.php ça me parait vrai (je n'y ai vu cette variable nulle part).
Par contre les 2 premiers cas "attributs" et "personnalisation" oui, et ils font l'objet de nombreux posts.

C'est vrai que ce n'est pas très logique : le commerçant est obligé de jeter un oeil à son administration, et tant que la commande est en cours elle n'est pas vraiment imprimable. Alors qu'avec un mail complet il l'imprime et il a tout sous la main, ce qui est pratique quand les produits ne sont pas stockés dans le bureau...


Enfin bref, vu que le client reçoit quant à lui la commande bien détaillée, je pense que le plus simple serait de faire en sorte qu'à chaque envoi du fichier "order_conf' au client, on en envoie une copie au commerçant
Avec un joli carbon copy, quelque chose du genre

"$headers .= "CC: [email protected]\r\n";



Ca me parait plus facile que d'incorporer dans mailalerts.php les fonctions de recherche d'attributs, de customization...

Quelqu'un saurait-il ou l'on peut ajouter cette ligne d'envoi de copie de mail (dans quel fichier) et s'il est possible de le limiter à la confirmation de commande (pas les mises à jour de statut de commande ou ce genre de choses, car pour une boutique qui reçoit jusqu'à 50 commandes /jour bonjour l'angoisse si tant de mails arrivent).

Si quelqu'un pouvait ne serait-ce que me dire ou aller jeter un oeil...

A bientôt
Amicalement,

Link to comment
Share on other sites

Bonjour

bon ben si toutefois cela intéresse quelqu'un, voici la soluce.
Je me suis aidée pour ça de ce post,
(rendons à César ce qui est à César) mais en le simplifiant et en limitant l'envoi de copie mail au commerçant à celui de la commande.

donc dans ../classes/Mail.php

remplacer (vers ligne 38) :

/* Construct multiple recipients list if needed */
       if (is_array($to))
       {
           $to_list = new Swift_RecipientList();
           foreach ($to as $key => $addr)
           {
               $to_name = NULL;
               $addr = trim($addr);
               if (!Validate::isEmail($addr))
                   die(Tools::displayError('Error: mail parameters are corrupted'));
               if ($toName AND is_array($toName) AND Validate::isGenericName($toName[$key]))
                   $to_name = $toName[$key];
               $to_list->addTo($addr, $to_name);
           }
           $to_plugin = $to[0];
           $to = $to_list;
       } else {        
           /* Simple recipient, one address */
           $to_plugin = $to;
           $to = new Swift_Address($to, $toName);    
       }



par :

/* Construct multiple recipients list if needed */
       if (is_array($to))
       {
           $to_list = new Swift_RecipientList();
           foreach ($to as $key => $addr)
           {
               $to_name = NULL;
               $addr = trim($addr);
               if (!Validate::isEmail($addr))
                   die(Tools::displayError('Error: mail parameters are corrupted'));
               if ($toName AND is_array($toName) AND Validate::isGenericName($toName[$key]))
                   $to_name = $toName[$key];
               $to_list->addTo($addr, $to_name);
           }
           $to_plugin = $to[0];
           $to = $to_list;
       } else {    
           /* On envoie une copie cachée de la commande client - à l'identique - au commerçant */
           if ($template == 'order_conf')
           {
               $to_list = new Swift_RecipientList();
               $to_list->addTo($to, $toName);
               $to_list->addBcc($from, $fromName);
               $to_plugin = $to;
               $to = $to_list;

           } else {                
               /* Simple recipient, one address */
               $to_plugin = $to;
               $to = new Swift_Address($to, $toName);
           }    
       }




$from : c'est l'adresse mail de la boutique
$fromName : son nom.

j'ai donc désactivé en back-office, dans le module "alertMails", l'envoi au commerçant.

Voili voilou.
@ plus sur le forum

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...