AGBs als Anhang in der Bestätigungsmail mitschicken

Hallo,

wie der Titel schon sagt, möchte ich gern die AGBs in der Bestätigungsmail mitschicken (als PDF-Anhang). Ich habe keine Möglichkeit gefunden dies irgendwo “anzuknipsen” . Ich vermute, dass man hier ein eigenes Modul schreiben muss?

Wenn ja, wo muss ich ansetzen? Sprich, in welcher php-Klasse wird die Mail abgeschickt, damit ich den Anhang entsprechend ergänzen kann?

Danke!


http://www.sinngemaess.de

Hallo Kathrin,

schau Dir mal die oxorder.php an. Ich glaub, dort wird die Email zusammengebaut und verschickt.

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Ok, Danke. Werde mich da dann mal ransetzen!


http://www.sinngemaess.de

Hallo Kathrin,

schon fündig geworden?Bin nämlich mit unserem Anwalt auch an den finalen “Feinschliffen” :slight_smile:

Liebe GrüsseMichael

Der Hinweis von Marco hat mich auf jeden Fall weiter gebracht. Bin nur noch nicht dazu gekommen das “Projektchen” zu beenden.

Hallo Marco, hallo Entwicklung,

wir haben die Tage mit unserem Anwalt nochmal einiges hinsichtlich “Abmahnungsgefährdung” der CE Version besprochen und die AGB “MÜSSEN” als AGB im E-Mail Anhang mit versendet werden.

Eigentlich ist der Warenkorbprozess schon nicht ganz ok - so dass die AGB sehr wahrscheinlich
eh nicht in den Augen der Richter “korrekt” mit einbezogen sind … aber sie gar nicht zu versenden ist sowieso ein NO-GO !!!

Also deswegen meine BITTE an Dich Marco :

Kannst Du hier bitte eine Einbauanleitung posten, wie man ein PDF in die
email_order_cust_html.tpl und email_order_cust_plain.tpl einbauen kann.

:slight_smile: auch für einen NICHT - ENTWICKLER :slight_smile:

Danke.

Viele Grüsse
Michael

[QUOTE=mihinri;9262]Hallo Marco, hallo Entwicklung,

wir haben die Tage mit unserem Anwalt nochmal einiges hinsichtlich “Abmahnungsgefährdung” der CE Version besprochen und die AGB “MÜSSEN” als AGB im E-Mail Anhang mit versendet werden.

Eigentlich ist der Warenkorbprozess schon nicht ganz ok - so dass die AGB sehr wahrscheinlich
eh nicht in den Augen der Richter “korrekt” mit einbezogen sind … aber sie gar nicht zu versenden ist sowieso ein NO-GO !!!

Also deswegen meine BITTE an Dich Marco :

Kannst Du hier bitte eine Einbauanleitung posten, wie man ein PDF in die
email_order_cust_html.tpl und email_order_cust_plain.tpl einbauen kann.

:slight_smile: auch für einen NICHT - ENTWICKLER :slight_smile:

Danke.

Viele Grüsse
Michael[/QUOTE]
Ebenso wichtig ist natürlich die “[B]Widerrufbelehrung[/B]”, die auch als Anhang oder im Mail-Body mitgesendet werden sollte.

Wenn das erst mit Lieferung geschieht ist man nämlich schon bei 4 Wochen Widerrufsfrist, und handelt sich eine Abmahnung ein, wenn man in der Widerrufsbelehrung die 14 Tage angibt…

Das Anklicken von “Ich habe zur Kenntnis genommen…” während des Bestellvorgangs erfüllt nach aktueller Rechtsprechnung [B]nicht[/B] die Voraussetzung des Zugangs der Widerrufsbelehrung “[B]in Schriftform[/B]”.

Hallo Michael,

also erst mal: Die Entwicklung erwischt Du nur in Englisch :slight_smile:

Jetzt lass Dich mal nicht kirre machen. Das Problem ist, dass die Rechtsprechung an dieser Stelle sehr diffizil ist und u.U. von jedem Anwalt und/oder jedem Gericht anders bewertet wird.

Der OXID eShop wird in regelmäßigen Abständen von Trusted Shops geprüft und wird für die Auslieferung “vorzertifiziert”. D.h., die endgültige Zertifizierung kann vom Shopbetreiber selbst beantragt werden, nachdem auch die Inhalte kontrolliert wurden. Dann bekommt man auch ein hübsches Siegel :slight_smile:

Insofern sehe ich für die Standardsoftware keinen Handlungsbedarf.

Gruß

Hallo Marco, hallo avenger,

die Widerrufsbelehrung wird ja schon im E-Mail Body eingebunden.
Hübscher und vor allem kürzer wäre da natürlich auch ein Anhang.

Aber es kann ja für die Entwickler unter Euch :slight_smile: kein Hexenwerk sein,
einer E-Mail 1-n Anhänge zu spendieren … oder :slight_smile:

Ich würde mich freuen, wenn sich ein Entwickler unter Euch das mal anschauen würde :slight_smile:

Vielen Dank aus Augsburg
Michael

Machen wir doch glatt…

Das ist jetzt die schnelle Lösung direkt im Core-Code, saubere wäre es, das über ein Modul zu lösen…

In Datei “core/oxemail.php” in den Funktionen

public function sendOrderEmailToUser( $oOrder )

und

public function sendOrderEmailToOwner( $oOrder )

jeweils vor

    $blSuccess = $this->send();

einfügen:


        $attachment_path=$myConfig->getLanguageDir(false);
        $attachment_file='agb.pdf';
        if (is_file($attachment_path.$attachment_file))
        {
          $this->addAttachment( $attachment_path,$attachment_file);
        }

Dies geht davon aus, dass im Verzeichnis

out/template-name/de/” die Datei “agb.pdf” vorhanden ist,

und im Verzeichnis “out/template-name/en/” die englische Version.

Besser wie gesagt die Lösung, die für Klasse "oxemail" eine Child-Klasse zu definieren, und darin die

public function sendOrderEmailToUser( $oOrder )

und

public function sendOrderEmailToOwner( $oOrder )

komplett zu überladen, damit das update-fest wird…

Wenn ich morgen Zeit finde, werde ich das auch noch machen, is ja nicht so viel…

BTW: “$myConfig->[B]getLanguageDir/B” liefert am Ende 2 Slashes zurück…

[QUOTE=avenger;9283]Wenn ich morgen Zeit finde, werde ich das auch noch machen, is ja nicht so viel…[/QUOTE]
So, es ist vollbracht!

Meine erstes “richtiges” OXID CE-Erweiterungsmodul!

Die “[B]liesmicht.txt[/B]”:

Mit Hilfe dieses OXID 4 CE Erweiterungsmoduls ist es möglich, im Anhang an die Bestellbestätigungs-eMails an den Kunden und den Shopbetreiber eine PDF-Version der [B]AGB[/B] und der [B]Widerrufsbelehrung [/B]mit zu versenden.

Um das Modul zu aktivieren, muss der Ordner “[B]modules[/B]” im Verzeichnis “[B]order_mail_agb_attachment[/B]” in das Shop-[B]Wurzel[/B]verzeichnis kopiert werden (damit wird die Modul-Datei “[B]pt_email.php[/B]” in das Verzeichnis “[B]modules\mail[/B]” kopiert.)

Im [B]Admin[/B]-Bereich muss unter “[B]Stammdaten/System/Module[/B]” folgender zusätzlicher Eintrag gemacht werden:

[B]oxemail=>mail/pt_email[/B]

Sollte in dieser Liste jedoch schon eine Eintrag für “oxemail” vorhanden sein, dann ist nur “[B]&mail/pt_email[/B]” an den vorhandenen Eintrag [B]anzuhängen[/B].

Das Modul geht davon aus, dass im Verzeichnis

“[B]out/template-name/de/[/B]” die Datei “[B]agb.pdf[/B]” vorhanden ist,

und im Verzeichnis “[B]out/template-name/en/[/B]” die englische Version.

Soll die [B]Widerrufsbelehrung [/B]auch mit versandt werden, dann muss diese als “[B]fernag.pdf[/B]” in den gleichen Verzeichnissen vorhanden sein.

In der Datei “[B]modules\mail\pt_email.php[/B]” kann das Verhalten des Moduls beeinflusst werden:

Mit den beiden folgenden Anweisungen können die Dateinamen geändert werden.

define(‘ATTACHMENT_FILE_AGB’,’[B]agb.pdf[/B]’);
define(‘ATTACHMENT_FILE_REVOCATION’,’[B]fernag.pdf[/B]’);

Durch auskommentieren einer Zeile (mit // am Anfang der Zeile) wird der Versand der betreffenden Datei [B]unterbunden[/B].

Das Modul wir unter Ausschluss jeglicher Gewährleistung im Rahmen der GNU GPL 3.0 zur Verfügung gestellt.

Die Verwendung erfolgt ausschließlich auf eigene Gefahr des Anwenders.

Das Modul kann von [B]http://www.powertemplate.de/kunden/oxid/downloads/order_mail_agb_attachment.zip[/B] geladen werden.

https://bugs.oxid-esales.com/view.php?id=1021

fixed in 4.1.3

ups… falsches topic - sorry Jungs.

Hallo avenger,

hab dein Modul mal in einem Testshop ausprobiert. Anscheinend hat dein Script noch einen Schönheitsfehler. Es löscht alle Attachments in der Bestätigungsmail. Also alle Bilder die in der Mail enthalten sind.
Getestet hab ich mit der CE 4.1.2

Komando zurück: Mit Outlook sind alle Bilder da. Bei TheBat werden die Bilder nicht mehr angezeigt, Dafür in einen Message-Anhang verpackt. Ohne das Modul sind sie in der Email enthalten. Versteh einer die Emailprogramme :\

bis dahin
Thoren

[QUOTE=redone;9383]Hallo avenger,

hab dein Modul mal in einem Testshop ausprobiert. Anscheinend hat dein Script noch einen Schönheitsfehler. Es löscht alle Attachments in der Bestätigungsmail. Also alle Bilder die in der Mail enthalten sind.
Getestet hab ich mit der CE 4.1.2

Komando zurück: Mit Outlook sind alle Bilder da. Bei TheBat werden die Bilder nicht mehr angezeigt, Dafür in einen Message-Anhang verpackt. Ohne das Modul sind sie in der Email enthalten. Versteh einer die Emailprogramme :\

bis dahin
Thoren[/QUOTE]
Das wundert mich…

Habe das gerade noch mal mit dem Debugger durchgespielt, und die OXID-Mailer-Routine, die die Attachments verarbeitet, erhält die korrekten Infos.

Das sind die Infos, die übergeben werden:

Array
(
    [0] => Array
        (
            [0] => H:/Apache Group/Apache/htdocs/oxid_test/out/powertemplate/de//agb.pdf
            [1] => agb.pdf
            [2] => agb.pdf
            [3] => base64
            [4] => application/octet-stream
            [5] => 
            [6] => attachment
            [7] => 0
        )

    [1] => Array
        (
            [0] => H:/Apache Group/Apache/htdocs/oxid_test/out/powertemplate/img//logo_white.gif
            [1] => logo_white.gif
            [2] => image
            [3] => base64
            [4] => image/gif
            [5] => 
            [6] => inline
            [7] => 2ccf00702a0d8793102e7c5eb49aa93a
        )

    [2] => Array
        (
            [0] => H:/Apache Group/Apache/htdocs/oxid_test/out/pictures/0/1964_th.jpg
            [1] => 1964_th.jpg
            [2] => image
            [3] => base64
            [4] => image/jpeg
            [5] => 
            [6] => inline
            [7] => 2cc659732b8d92c62890d04601d4a40c
        )

)

Das sieht alles ganz OK aus…

Allzu viel passiert ja in dem Modul nicht, es wird nur ein Attachment mehr definiert.

Habe trotzdem noch mal eine überarbeitete Version hochgeladen, da war noch überflüssiger Code drin.

http://www.powertemplate.de/kunden/oxid/downloads/order_mail_agb_attachment.zip

Hallo,

nö tut es nicht. Keine Bilder in der Email und auch kein Dateianhang. Werd ich mal den Debugger bemühen.
Bei deinem Debugauszug steht

H:/Apache Group/Apache/htdocs/…
Du Testest anscheinend lokal. Du hast das aber schon online getestet? :slight_smile:

bis dahin
Thoren

Also ich habe jetzt auch das Modul installiert und 100% genau wie beschrieben den Ordner hochgeladen und bei system/module den eintrag [B]oxemail => mail/pt_email[/B] hinzugefügt. Die 2 .pdf Dateien auch hochgeladen, TMP ordner geleert. Es funktioniert aber nicht. Kunde bestellt, die Bestätigung kommt aber ohne die 2 Anhänge.
Liegt es vielleicht an der PDF Rechnung die ich integriert habe? Hier der Thread: http://www.oxid-esales.com/forum/showthread.php?t=1882&highlight=rechnung

[QUOTE=Askraba;11158] Liegt es vielleicht an der PDF Rechnung die ich integriert habe? Hier der Thread: http://www.oxid-esales.com/forum/showthread.php?t=1882&highlight=rechnung[/QUOTE]
Ja, vermutlich.

Durch die Änderung für das Rechnungs-Attachment werden die beiden anderen Attachments wieder gelöscht.

Das muss alles in ein Modul zusammengeführt werden…

Habe das mal gemacht, allerdings noch [B]ungetestet[/B], da ich derzeit wg. eines großen Projekts etwas knapp mit Zeit bin…

Wenn’s nicht funktioniert, muss ich das noch mal genauer testen.

(Die Original Änderung für das Rechnungs-Attachment muss dann natürlich 'raus…)

In die Sprachdatei muss noch folgende Definition:

'ORDER_OVERVIEW_PDF_INVOICE'                        => 'Rechnung_',
<?php
/**
 *    This file is part of OXID eShop Community Edition.
 *
 *    OXID eShop Community Edition is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    OXID eShop Community Edition is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with OXID eShop Community Edition.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @link http://www.oxid-esales.com
 * @package module
 * 
 * @copyright (C) 2009 Dipl.-Ing.(TH) Winfried Kaiser, [email protected]
 * 
 * Based on:
 *   
 * @copyright (C) OXID eSales AG 2003-2009
 * @version OXID eShop CE
 * $Id: modules/mail/pt_email.php 18956 2009-05-12 08:55:26Z gswkaiser $
 */
/**
  
  Allow invoice-, agb- and revocation-attachments on order-emails
  
  Software is provided as is, with no warranty whatsover!
  
  Use at your own risk!
  
  Include with: oxemail=>mail/pt_email in Admin->Modules
 */

 define('ATTACHMENT_FILE_AGB','agb.pdf');
 define('ATTACHMENT_FILE_REVOCATION','fernag.pdf');
 
class pt_email extends pt_email_parent
{
  protected $_attachments_cleared=false;
  
  protected function add_email_attachments($oOrder)
  {
    $this->_attachments_cleared=false;
    $this->clearAttachments();
    $this->_attachments_cleared=true;
    $myConfig = $this->getConfig();
    $attachment_path=$myConfig->getLanguageDir(false);
    //Invoice attachment by Sebastian Chabowski start
    $soxId = $oOrder->oxorder__oxid->value;
    if (isset($soxId) && $soxId != "-1") 
    {
      $sFilename = ORDER_OVERVIEW_PDF_INVOICE.$oOrder->getNextBillNum().".pdf";
      $ilang=oxLang::getInstance()->getBaseLanguage();
      ob_start();
      $oOrder->genPDF($sFilename,$ilang);
      $sPDF = ob_get_clean();
      $fp = fopen($attachment_path.$sFilename,"w+");
      fwrite($fp, $sPDF);
      fclose($fp);
      $this->addAttachment($attachment_path, $sFilename);
    }  
    //Invoice attachment by Sebastian Chabowski end
    if (defined('ATTACHMENT_FILE_AGB') && @is_file($attachment_path.ATTACHMENT_FILE_AGB))
    {
      $this->addAttachment($attachment_path,ATTACHMENT_FILE_AGB);
    }
    if (defined('ATTACHMENT_FILE_REVOCATION') && @is_file($attachment_path.ATTACHMENT_FILE_REVOCATION))
    {
      $this->addAttachment($attachment_path,ATTACHMENT_FILE_REVOCATION);
    }
  }

  /*
  Add attachments to users order mail
  */
  public function sendOrderEmailToUser($oOrder )
  {
    $this->add_email_attachments($oOrder);
    $blSuccess=parent::sendOrderEmailToUser($oOrder );
    return $blSuccess;
  }

  /*
  Add attachments to shop-owners order mail
  */
  public function sendOrderEmailToOwner($oOrder )
  {
    $this->add_email_attachments($oOrder);
    $blSuccess=parent::sendOrderEmailToOwner($oOrder );
    return $blSuccess;
  }

  /**
   * Clears all attachments from mail.
   */
  public function clearAttachments()
  {
    if (!$this->_attachments_cleared)
    {
      $this->_aAttachments = array();
      return parent::ClearAttachments();
    }
  }
}
?>

Funktioniert leider nicht. Nach der Bestellbestätigung kommt diese Fehlermeldung:

Fatal error: Call to a member function setValue() on a non-object in /home/coolsti/public_html/modules/invoicepdf/myorder.php on line 708

:rolleyes:

Hallo Avenger,
also bei mir funktioniert es mit dem Modul auch nicht. Ich erhalte weder die Bilder, noch die AGB im Anhang.
Habe es aber nun wie von Dir vorgeschlagen im core/oxemail.php eingefügt, dies ist in Ordnung.

Danke
Michael

Habe das Modul auch probiert.

Dabei ist mir folgendes aufgefallen.

Sobald das Modul aktiviert wurde kamen die Mails erst massiv später an und die Anhänge waren nicht vorhanden der Rest war da.

Habe die PDF´s umbenannt und auch in den Standardbenennungen probiert aber irgendwie haut dort etwas nicht hin.

Falls jemand das Modul am laufen hat und alles funktioniert wäre es schön wenn derjenige sagen könnte ob er etwas verändert hat und wenn ja was.