pdf-Anhang mit Bestätigungsmail senden?

Hallo,

ich benutze die Version 4.9.3.

Ich möchte gerne meine Bestellbestätigung mit zwei pdf’s versenden.
A) agb.pdf
B) widerrufsmeldung.pdf

diese beiden Dateien liegen zur Zeit im Ordner “out”.
Welches Template und wie muß ich das anpassen.

Gruß Klaus

Dafür stehen mehrere Gratismodule hier im Forum zur Verfügung. Einfach mal suchen :wink:

Hallo!

Dafür stehen mehrere Gratismodule hier im Forum zur Verfügung. Einfach mal suchen

Ich kenne nur ppg_ordermailattach. Das funktioniert in 4.9.x scheinbar nicht.

Steffen Winde

Hallo,

das ist das Problem, die Beiträge beziehen sich auf alte Versionen
und die Module paasen auch nicht.

das habe ich aus dem Jahr 2009 gefunden, weiß jemand etwas darüber?

http://forum.oxid-esales.com/showthread.php?t=1248

Hallo,

nach Durchsicht im Forum habe ich in der Datei oxemail.php im Ordner core
folgendes 3 Zeile vor $blSuccess eingefügt. Meine pdf-Datei liegt im Ordner out.

Wäre auch zu schön gewesen, um zu funktionieren.

       $attachment_path = 'out/';
       $attachment_file = 'wruf.pdf';
	   $this->addAttachment( $attachment_path, $attachment_file ); 
		
		
		
		$blSuccess = $this->send();

        return $blSuccess;
    }

    /**
     * Sets mailer additional settings and sends ordering mail to shop owner.
     * Returns true on success.
     *
     * @param oxOrder $oOrder   Order object
     * @param string  $sSubject user defined subject [optional]
     *
     * @return bool
     */
    public function sendOrderEmailToOwner($oOrder, $sSubject = null)

eigentlich müßte was in des exception_log.txt stehen …

versuchs mal so:

 $sAttachmentPath = getShopBasePath() . 'out/wruf.pdf''; 
 $this->addAttachment( $sAttachmentPath);
1 Like

Hallo!

Ich glaube wir übertreiben das ganze etwas!

In die Kunden Bestellbestätigung wird doch sowieso eine CMS Seite angehangen mit der Widerrufbelehrung. Dort habe ich jetzt einfach die agb.pdf direkt verlinkt!

Hier finden Sie unsere AGB --> Link

Fertig!

Wer will kann noch ein pdf-bild einfügen.

Steffen Winde

ich fürchte, wir übertreiben nicht.

Diese Anforderung kenne ich ebenso, z.B: von der EHI Shop Zertifizierung.
Diese selbsternannten “Wissenschaftler” sagen, dass einfache Links nicht ausreichen, da der Kunde ja offline sein könnte, wenn er die E-Mail liest, und verlangen daher ausdrücklich sowohl AGB als das Widerrufsrecht als pdf Anhang in der E-Mail.

die Lösung von patchwork müsste funktionieren, unser Code ist fast identisch:


...
$this->addAttachment($myConfig->getConfigParam("sShopDir")."pdf/afg.pdf");
$this->addAttachment($myConfig->getConfigParam("sShopDir")."pdf/widerrufsrecht.pdf");
...

1 Like

Heureka! Möchte ich ausrufen, es funktioniert!

Das Modul, im Anhang, versendet endlich PDF-Dateien. Man muss nur den Ordner out in views ändern, dann werden auch die Sprachdateien richtig angezeigt.

Getestet mit OXID Version 4.9.3

Viel Spaß
Steffen Winde

Hallo zusammen,

hat etwas gedauert, ich war unterwegs.
Die Lösung von patchwork habe ich so übernommen und hat super funktioniert.
Vielen Dank an alle die mitgearbeitet haben.

Gruß Klaus

Hi vanilla,

$myConfig->getConfigParam(“sShopDir”)

kannst du mir das kurz erklären?

Gruß Klaus

schau mal in die config.inc.php im Shop Stammordner,
dort gibts sShopDir und es enthält den Pfad auf dem Server zum Shop

Danke vanilla

Also ich kann im OXID_ESHOP_CE_6.0.0 nirgends eine Datei names “oxemail.php” finden.
Welche Datei muss denn bearbeitet werden? Heißt die jetzt anders?

Hi,
die heißt jetzt Email.php:

\vendor\oxid-esales\oxideshop-ce\source\Core\Email.php

1 Like

Hier mal der ganze Code der Funktion “sendOrderEmailToUser”.
An welcher Stelle muss ich denn jetzt hier die o.g. Code-Schnipsel einfügen?

public function sendOrderEmailToUser($order, $subject = null)
    {
        $myConfig = $this->getConfig();

        // add user defined stuff if there is any
        $order = $this->_addUserInfoOrderEMail($order);

        $shop = $this->_getShop();
        $this->_setMailParams($shop);

        $user = $order->getOrderUser();
        $this->setUser($user);

        // create messages
        $smarty = $this->_getSmarty();
        $this->setViewData("order", $order);

        if ($myConfig->getConfigParam("bl_perfLoadReviews")) {
            $this->setViewData("blShowReviewLink", true);
        }

        // Process view data array through oxOutput processor
        $this->_processViewArray();

        $this->setBody($smarty->fetch($this->_sOrderUserTemplate));
        $this->setAltBody($smarty->fetch($this->_sOrderUserPlainTemplate));

        // #586A
        if ($subject === null) {
            if ($smarty->template_exists($this->_sOrderUserSubjectTemplate)) {
                $subject = $smarty->fetch($this->_sOrderUserSubjectTemplate);
            } else {
                $subject = $shop->oxshops__oxordersubject->getRawValue() . " (#" . $order->oxorder__oxordernr->value . ")";
            }
        }

        $this->setSubject($subject);

        $fullName = $user->oxuser__oxfname->getRawValue() . " " . $user->oxuser__oxlname->getRawValue();

        $this->setRecipient($user->oxuser__oxusername->value, $fullName);
        $this->setReplyTo($shop->oxshops__oxorderemail->value, $shop->oxshops__oxname->getRawValue());

        return $this->send();
    }

Probiers einfach am Ende in der Zeile vor dem “return $this->send()”.