Hallo zusammen,
wer vor dreckigen Hacks nicht zurückschreckt oder daraus ein richtiges Modul bauen will*: Hier ist eine Lösung zum automatischen Anhängen von Rechnungen an die E-Mail mit der Bestellbestätigung
(ohne Gewähr, bei mir läuft’s unter CE 6.0.4)
Voraussetzung: Das Standard-Modul “Invoice PDF” muss installiert sein.
Dazu ändere ich in der Datei
vendor/oxid-esales/oxideshop-ce/Email.php
die Funktion sendOrderEmailToUser
Genauer füge ich an zwei Stellen neuen Code ein.
Erste Stelle (A) zwischen den Zeilen
$this->_setMailParams($shop);
(…)
$user = $order->getOrderUser();
Zweite Stelle (B) zwischen
$this->setReplyTo($shop->oxshops__oxorderemail->value, $shop->oxshops__oxname->getRawValue());
(…)
return $this->send();
Den Code zum Einfügen an beiden Stellen findet ihr hier:
https://pastebin.com/fVqcZBnr
(Posten hier im Forum geht leider aus technischen Gründen derzeit nicht)
Damit die Sprachplatzhalter richtig gefüllt werden, muss noch händisch die cust_lang.php erweitert werden um den Inhalt von /source/modules/oe/invoicepdf/views/admin/de/invoicepdf_lang.php
(also alle ORDER_OVERVIEW_PDF*-Inhalte).
Hintergrund ist, dass das Invoice PDF-Modul normalerweise aus dem Admin-Bereich heraus genutzt wird und die Sprachdatei entsprechend ausgerichtet ist. Die E-Mail wird aber im Frontend-Umfeld versendet und sucht nach User-Sprachen in lang.php und cust_lang.php. Kopiert man die Inhalte nicht rüber aus Admin, stehen also nur die nackten Platzhalter im PDF.
Ältere Rechnungs-PDF werden bei jedem Aufruf der Funktion aus dem Verzeichnis gelöscht, damit sich da nicht allzuviel ansammelt.
Vielleicht nutzt das ja dem einen oder anderen als Basis für eigene Entwicklungen - wie schon geschrieben, alles ohne Gewähr und auf eigenes Risiko.
Viel Spaß!
floko
*P.S.: Ich hatte ein Modul für CE 6.0.2. für diese und andere Funktionen gebaut, bekomme das aber nicht mehr zum Laufen. Da mir momentan Nerven und Zeit fehlen, um dem auf den Grund zu gehen, hier eine Lösung, die unsexy ist, aber funktioniert.