PDF Rechung an die Bestellbestätigung anhängen

Für alle die das Problem haben,
das keine Rechnung der Bestellbestätigung beiliegt.

Habe ich hier eine simple Lösung.
( Für ein Modul war leider keine Zeit ^^ )

[B]core/oxemail.php - ca. Zeile 317 - unter $oOder->oDelSet[/B]


$soxId = $oOrder->oxorder__oxid->value;
if ( $soxId != "-1" && isset( $soxId)) {
    // load object
    $oOrder2 = oxNew( "oxorder" );
    $oOrder2->load( $soxId);
    $sFilename  = $oOrder2->oxorder__oxordernr->value."_".$oOrder2->oxorder__oxbilllname->value.".pdf";
    ob_start();
    $oOrder2->genPDF($sFilename, 0);
    $sPDF = ob_get_contents();
    ob_end_clean();
    
    $myConfig = $this->getConfig();
    $attachment_path=$myConfig->getLanguageDir(false);
    
    $fp = fopen($attachment_path.$sFilename,"w+");
    fwrite($fp, $sPDF);
    fclose($fp);

    $this->addAttachment( $attachment_path, $sFilename);
}

[B]out/template_name/de/cust_lang.php - hinzufügen[/B]


    'ORDER_OVERVIEW_PDF_TYPE'                       => 'PDF Typ',
    'ORDER_OVERVIEW_PDF_STANDART'                   => 'standard',
    'ORDER_OVERVIEW_PDF_DELIVERYADDRESS'            => 'Lieferadresse',
    'ORDER_OVERVIEW_PDF_DNOTE'                      => 'Lieferhinweis',
    'ORDER_OVERVIEW_PDF_FILLONPAYMENT'              => 'Bei Zahlungen bitte immer angeben.',
    'ORDER_OVERVIEW_PDF_CUSTNR'                     => 'Kundennummer',
    'ORDER_OVERVIEW_PDF_TAXIDNR'                    => 'USt.-ID-Nr.:',
    'ORDER_OVERVIEW_PDF_COUNTNR'                    => 'Rechn-Nr.:',
    'ORDER_OVERVIEW_PDF_STORNO'                     => 'STORNO',
    'ORDER_OVERVIEW_PDF_PURCHASENR'                 => 'Bestellnr.',
    'ORDER_OVERVIEW_PDF_ORDERSFROM'                 => 'Ihre Bestellung vom ',
    'ORDER_OVERVIEW_PDF_ORDERSAT'                   => ' bei ',
    'ORDER_OVERVIEW_PDF_AMOUNT'                     => 'Menge',
    'ORDER_OVERVIEW_PDF_ARTID'                      => 'Art.-Nr.',
    'ORDER_OVERVIEW_PDF_DESC'                       => 'Beschreibung',
    'ORDER_OVERVIEW_PDF_UNITPRICE'                  => 'Einzelpreis',
    'ORDER_OVERVIEW_PDF_ALLPRICE'                   => 'Gesamtpreis',
    'ORDER_OVERVIEW_PDF_VAT'                        => 'USt. %',
    'ORDER_OVERVIEW_PDF_ALLPRICENETTO'              => 'Summe Artikel (netto)',
    'ORDER_OVERVIEW_PDF_ZZGLVAT'                    => 'zzgl. MwSt. ',
    'ORDER_OVERVIEW_PDF_PERCENTSUM'                 => '% Betrag',
    'ORDER_OVERVIEW_PDF_ALLPRICEBRUTTO'             => 'Summe Artikel (brutto)',
    'ORDER_OVERVIEW_PDF_DISCOUNT'                   => 'Rabatt',
    'ORDER_OVERVIEW_PDF_VOUCHER'                    => 'Gutschein',
    'ORDER_OVERVIEW_PDF_SHIPCOST'                   => 'Versandkosten',
    'ORDER_OVERVIEW_PDF_BRUTTO'                     => '(brutto)',
    'ORDER_OVERVIEW_PDF_NETTO'                      => '(netto)',
    'ORDER_OVERVIEW_PDF_WRAPPING'                   => 'Geschenkverpackung/Grusskarte',
    'ORDER_OVERVIEW_PDF_PAYMENTIMPACT'              => 'Aufschlag Zahlungsart',
    'ORDER_OVERVIEW_PDF_ALLSUM_NET'                 => 'Gesamtsumme (netto)',
    'ORDER_OVERVIEW_PDF_ALLSUM'                     => 'Gesamtsumme (brutto)',
    'ORDER_OVERVIEW_PDF_PAYUPTO'                    => 'Zahlbar bis zum ',
    'ORDER_OVERVIEW_PDF_GREETINGS'                  => 'Herzlichen Dank für Ihre Bestellung! Bitte empfehlen Sie uns weiter.',
    'ORDER_OVERVIEW_PDF_PHONE'                      => 'fon : ',
    'ORDER_OVERVIEW_PDF_FAX'                        => 'fax : ',
    'ORDER_OVERVIEW_PDF_ACCOUNTNR'                  => 'Ktonr. ',
    'ORDER_OVERVIEW_PDF_BANKCODE'                   => 'BLZ : ',
    'ORDER_OVERVIEW_PDF_SELPAYMENT'                 => 'Ihre gewählte Zahlungsweise : ',
    'ORDER_OVERVIEW_PDF_DELIVNOTE'                  => 'Lieferschein Nr.'

Die PDF Rechnung bekommt wie im Backend den selben Namen und wird
im Verzeichnis “out/template_name/de/” abgespeichert. Diese wird dann
einfach an die “Bestätigung Mail” angehangen.

Viel Spaß :wink:

grüße, Sebastian Chabowski

Hallo Sebastian.
Coole Lösung habe aber ein kleines problem :rolleyes:.
Der Kunde bekommt zwar die Mail mit der Rechnung im Anhang aber mit der Language stimmt was nicht…
Schau dir mal den Screenshot an:

http://picfront.de/d/qsxHLXtWxb/pdf_screen.jpg

und hier die cust_lang.php:

<?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 lang
 * @copyright (C) OXID eSales AG 2003-2009
 * @version OXID eShop CE
 * $Id: cust_lang.php 18083 2009-04-10 11:58:34Z vilma $
 */

$sLangName  = "Deutsch";
$iLangNr    = 0;
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(

'charset'                                       => 'ISO-8859-15',

'ORDER_OVERVIEW_PDF_TYPE'                       => 'PDF Typ',
    'ORDER_OVERVIEW_PDF_STANDART'                   => 'standard',
    'ORDER_OVERVIEW_PDF_DELIVERYADDRESS'            => 'Lieferadresse',
    'ORDER_OVERVIEW_PDF_DNOTE'                      => 'Lieferhinweis',
    'ORDER_OVERVIEW_PDF_FILLONPAYMENT'              => 'Bei Zahlungen bitte immer angeben.',
    'ORDER_OVERVIEW_PDF_CUSTNR'                     => 'Kundennummer',
    'ORDER_OVERVIEW_PDF_TAXIDNR'                    => 'USt.-ID-Nr.:',
    'ORDER_OVERVIEW_PDF_COUNTNR'                    => 'Rechn-Nr.:',
    'ORDER_OVERVIEW_PDF_STORNO'                     => 'STORNO',
    'ORDER_OVERVIEW_PDF_PURCHASENR'                 => 'Bestellnr.',
    'ORDER_OVERVIEW_PDF_ORDERSFROM'                 => 'Ihre Bestellung vom ',
    'ORDER_OVERVIEW_PDF_ORDERSAT'                   => ' bei ',
    'ORDER_OVERVIEW_PDF_AMOUNT'                     => 'Menge',
    'ORDER_OVERVIEW_PDF_ARTID'                      => 'Art.-Nr.',
    'ORDER_OVERVIEW_PDF_DESC'                       => 'Beschreibung',
    'ORDER_OVERVIEW_PDF_UNITPRICE'                  => 'Einzelpreis',
    'ORDER_OVERVIEW_PDF_ALLPRICE'                   => 'Gesamtpreis',
    'ORDER_OVERVIEW_PDF_VAT'                        => 'USt. %',
    'ORDER_OVERVIEW_PDF_ALLPRICENETTO'              => 'Summe Artikel (netto)',
    'ORDER_OVERVIEW_PDF_ZZGLVAT'                    => 'zzgl. MwSt. ',
    'ORDER_OVERVIEW_PDF_PERCENTSUM'                 => '% Betrag',
    'ORDER_OVERVIEW_PDF_ALLPRICEBRUTTO'             => 'Summe Artikel (brutto)',
    'ORDER_OVERVIEW_PDF_DISCOUNT'                   => 'Rabatt',
    'ORDER_OVERVIEW_PDF_VOUCHER'                    => 'Gutschein',
    'ORDER_OVERVIEW_PDF_SHIPCOST'                   => 'Versandkosten',
    'ORDER_OVERVIEW_PDF_BRUTTO'                     => '(brutto)',
    'ORDER_OVERVIEW_PDF_NETTO'                      => '(netto)',
    'ORDER_OVERVIEW_PDF_WRAPPING'                   => 'Geschenkverpackung/Grusskarte',
    'ORDER_OVERVIEW_PDF_PAYMENTIMPACT'              => 'Aufschlag Zahlungsart',
    'ORDER_OVERVIEW_PDF_ALLSUM_NET'                 => 'Gesamtsumme (netto)',
    'ORDER_OVERVIEW_PDF_ALLSUM'                     => 'Gesamtsumme (brutto)',
    'ORDER_OVERVIEW_PDF_PAYUPTO'                    => 'Zahlbar bis zum ',
    'ORDER_OVERVIEW_PDF_GREETINGS'                  => 'Herzlichen Dank für Ihre Bestellung! Bitte empfehlen Sie uns weiter.',
    'ORDER_OVERVIEW_PDF_PHONE'                      => 'fon : ',
    'ORDER_OVERVIEW_PDF_FAX'                        => 'fax : ',
    'ORDER_OVERVIEW_PDF_ACCOUNTNR'                  => 'Ktonr. ',
    'ORDER_OVERVIEW_PDF_BANKCODE'                   => 'BLZ : ',
    'ORDER_OVERVIEW_PDF_SELPAYMENT'                 => 'Ihre gewählte Zahlungsweise : ',
    'ORDER_OVERVIEW_PDF_DELIVNOTE'                  => 'Lieferschein Nr.',
);

/*
[{ oxmultilang ident="GENERAL_YOUWANTTODELETE" }]
*/

Habe ich die Language Files falsch eingefügt? :confused:

Danke und Grüße aus ES a.N.

[QUOTE=Askraba;11139]Habe ich die Language Files falsch eingefügt? :confused:[/QUOTE]
Nein, vermutlich nicht…

Lösche mal den Inhalt des “tmp”-Verzeichnisses, um OXID zu zwingen, die Sprachdateien neu aufzubauen.

[QUOTE=DIATOM;11043]Für alle die das Problem haben,
das keine Rechnung der Bestellbestätigung beiliegt.

Habe ich hier eine simple Lösung.
( Für ein Modul war leider keine Zeit ^^ )[/QUOTE]
Prima Lösung.

Die schreit ja geradezu danach in das unter http://www.oxid-esales.com/forum/showthread.php?p=7266&page=2#post9329 beschriebene Modul integriert zu werden…

Dann hat man alle sinnvollen eMail-Attachments an einer Stelle (und als Modul) zusammen gefasst.

Stimmt, es lag am tmp. Habe jetzt einfach mal das modul von D3 installiert.
Es gibt ja aber leider immernoch das problem mit den doppelten Varianten: :rolleyes:

http://www.oxid-esales.com/forum/showthread.php?t=1254&page=3&highlight=rechnung

Bye

Hallo! Echt eine tolle Lösung, jedoch funktioniert sie nur bei mir lokal und nicht auf dem Webserver. Sobald $oOrder2->genPDF($sFilename, 0); geladen wird, bleibt meine Seite nur noch weiß und nichts passiert. Die Datei wird aber angelegt wie ich sehen kann. Ist das ein PHP Problem? Ich bekomme keine Fehlermeldung und wenn diese Zeile auskommentiert ist wird zwar der Inhalt der Datei nicht generiert, aber die weiße Seite erscheint nicht. Es kommt mir vor, als ob die Funktion genPDF irgendwas macht, was mein Webserver vielleicht nicht unterstützt. Wenn ich im Backend jedoch die PDF Datei drucken möchte und die gleiche Funktion aufgerufen wird, habe ich keine Probleme damit. Die Datei wird erzeugt und die weiße Seite erscheint nicht. Vielleicht hat jemand eine Idee, wieso dies passiert. danke!

Ich habe mittlerweile herausgefunden, dass ob_start(); ob_get_contents(); und ob_end_clean(); für die weiße Seite verantwortlich sind. Ich finde jedoch in der php.ini nicht, warum dies lokal funktioniert, aber nicht auf dem Webserver.

Hallo, wie oder was muss ich bei diesem tool - was super ist - ändern, damit ich alle rechnungen (egal welche sprache) in einen ordner “PDF_Rechnungen” gespeichgert werden und nich in “out/template_name/de/”

Ein wenig offtopic aber:

Wie ist das ganze eigentlich rechtlich zu sehen? Mal angenommen es schleicht sich ein Preisfehler ein und Kunden bestellen einen hochwertigen Artikel für ein paar Cent.
Kommt der Vertrag duch den Versand einer gleich lautenden Rechnung (Willenserklärung) nicht sofort zustande?
Ansonsten hat man ja immer nur die Willenserklärung des Kunden auf die man dann reagieren kann.

wie kann ich einen link beim kunden (in seinem loginbereich) einbauen, damit er seine rechnung ansehen kann??? und wo stelle ich den pfad für die speicherung ein.

Hallo,
ich krame diesen Thread nochmal hervor:
Ich finde das eine tolle Sache und würde das auch sehr gerne bei mir im Shop bieten. Allerdings bekomme ich auch nur eine weiße Seite (wie oben schon captndan schrieb).

Es scheint an den Einträgen in der cust_lang.php zu liegen. Sobald dort die Einträge drin sind, erschient nur noch die weiße Seite.

Hat jemand eine Idee, woran das liegen könnte ? Wo kann ich suchen ?

Danke :slight_smile:

Syntax-Fehler in der cust_lang.php sind ausgeschlossen als Fehlerursache?

Ja, da bin ich mir schon ziemlich sicher. Das ist auch die einzige Änderung, die ich in der Datei gemacht habe. Eingefügt habe ich per copy-paste aus den Beispielen auf der ersten Seite. Auch brav die temp gelöscht :slight_smile:

Magst du mal die komplette cust_lang.php hier als Codebeispiel zeigen? Das wird der Fehlersuche die nötige Würze geben :slight_smile:

jooo - wäre eine Idee :slight_smile:

<?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 lang
 * @copyright (C) OXID eSales AG 2003-2009
 * @version OXID eShop CE
 * $Id: cust_lang.php 18083 2009-04-10 11:58:34Z vilma $
 */

$sLangName  = "Deutsch";
$iLangNr    = 0;
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(

'charset'                                       => 'ISO-8859-15'
'ORDER_OVERVIEW_PDF_TYPE'                       => 'PDF Typ',
    'ORDER_OVERVIEW_PDF_STANDART'                   => 'standard',
    'ORDER_OVERVIEW_PDF_DELIVERYADDRESS'            => 'Lieferadresse',
    'ORDER_OVERVIEW_PDF_DNOTE'                      => 'Lieferhinweis',
    'ORDER_OVERVIEW_PDF_FILLONPAYMENT'              => 'Bei Zahlungen bitte immer angeben.',
    'ORDER_OVERVIEW_PDF_CUSTNR'                     => 'Kundennummer',
    'ORDER_OVERVIEW_PDF_TAXIDNR'                    => 'USt.-ID-Nr.:',
    'ORDER_OVERVIEW_PDF_COUNTNR'                    => 'Rechn-Nr.:',
    'ORDER_OVERVIEW_PDF_STORNO'                     => 'STORNO',
    'ORDER_OVERVIEW_PDF_PURCHASENR'                 => 'Bestellnr.',
    'ORDER_OVERVIEW_PDF_ORDERSFROM'                 => 'Ihre Bestellung vom ',
    'ORDER_OVERVIEW_PDF_ORDERSAT'                   => ' bei ',
    'ORDER_OVERVIEW_PDF_AMOUNT'                     => 'Menge',
    'ORDER_OVERVIEW_PDF_ARTID'                      => 'Art.-Nr.',
    'ORDER_OVERVIEW_PDF_DESC'                       => 'Beschreibung',
    'ORDER_OVERVIEW_PDF_UNITPRICE'                  => 'Einzelpreis',
    'ORDER_OVERVIEW_PDF_ALLPRICE'                   => 'Gesamtpreis',
    'ORDER_OVERVIEW_PDF_VAT'                        => 'USt. %',
    'ORDER_OVERVIEW_PDF_ALLPRICENETTO'              => 'Summe Artikel (netto)',
    'ORDER_OVERVIEW_PDF_ZZGLVAT'                    => 'zzgl. MwSt. ',
    'ORDER_OVERVIEW_PDF_PERCENTSUM'                 => '% Betrag',
    'ORDER_OVERVIEW_PDF_ALLPRICEBRUTTO'             => 'Summe Artikel (brutto)',
    'ORDER_OVERVIEW_PDF_DISCOUNT'                   => 'Rabatt',
    'ORDER_OVERVIEW_PDF_VOUCHER'                    => 'Gutschein',
    'ORDER_OVERVIEW_PDF_SHIPCOST'                   => 'Versandkosten',
    'ORDER_OVERVIEW_PDF_BRUTTO'                     => '(brutto)',
    'ORDER_OVERVIEW_PDF_NETTO'                      => '(netto)',
    'ORDER_OVERVIEW_PDF_WRAPPING'                   => 'Geschenkverpackung/Grusskarte',
    'ORDER_OVERVIEW_PDF_PAYMENTIMPACT'              => 'Aufschlag Zahlungsart',
    'ORDER_OVERVIEW_PDF_ALLSUM_NET'                 => 'Gesamtsumme (netto)',
    'ORDER_OVERVIEW_PDF_ALLSUM'                     => 'Gesamtsumme (brutto)',
    'ORDER_OVERVIEW_PDF_PAYUPTO'                    => 'Zahlbar bis zum ',
    'ORDER_OVERVIEW_PDF_GREETINGS'                  => 'Herzlichen Dank für Ihre Bestellung! Bitte empfehlen Sie uns weiter.',
    'ORDER_OVERVIEW_PDF_PHONE'                      => 'fon : ',
    'ORDER_OVERVIEW_PDF_FAX'                        => 'fax : ',
    'ORDER_OVERVIEW_PDF_ACCOUNTNR'                  => 'Ktonr. ',
    'ORDER_OVERVIEW_PDF_BANKCODE'                   => 'BLZ : ',
    'ORDER_OVERVIEW_PDF_SELPAYMENT'                 => 'Ihre gewählte Zahlungsweise : ',
    'ORDER_OVERVIEW_PDF_DELIVNOTE'                  => 'Lieferschein Nr.',
);

/*
[{ oxmultilang ident="GENERAL_YOUWANTTODELETE" }]
*/

Da fehlt ein Komma nach ‘ISO-8859-15’.

Ach meine Güte was bin ich doch für ein blindes Huhn !:o

Kaum macht man es richtig, funktioniert es einwandfrei. Super Sache.
Vielen Dank für die Hilfe

wie kann ich einen link beim kunden (in seinem loginbereich) einbauen, damit er seine rechnung auch noch im nachhinein ansehen kann??? zb. bestellnummer ist der link zur pdf rechnung

Finde die Lösung nich schlecht
Würde diese aber gern erst bei der Versandbestätigungsmail einsetzen wollen
hat jemand nen tipp wo ich das dann einfügen müsste

Kann es sein, dass das hier nicht in 4.4.2 geht?