mashart Posted January 25, 2014 Share Posted January 25, 2014 Guten Tag, in meinem Shop will ich, dass bei Bestellbestätigung und bei Versandbenachrichtigung die AGB zusammen mit der Rechnung (PDF) verschickt wird. Leider habe ich bis jetzt nichts funktionierendes gefunden. Kann mir hemand helfen? Ich hab die Version 1.5.6.1. Vielen Dank Grüße Link to comment Share on other sites More sharing options...
Luca01 Posted January 25, 2014 Share Posted January 25, 2014 (edited) Hallo mashart, wir versenden die agb und die Widerrufserklärung als pdf mit der Bestellbestätigung. Dazu haben wir einen Override der Mail.php. Den Original-Code habe ich so modifiziert: if (isset($logo)) $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo))); */ /* AGB und Widerrufserklärung im Mailanhang für die Bestellbestätigung*/ if(strpos($template,'order_conf') !== false && file_exists($theme_path.'/mailtexte/agb.pdf')){ $message->attach(new Swift_Message_Attachment(new Swift_File($theme_path.'/mailtexte/agb.pdf'))); } if(strpos($template,'order_conf') !== false && file_exists($theme_path.'/mailtexte/widerrufsbelehrung.pdf')){ $message->attach(new Swift_Message_Attachment(new Swift_File($theme_path.'/mailtexte/widerrufsbelehrung.pdf'))); } /* ENDE --- AGB und Widerrufserklärung im Mailanhang für die Bestellbestätigung*/ if ((Context::getContext()->link instanceof Link) === false) Context::getContext()->link = new Link(); Die pdf-Dokumente liegen in dem Beispiel im Unterverzeichnis /mailtexte/ des Theme-Verzeichnis. Eine Idee, um die Rechnung als pdf in die Versandbestätigung zu bekommen, habe ich leider nicht. Die Rechnung wird quasi beim Aufrufen "on-the-fly" aus der Datenbank generiert. Liegt also nicht als pdf vor. Viele Grüße Edited January 25, 2014 by Luca01 (see edit history) 3 Link to comment Share on other sites More sharing options...
mashart Posted January 25, 2014 Author Share Posted January 25, 2014 Super, funktioniert perfekt. Vielen Dank für die Hilfe! Link to comment Share on other sites More sharing options...
eleazar Posted January 26, 2014 Share Posted January 26, 2014 @mashart Könntest du dann wohl den Topic als [gelöst] markieren (s. mein Footer). Und dann vielleicht noch beim Post von Luca auf den irreführend beschrifteten Button 'Mark as solved' klicken. Dann wird die Lösung als beste Antwort dem Topic vorangestellt. @Luca01 Ich nehme das mal in den Tipps und Tutorials-Thread auf. Link to comment Share on other sites More sharing options...
Lockesoft Posted January 30, 2014 Share Posted January 30, 2014 Auch wenns offiziell bereits als gelöst gilt. :-) Luca's Posting war der Anlass mich nochmal meinem Problem der E-Mailpakete zu widmen, in dem ich an sich auch AGB und eine Widerufsbelehrung als PDF mit der Bestellbestätigung senden wollte....... Wenn sie denn im Mail-Verzeichnis vorhanden sind und natürlich für die einzelnen Sprachen extra..... Bis eben gings einfach nicht, obwohl ich mir sicher war, dass alles wesentliche richtig sein müsste. Oki, langer Rede kurzer Sinn. Luca zeigt mir, dass mein Aufruf der Mailfunktionen (Swift und Co.) richtig ist. das hab ich auch so. :-) Also kann es nur noch an den Pfaden liegen. Bingo! da wars es dann: // attach pdf for agb and confirmrevocation if aviable KKEDV 01.2014 if(strpos($template,'order_conf') !== false && file_exists(_PS_MAIL_DIR_.$iso.'/terms-agb.pdf')){ $message->attach(new Swift_Message_Attachment(new Swift_File(_PS_MAIL_DIR_.$iso.'/terms-agb.pdf'))); } if(strpos($template,'order_conf') !== false && file_exists(_PS_MAIL_DIR_.$iso.'/revocation-widerruf.pdf')){ $message->attach(new Swift_Message_Attachment(new Swift_File(_PS_MAIL_DIR_.$iso.'/revocation-widerruf.pdf'))); } // End attach pdf for agb and confirmrevocation if aviable KKEDV 01.2014 /* Send mail */ $send = $swift->send($message, $to, new Swift_Address($from, $from_name)); $swift->disconnect(); return $send; So hängt der Override der Mail.php hier PDFs für AGB und Widerrufsbelehrung auch in verschiedenen Sprachen an. Sie müssen nur im normalen Mails-Verzeichnis der jeweiligen Sprache vorhanden sein. Anmerkung: Hab das auf die Schnelle jetzt nur mit der terms-agb.pdf in einer 1.5.6 getestet, gehe aber davon aus, dass es auch mit revocation-widerruf.pdf funktionieren wird. Anmerkung 2: Ich habs anscheinend auch an etwas anderer Stelle eingebaut. bei mir isses ziemlich am Ende der Funktion gelandet. LG Klaus / Lockesoft 1 Link to comment Share on other sites More sharing options...
c-louder Posted May 5, 2014 Share Posted May 5, 2014 (edited) Danke für die tolle Erklärung. Der obige Code oben an sich reicht nicht als override, sondern ich muss die original mail.php ergänzen und dann in den override Ordner schieben. So sollte es gehen oder? Dann habe ich noch eine Frage im engl. Forumteil gefunden, die fragt, wie man diese Anhänge nur bei bestimmten mails anhängt und nicht bei allen. Ehm, macht dieser Code es schon so, wie wir es in Dt. brauchen oder müsste noch was geändert werden? Ich weiß noch nicht genau, wie es sein müsste, aber so wie Ihr es nutzt macht es sicher Sinn. Also möglichst schon beim 1. mail raussenden...Bestellbestätigung... Jedoch nicht, bei z.B. Supportantworten.... Edited May 5, 2014 by c-louder (see edit history) Link to comment Share on other sites More sharing options...
distrax Posted January 18, 2016 Share Posted January 18, 2016 Hallo Ihr, und entschuldigt bitte, das ich diese alte Kiste wieder ausgrabe. Ich habe ja nun noch immer 1.5.4.1 laufen und wollte obigen Code eingeben. Eigentlich bin ich ja garnicht so doof, aber hier übersteigt das meine knapp vorhandenen Kompetenzen. Kann mir evtl. jemand eine Schritt-für-Schritt Anleitung knapp verfassen, damit ich 2 PDF´s (AGB und Widerruf natürlich) an die Mails anhängen kann? Das nervt nämlich, andauernd sämtliche Mails bearbeiten zu müssen, wenn sich die AGB ändert. Danke schonmal von einen ratlosen Distrax Link to comment Share on other sites More sharing options...
eleazar Posted January 18, 2016 Share Posted January 18, 2016 Hallo zurück,Luca hat das doch weiter oben sooo schön erklärt. Also, dann mal Schritt für Schritt: Du richtest für deine PDFs ein eigenes Verzeichnis im Root ein. Nun legst du eine Override-Datei namens Mail.php an (z.B. mit notepad++) mit folgendem Rahmeninhalt: <?php class Mail extends MailCore { <!-- Hierher gehört die Änerung --> } Du kopierst aus der Datei /classes/Mail.php der Einfachheit halber die komplette public static function Send und plazierst sie zwischen die beiden geschweiften Klammern. Nun suchst du folgenden Text: don't attach the logo asDa sollte jetzt stehen, so ab Zeile 276 (der Original-Datei) oder etwa Zeile 223 (des Overrides): /* don't attach the logo as */ if (isset($logo)) $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo))); if ((Context::getContext()->link instanceof Link) === false) Context::getContext()->link = new Link(); Das erweiterst du nun wie oben beschrieben zu: if (isset($logo)) $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo))); */ /* AGB und Widerrufserklärung im Mailanhang für die Bestellbestätigung*/ if(strpos($template,'order_conf') !== false && file_exists($theme_path.'/mailtexte/agb.pdf')){ $message->attach(new Swift_Message_Attachment(new Swift_File($theme_path.'/mailtexte/agb.pdf'))); } if(strpos($template,'order_conf') !== false && file_exists($theme_path.'/mailtexte/widerrufsbelehrung.pdf')){ $message->attach(new Swift_Message_Attachment(new Swift_File($theme_path.'/mailtexte/widerrufsbelehrung.pdf'))); } /* ENDE --- AGB und Widerrufserklärung im Mailanhang für die Bestellbestätigung*/ if ((Context::getContext()->link instanceof Link) === false) Context::getContext()->link = new Link(); Nun lädst du deine Override-Datei ins Verzeichnis /override/classes/, löscht den Cache und .... Bingo! Und was 1.5.4.1 anbelangt, da brauchst du dich nicht zu schämen. Die Version läuft nach wie vor schneller und problemloser als 1.6.1. Und es erweist sich als weiser Entschluss. Denn momentan lohnt sich der Umstieg sowieso nicht, da der Core gerade in Symfony umgeschrieben wird und das Bootstrap-Template mit der kommenden Version 1.7 und ihrem Baukastensystem Starter Theme auf den Müllhaufen der derzeit noch schnelllebigen PrestaShop-Geschichte geworfen wird. Eine Abwärtskompatibilität wird es nach aktuellem Stand nicht geben. Du hättest dann u. U. ganz umsonst am Template "herumgeschraubt". 2 Link to comment Share on other sites More sharing options...
distrax Posted January 19, 2016 Share Posted January 19, 2016 (edited) First of all: Danke Dir eleazar, ein weiteres mal ;-) Nach langem hin und her habe ich es jetzt geschafft. Allerdings nicht ganz so wie es hier beschrieben wurde, sondern mit dem Code von sm5k hier statische-pdf-als-zusätzlicher-anhang-in-der-bestellbestätigungs-e-mail/ Vielen Dank dafür an Euch beide! Und was 1.5.4.1 anbelangt habe ich mich ja nun schlaugelesen, was die aktuellen Versionen betrifft. Sehr schade drum, das PS diese Richtung geht. Aber vielelicht verstehen die in Paris mal das Problem der Rechtssicherheit für uns. Und letztendlich läuft ja mein Shop - wie heißt es so schön: never stop a running system. Edited January 19, 2016 by distrax (see edit history) Link to comment Share on other sites More sharing options...
tuk66 Posted January 19, 2016 Share Posted January 19, 2016 Für diejenigen, die mit dem M4 PDF Extensions Modul, fügen Sie diesen Code in die Rechnungsvorlage und verändern CMS ID (statt 10): For those using the M4 PDF Extensions module, add this code to the invoice template and change CMS ID (instead of 10): {factory assign=cms class="CMS" id_lang=$m4_actual_language id=10} {if is_object($cms)} <pagebreak /> {$cms->content} {/if} Link to comment Share on other sites More sharing options...
LoeweBanner Posted June 15, 2017 Share Posted June 15, 2017 Hallo Leute, bin neu hier und habe eben versucht nach der oben beschriebenen Anleitung zu handeln. Leider funktioniert das bei meiner Version 1.6.1.14 nicht. Hat irgendjemand eine Idee was ich machen muss? Danke Link to comment Share on other sites More sharing options...
Claudiocool Posted June 15, 2017 Share Posted June 15, 2017 Ich liefere die Sachen als CMS-Anhang an eine Bestellung mit aus, das ist so schön in der europ. Rechtssicherheit einstellbar... Link to comment Share on other sites More sharing options...
LoeweBanner Posted June 16, 2017 Share Posted June 16, 2017 Hey Danke für deine Antwort. Das habe ich bis jetzt auch, nur leider hängt er das nicht als PDF an sondern als Text direkt im Anschluss an die Bestellbestätigung. Wenn jemand das Drucken will sind das dann fast 10 Seiten Papier!? Hab ich da was übersehen? Link to comment Share on other sites More sharing options...
Claudiocool Posted June 16, 2017 Share Posted June 16, 2017 Siehste, das ist mir eigentlich egal, wenn jemand seine Tinte/Toner und Papier mit meinen AGB verballert...... Da die AGB auf der Seite sind und der Kunde ausreichend Hinweise darauf sieht, sende ich die nur Neukunden mit, die sich anmelden, Gastbestellungen bleiben sogar davor verschont. Ich hab auch schon überlegt, ob ich nur den Link zu den AGB mitsende. Bei Widerrufsbelehrung ist es klar, die geht als CMS bei der Bestellung mit, das hat den Vorteil, dass die Frist definitiv gewahrt bleibt und zu laufen beginnt, wann das paket beim Kunden ist. Sonst müsstest du ihm nachweisen, wann er es geöffent hat und darin seine Widerrufsbelehrung gefunden hat. 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