Julyen Posted January 24, 2023 Share Posted January 24, 2023 (edited) Bonjour à tous, J'essaie de configurer Prestashop 1.7.8.7 pour que lorsqu'une commande est passée le bon de commande soit envoyé à l'adresse mentionnée dans "Notifications pour le marchand" du module "Alertes par e-mail". Les commandes avec lesquels j'ai fait les test sont en mode "Paiement accepté" et "En cours de préparation". J'ai bien coché les cases "Joindre le bon de livraison PDF à l'e-mail." et "Afficher le PDF de bon de livraison." L'e-mail me parvient bien mais je n'ai pas de fichier pdf du bon de commande en annexe ou de lien pour le télécharger. Est-ce que j'ai oublié de configurer quelque chose ailleurs peut-être ? Merci tout plein pour votre aide. Edited January 24, 2023 by Julyen (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted January 25, 2023 Share Posted January 25, 2023 Le module MailAlerts n'a jamais envoyé de facture en pièce-jointe, il faut modifier son code si vous voulez que ce soit le cas. Link to comment Share on other sites More sharing options...
Julyen Posted January 25, 2023 Author Share Posted January 25, 2023 8 hours ago, Eolia said: Le module MailAlerts n'a jamais envoyé de facture en pièce-jointe, il faut modifier son code si vous voulez que ce soit le cas. Merci pour ces clarifications, il faut dire que les libellés sont trompeurs... Enfin je pensais au moins obtenir un lien dans l'e-mail pour télécharger le bon de livraison. Demander à la logistique de se loguer dans le back-office c'est pas tellement envisageable. Y aurait-il une manière de procéder pour au moins obtenir un lien pour télécharger le bon de livraison ? Link to comment Share on other sites More sharing options...
Eolia Posted January 25, 2023 Share Posted January 25, 2023 (edited) Il faut modifier le code du module pour le mettre en pièce-jointe lors de l'envoi du mail. Code à insérer avant if ($dir_mail) Mail::Send( if ($order->invoice_number || $order->delivery_number) { $file_attachement = array(); if ((int)Configuration::get('PS_INVOICE') && $order->invoice_number) { $order_invoice_list = $order->getInvoicesCollection(); Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list)); $pdf = new PDF($invoice, PDF::TEMPLATE_INVOICE, $this->context->smarty); $file_attachement['invoice']['content'] = $pdf->render(false); $file_attachement['invoice']['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)$order->id_lang, null, $order->id_shop).sprintf('%06d', $order->invoice_number).'.pdf'; $file_attachement['invoice']['mime'] = 'application/pdf'; } if ($order->delivery_number) { $pdf = new PDF($invoice, PDF::TEMPLATE_DELIVERY_SLIP, $this->context->smarty); $file_attachement['delivery']['content'] = $pdf->render(false); $file_attachement['delivery']['name'] = Configuration::get('PS_DELIVERY_PREFIX', $this->context->language->id, null, $order->id_shop).sprintf('%06d', $order->delivery_number).'.pdf'; $file_attachement['delivery']['mime'] = 'application/pdf'; } } else { $file_attachement = null; } Edited January 25, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Julyen Posted January 25, 2023 Author Share Posted January 25, 2023 27 minutes ago, Eolia said: Il faut modifier le code du module pour le mettre en pièce-jointe lors de l'envoi du mail. Code à insérer avant if ($dir_mail) Mail::Send( if ($order->invoice_number || $order->delivery_number) { $file_attachement = array(); if ((int)Configuration::get('PS_INVOICE') && $order->invoice_number) { $order_invoice_list = $order->getInvoicesCollection(); Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list)); $pdf = new PDF($invoice, PDF::TEMPLATE_INVOICE, $this->context->smarty); $file_attachement['invoice']['content'] = $pdf->render(false); $file_attachement['invoice']['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)$order->id_lang, null, $order->id_shop).sprintf('%06d', $order->invoice_number).'.pdf'; $file_attachement['invoice']['mime'] = 'application/pdf'; } if ($order->delivery_number) { $pdf = new PDF($invoice, PDF::TEMPLATE_DELIVERY_SLIP, $this->context->smarty); $file_attachement['delivery']['content'] = $pdf->render(false); $file_attachement['delivery']['name'] = Configuration::get('PS_DELIVERY_PREFIX', $this->context->language->id, null, $order->id_shop).sprintf('%06d', $order->delivery_number).'.pdf'; $file_attachement['delivery']['mime'] = 'application/pdf'; } } else { $file_attachement = null; } Merci infiniment pour l'info et le code. J'ai bien ajouté le code dans "ps_emailalerts.php" avant les lignes 527 et 938 mais je ne reçois toujours pas de bon de livraison par en fichier joint. Y a-t-il autre chose en prendre en considération ? Link to comment Share on other sites More sharing options...
Eolia Posted January 25, 2023 Share Posted January 25, 2023 (edited) Ah si, un peu plus bas: Dans l'envoi du mail ($file_attachement est forcé à null) remplacez Mail::Send( $mail_id_lang, 'new_order', sprintf(Mail::l('New order : #%d - %s', $mail_id_lang), $order->id, $order->reference), $template_vars, $merchant_mail, null, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], null, null, $dir_mail, null, $id_shop ); Par Mail::Send( $mail_id_lang, 'new_order', sprintf(Mail::l('New order : #%d - %s', $mail_id_lang), $order->id, $order->reference), $template_vars, $merchant_mail, null, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], $file_attachement, null, $dir_mail, null, $id_shop ); Edited January 25, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Julyen Posted January 31, 2023 Author Share Posted January 31, 2023 Merci beaucoup, j'ai re-tenté les modifications de code, mais rien ne semble fonctionner... Je pense que je vais me tourner vers un module qui s'occupe de cela. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now