PDF Rechung an die Bestellbestätigung anhängen

Danke, super, klappt alles prima!!

Ich hole den Thread nochmal hoch, da ich sowas auch gesucht habe.
Bei mir ist es so, dass zwar eine Bestellung reibungslos funktioniert, aber die Emails weiterhin alle ohne PDF Rechnung im Anhang rausgehen.
Version ist 4.4.1 und die besagten Änderungen waren bei mir nicht in Zeile 3xx, sondern in 483…Gibt es jemanden, der diese Änderungen in der Version schon erfolgreich umsetzen konnte?

Bei mir läufts in 4.4.5. Avenger hat mir in diesem Thread weitergeholfen: http://www.oxid-esales.com/forum/showthread.php?t=1248
Ich habe die Code noch ein bisschen geändert, weil ich wie Andere hier eine weiße Seite hatte (dazu dient Funktion genPDFtofile anstatt genPDF+direkte PHP funktionen).
Außerdem habe ich den Attachment-Versand geändert: AGB+FernAG bei der Bestellbestätigung und Rechnung bei der Versandbestätigung.

<?php

    define('ATTACHMENT_FILE_AGB','<your AGB file, eg: agb.pdf>');
    define('ATTACHMENT_FILE_REVOCATION','<your revocation file, eg: fernag.pdf>');

class myEmail extends myEmail_parent
{
/*
  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/myEmail in Admin->Modules
 */
 
    protected $_attachments_cleared=false;
    protected $bccMailAddress = "<Shop E-Mail Adresse hier>";
    
  /* Every Mail BCC to ... (usually I have the next two functions outcommented, but you can use it now and then to check all shop mails) */
  public function send()
  {        
     // BOF BCC to me
     $this->setBcc( $this->bccMailAddress , '<Shop Name>' );
     // EOF BCC to me

     return parent::send(); 
  }

  public function setBcc( $sEmail = null, $sName = null )
  {
      try {
          parent::AddBCC( $sEmail, $sName );
      } catch( Exception $oEx ) {
      }
  }  
    
  
  protected function add_order_email_attachments($oOrder)
  {
    $this->_attachments_cleared=false;
    $this->clearAttachments();
    $this->_attachments_cleared=true;
    $myConfig = $this->getConfig();
    $attachment_path=$myConfig->getLanguageDir(false);
    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);
    }
  }

  protected function add_sendednow_email_attachments($oOrder)
  {
    $this->_attachments_cleared=false;
    $this->clearAttachments();
    $this->_attachments_cleared=true;
    $myConfig = $this->getConfig();
    $attachment_path=$myConfig->getLanguageDir(false).'rechnung/'; // Or choose your own subdir (and make sure the directory exists)
    $soxId = $oOrder->oxorder__oxid->value;
    if (isset($soxId) && $soxId != "-1") 
    {
      // check for existing billing number first  
      if ( $oOrder->oxorder__oxbillnr->value ) {
            $sFilename = "Rechnung_".$oOrder->oxorder__oxbillnr->value.".pdf";       
      } else { 
            $sFilename = "Rechnung_".$oOrder->getNextBillNum().".pdf";
      }
      $fullfile = $attachment_path.$sFilename ;
      $ilang=oxLang::getInstance()->getBaseLanguage();
      $oOrder->genPDFtofile($fullfile,$ilang);
      $this->addAttachment($attachment_path, $sFilename);
    }  
  }

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

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

  /*
  Add attachments to sended now mail
  */
    public function sendSendedNowMail( $oOrder, $sSubject = null )
    {
      $this->add_sendednow_email_attachments($oOrder);
      $blSuccess=parent::sendSendedNowMail($oOrder );
      return $blSuccess;
    }

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

Und in modules/invoicepdf/myorder.php einfügen:

    public function genPdftofile( $sFilename, $iSelLang = 0 )
    {
        // setting pdf language
        $this->_iSelectedLang = $iSelLang;

        // setting invoice number
        if ( !$this->oxorder__oxbillnr->value ) {
            $this->oxorder__oxbillnr->setValue($this->getNextBillNum());
            $this->save();
        }

        // initiating pdf engine
        $oPdf = oxNew( 'oxPDF' );
        $oPdf->setPrintHeader( false );
        $oPdf->open();

        // adding header
        $this->pdfHeader( $oPdf );

        // adding info data
        switch ( oxConfig::getParameter( 'pdftype' ) ) {
            case 'dnote':
                $this->exportDeliveryNote( $oPdf );
                break;
            default:
                $this->exportStandart( $oPdf );
        }

        // adding footer
        $this->pdfFooter( $oPdf );

        // outputting file to file!
        $oPdf->output( $sFilename, 'F' );
    }

Bei mir funktioniert das einwandfrei.
Ich hoffe das hilft dir weiter…

hallo zusammen,
leider funktioniert der code in der 4.7.x Version nicht weil es dort die stelle “$oOder->oDelSet” in der core\oxemail.php Datei leider nicht gibt. Hat jmd. eine Idee wie man das in der 4.7.x version realisieren kann?
gruß stephan

Ich habe eine Idee, was die Versendung der Rechnung an den Kunden verienfachen soll:

“Einfach” im PDF unterhalb des Namens des Kundens die emailadresse mitaufnehmen, daraus einen Hyperlink (mailto:) generieren, dass automatisch das Standardmail-Programm öffnet und die pdf anhängt. Somit wäre der Aufwand am Geringsten. [B]Oder ?[/B]

woher soll denn das E-Mail Programm wissen, dass es die PDF Datei anhängen soll?
Und auch dann muss man manuell die PDF Datei generieren lassen, manuell runterladen, manuell aufmachen und dann auf den Link klicken und auch noch die E-Mail abschicken. Und weil man keine Rechnungen kommentarlos per E-Mail verschickt, muss man auch noch einen kurzen Text eingeben.
Ich finde nicht, dass es einfacher ist, als die PDF Datei automatisch im Anhang der Bestellbestätigung mitzuschicken.

oder der Versandbestätigung

Kallpt das denn, die Rechnung im Anhang mitzusenden auch für die 4.7.x?
Bei mir läuft das nicht so pralle?
Weisst nicht warum, habe noch nciht intensiv geforscht, werde ich heute abend mal machen.

LG

ggf. ist die von Dir eingesetzte Lösung für die 4.7 noch nicht adaptiert?

Hi ich hole das ganze mal wieder hoch und entschuldige mich jetzt schon für das wecken von toten. Ich nutze die Version 4.10.2 gibt es dafür schon eine Lösung. Die AGB’s und den Wiederruf bekomm ich dank der hilfe und der vielen Threads hier im forum über

$sAttachmentPath = getShopBasePath() . 'out/agb.pdf';
		$this->addAttachment( $sAttachmentPath);
		$sAttachmentPath = getShopBasePath() . 'out/wiederruf.pdf';
		$this->addAttachment( $sAttachmentPath);

gelöst aber die Rechnung ist dann doch nen anderes Kaliber denke ich :frowning:

Hallo ich habe mir nicht den ganzen Faden durchgelesen.

Ich setze gern auf bewerte Module.
30 Euro investiert und es funktioniert sofort.

Hier der Link: https://shop.fatchip.de/OXID-PdfBill2Mail-Modul.html

[QUOTE=Patejoker;186979]…aber die Rechnung ist dann doch nen anderes Kaliber denke ich :([/QUOTE]

Such mal nach ppg_ordermailattach.

Hallo,
das Modul [B]hier[/B] sendet nicht nur bis zur 5 Individuelle PDF-Anhänge und Rechnungen (je nach Modul-Einstellung erst nach Zahlungseingang) raus sondern ermöglicht auch im Kundenkonto herunterladen vom PDF-Rechnungen (auch hier, je nach Modul-Einstellung erst nach Zahlungseingang).

[B]PDF-Rechnung[/B]

Grüße
Rafig

Hallo,

wie kann man den Lieferschein, statt der Rechnung generieren?

Gruß
Thoni

Glaube Lieferschein ist aus der History. Den klassischen Lieferschein für das Packen von Paketen gibt es über den OXID eShop nicht mehr und das PDF-Invoice Modul GitHub - OXIDprojects/pdf-invoice-module zielt auf die Rechnung ab.

Vom Wording her müsste man sich für einen Lieferschein eigenes Template für die PDF Generierung basteln oder nach bereits fertigen Modul Ausschau halten.

Man konnte im alten Shop Version auswählen ob vom Wording Lieferschein oder Rechnung als PDF generiert werden soll, man beachte Screenshot unter Registerkarte Übersicht — OXID eShop 4&5 | Anwenderdokumentation

Viele Grüße,
Tim

Im OXID eShop CE 6.2.0_ kann man ihn noch bei den Bestellungen auswählen.

Mein Problem hat sich noch verstärkt.
Bei mehreren Lieferanten in einer Bestellung sollen die Artikel gesplittet werden und jeder Lieferant soll nur seine Produkte auf dem Lieferschein sehen.
Ich weiß, was ich am Wochenende mache. :wink:

Hallo Thoni,
das Invoice PDF Modul von OXID erstellt auch Lieferscheine, benutze ich regelmäßig mit der Version 6.3.1

Das heißt Dropshipping und dafür kannst das Modul mail-attachment erweitern.